More Related Content
Similar to NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
Similar to NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템 (20)
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
- 2. 개발 TD 개인의 관점
• 개발 프로듀서/디렉터/팀,
라이브 프로듀서/디렉터/팀,
회사 공식 견해와는 일치하지 않습니다.
• 발표를 승인해주신 책임자 분들께 감사드립니다.
프로젝트 참여 기간 : 2006-01-02/2009-12-31
- 4. 목적
• 시작할 때 알았으면 좋았을 경험 공유
• 부검 (post-mortem) 양식을 지키려고 함
• 서비스 중이므로 오해를 살 수 있어 이제야 발표
• 3년은 라이브 게임이 환골탈태할 기간
- 5. 목적
• 시작할 때 알았으면 좋았을 경험 공유
• 부검 (post-mortem) 양식을 지키려고 함
• 서비스 중이므로 오해를 살 수 있어 이제야 발표
• 3년은 라이브 게임이 환골탈태할 기간
개요
양적 분석
질적 분석
잘 된 점 5가지
잘 안 된 점 5가지
결론
- 21. 개발 도중
빌드머신 디스크
2회 고장
(HDD/SSD 각 1회)
개발 도중
저장소 디스크
1회 고장
(RAID 1+0 모두 동시)
데이터 손실이 있었으나
사후 복구
- 26. 채용 잘 하는 법
회사 시스템에만 의존하지 말 것
프로젝트 초중반 인력 수급은
자원 관리 중 가장 어려운 과제
시간과 비용을 써야 좋은 결과
© CJ E&M
- 29. 아웃 소싱
이은석, 마비노기 영웅전 포스트모템 2부, NDC2010
게임 피처
개발에 집중
가져올 수 있는
비개발적 이득도
가급적 모두 취함
심지어 포트번호까지
- 31. 사용자 인터페이스
스튜디오 내 다른 프로젝트에서 먼저 검증
Source Engine의VGUI를 사용해서는
얻을수 없는 시간대비 품질로 제작 가능해짐
- 34. 자잘한 빌드 최적화를 통해
일반적인 경우 5분 이내에 빌드가 끝나도록
리소스도 종속성 검사를 최대한 강하게
지속적인 통합
© http://xkcd.com
- 35. 빌드를 깨지 않도록 강력하게 압박
© http://totheno1.egloos.com
처음에는
실행 가능한 상태로
유지되지 않아
빌드 넘버를 정해놓고
공포 분위기 조성
- 36. 빌드를 깨지 않도록 강력하게 압박
© http://totheno1.egloos.com
처음에는
실행 가능한 상태로
유지되지 않아
빌드 넘버를 정해놓고
공포 분위기 조성
조건 달성 시
사비 털어서 파티
실제로는
매번 털렸음
- 37. 루프백 서버 사용 금지
© http://www.thinkgeek.com/product/6806/
- 38. 루프백 서버 사용 금지
이터레이션 속도를 떨어트릴 수 있지만
내부 개발용 서버에서 통합되는 것을
작업 기준으로 놓고 작업
© http://www.thinkgeek.com/product/6806/
- 39. 루프백 서버 사용 금지
이터레이션 속도를 떨어트릴 수 있지만
내부 개발용 서버에서 통합되는 것을
작업 기준으로 놓고 작업
제 자리에서는 괜찮은데요?
리파지터리에
제출된 데이터는
서버에 자동 적용
© http://www.thinkgeek.com/product/6806/
- 43. 핵심 기능에만 집중
노리진 않았지만
Wizards of the Coast, Magic:The Gathering, and their logos are trademark of Wizards of the Coast LLC in the United States and other countries.
© 1995-2013 Wizards of the Coast LLC, a subsidiary of Hasbro, Inc.All Rights Reserved
This presentation is not affiliated with, endorsed, sponsored, or specifically approved by Wizards of the Coast LLC.
- 44. 핵심 기능에만 집중
노리진 않았지만
라이브에서는
기적이 일어난다
Wizards of the Coast, Magic:The Gathering, and their logos are trademark of Wizards of the Coast LLC in the United States and other countries.
© 1995-2013 Wizards of the Coast LLC, a subsidiary of Hasbro, Inc.All Rights Reserved
This presentation is not affiliated with, endorsed, sponsored, or specifically approved by Wizards of the Coast LLC.
- 45. 잘 안 된 점
5가지
© http://ramboruiz.com/what-happens-if-your-va-do-it-wrong/
- 46. 1년에
한 번
전력으로
승부
매 3개월의 전력질주
© http://joynews.inews24.com/php/news_view.php?
g_menu=702500&g_serial=598811
© 전병헌 블로그
- 47. 허들=단거리 단기목표를 넘어야 다음 기회
1년에
한 번
전력으로
승부
매 3개월의 전력질주
© http://joynews.inews24.com/php/news_view.php?
g_menu=702500&g_serial=598811
© 전병헌 블로그
- 48. 허들=단거리 단기목표를 넘어야 다음 기회
1년에
한 번
전력으로
승부
매 3개월의 전력질주
© http://joynews.inews24.com/php/news_view.php?
g_menu=702500&g_serial=598811
© 전병헌 블로그
Deadline Driven Development
- 49. 목조 건물을 의도하고 만들었으면 상관 없지만
거푸집은?
© http://www.scaffoldformwork.com© Peter Eckert
- 55. .NET Framework & C#
네이티브 코드에서 발생하는 관리 이슈는 사라졌지만
매니지드 코드 특유의 문제를 다루기 위해 별도의 학습이 필요
- 56. 자이언트 서버
하드웨어 발전 속도를 과신한 아키텍처
부하가 집중됐을 때 사내의 구형 서버들을
동원해서 스케일-아웃에 성공했지만
평균 성능이 기대에 많이 못미침
양승명, 마비노기 영웅전 자이언트 서버의 비밀, NDC11
- 57. 섀도우 채널
P2P 오버레이 네트워크 위에서 채널을 구성
자이언트 서버와 마찬가지로 단일 서버를 최대한 크게
유지하기 위한 목적으로 고안됐지만,
핸드오버 처리에서 난항을 겪었음
- 64. 코딩 기준
엔진 코드에 역사와 전통을 자랑하는
다양한 코딩 기준이 이미 혼재
Quake logo is a registered trademark of Id Software Inc.
- 65. 코딩 기준
엔진 코드에 역사와 전통을 자랑하는
다양한 코딩 기준이 이미 혼재
C# 서버와 연결되는 부분은
.NET 스타일로 작성된 C++
Quake logo is a registered trademark of Id Software Inc.
- 66. 품질 기준
문서 및 테스트 기준
단언문을 깨는 결과물이
마감 기간에 발생하면
복구하기 어렵다
코드 검토를 강제했으면 하는 아쉬움
© http://insureblog.blogspot.com/2012/07/dominos-part-deux.html
- 67. 아웃 소싱의 한계
© http://seekingalpha.com/article/453921-sirius-xm-there-s-no-such-thing-as-a-free-lunch
- 71. 공용 라이브러리
C# 서버라 외부 라이브러리를
(HackShield, ProudNet 등)
바로 붙이기 번거로움
라이브러리에 깔린 가정들이
개별 프로젝트와 일치하지 않음
파편화
- 72. 공용 라이브러리
C# 서버라 외부 라이브러리를
(HackShield, ProudNet 등)
바로 붙이기 번거로움
라이브러리에 깔린 가정들이
개별 프로젝트와 일치하지 않음
파편화
.NET 경험이 불충분해서 생기는 문제
- 73. 공용 라이브러리
담당자 퇴사
C# 서버라 외부 라이브러리를
(HackShield, ProudNet 등)
바로 붙이기 번거로움
라이브러리에 깔린 가정들이
개별 프로젝트와 일치하지 않음
파편화
.NET 경험이 불충분해서 생기는 문제
- 76. 넥슨 플러그
많은 기능이 카트라이더와 함께 만들어졌다
분산 다운로드를 지원하지 않아 CDN 비용 감수
차분 생성을 빠르게 하기 위해서는 많은 튜닝이 필요
넥슨 정기 점검 시간에는 내부 개발 서버도 점검