Download - 김재석, 패킷 지옥으로부터 탈출, NDC2010
![Page 1: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/1.jpg)
패킷 지옥으로부터탈출
신규개발3본부 개발1실 GTR팀김재석
![Page 2: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/2.jpg)
개발 중인 내용으로최종 구현은 강연 방향과 다를 수 있습니다.
![Page 3: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/3.jpg)
김재석책임연구원
마비노기2 게임프로그래머마비노기 영웅전
게임프로그래머/테크니컬 디렉터마비노기 게임프로그래머프로젝트 T2 게임프로그래머
오즈 프로그래머
![Page 4: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/4.jpg)
![Page 5: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/5.jpg)
![Page 6: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/6.jpg)
class T{ string ToString() { var sb = new StringBuilder(); sb.Append(GetType());
![Page 7: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/7.jpg)
![Page 8: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/8.jpg)
switch (LookAhead){case Token.OpenSquaredBracket:
![Page 9: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/9.jpg)
![Page 10: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/10.jpg)
![Page 11: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/11.jpg)
template <bool isSomeType>class
![Page 12: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/12.jpg)
![Page 13: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/13.jpg)
#define BOOST_PP_TUPLE_ELEM(size, i, tuple)#define BOOST_PP_SEQ_FOR_EACH(macro, data, seq)
![Page 14: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/14.jpg)
![Page 15: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/15.jpg)
![Page 16: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/16.jpg)
![Page 17: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/17.jpg)
![Page 18: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/18.jpg)
![Page 19: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/19.jpg)
System.Reflection.Emit
![Page 20: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/20.jpg)
![Page 21: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/21.jpg)
![Page 22: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/22.jpg)
![Page 23: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/23.jpg)
delegate void OneWayMethod(T1 arg1, T2 arg2);delegate TResult TwoWayMethod(T arg);
![Page 24: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/24.jpg)
![Page 25: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/25.jpg)
enum MessageID{ Type1, Type2,
![Page 26: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/26.jpg)
![Page 27: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/27.jpg)
![Page 28: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/28.jpg)
![Page 29: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/29.jpg)
![Page 30: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/30.jpg)
![Page 31: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/31.jpg)
![Page 32: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/32.jpg)
![Page 33: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/33.jpg)
![Page 34: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/34.jpg)
현재 스코어
![Page 35: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/35.jpg)
•로직 프로그래머가 선언한 내용이최적화 엔지니어가 의도한 코드를 생성
•적은 양의 코딩 ≈ 좁은 버그 발생 원인코드 생성이 잘못되면 대체로 전체가 오동작
![Page 36: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/36.jpg)
•전체 흐름에 대한 문서 부실•자동화 현재 구현이 커버 못하는 범위가 크다•로그가 부실하다•예외처리가 부실하다
![Page 37: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/37.jpg)
•전체 흐름에 대한 문서 부실•자동화 현재 구현이 커버 못하는 범위가 크다•로그가 부실하다•예외처리가 부실하다
사용성개선 필요
![Page 38: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/38.jpg)
기계어는 여전히 유효하다성능이 아닌 생산성 향상에도 쓰임새가 있다.
어설픈 자동화는 사용자의 불편을 가중시킨다.자동화 개발 중에는 오히려 생산성이 떨어진다.
![Page 39: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/39.jpg)
Q&A
![Page 40: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/40.jpg)
NDC2010 M2 프로젝트 관련 세션
>공개
– MMORPG 스토리텔링의 금기들•5.24. 11:00~12:00 / 미네르바 / 이원
– 마비노기2의 캐릭터 렌더링 기술•5.24. 13:00~14:00 / 미네르바 / 전형규
– 옷을 입혀봅시다•5.24. 14:00~15:00 / 미네르바 / 안태훈
– 패킷 지옥으로부터 탈출•5.24. 15:00~16:00 / 미네르바 / 김재석
– 캐릭터 3D 모델링 Tip & Tech•5.25. 13:00~14:00 / APEX / 우인철
– 완벽한 설계에의 도전•5.25. 14:00~15:00 / 미네르바 / 김주복
– Unity Build로 빌드타임 반토막내기•5.25. 15:00~16:00 / 미네르바 / 송창규
– 설계 - 간접화의 이해•5.25. 16:30~17:00 / 미네르바 / 권성태
– 테크니컬 아티스트 패널 토크•5.25. 17:00~18:00 / APEX / 김충효, 김주복, 이승철
– Gamebryo - 애매한 미들웨어의 유혹•5.26. 11:00~11:30 / 미네르바 / 권성태
– fmod를 이용한 사운드프로그래밍•5.26. 11:30~12:00 / 미네르바 / 장용석
– 애니메이팅 프로세스 전문화 및 노하우 공유•5.26. 13:00~14:00 / APEX / 김기용
– 쉽고 빠르게 모션 제작하기 TIP•5.26. 14:00~14:30 / APEX / 배정섭
– 친 아티스트 3D 캐릭터 리깅•5.26. 14:30~15:00 / APEX / 한상원
– M2 프로젝트의 오류보고 시스템•5.26. 13:00~14:00 / 미네르바 / 백승엽
– 로컬라이제이션 프로그래머의 준비•5.26. 14:00~14:30 / 미네르바 / 장기현
![Page 41: 김재석, 패킷 지옥으로부터 탈출, NDC2010](https://reader031.vdocuments.mx/reader031/viewer/2022020101/5589da5dd8b42a311d8b466d/html5/thumbnails/41.jpg)
NDC2010 M2 프로젝트 관련 세션
>비공개
– 테스트환경의 진화 : 시각화/리플레이•5.27. 11:00~11:30 / 미네르바 / 조정훈
– 서버 사이드 렌더링의 태동•5.27.11:30~12:00 / 미네르바 / 권성태
– 마비노기2 몬스터 AI : 구현과 디버깅•5.27. 14:00~15:00 / 미네르바 / 오승준
– STD 텍스트 데이터 포맷의 적용과 응용•5.27. 15:00~15:30 / 미네르바 / 김지훈
– M2Tools 사용성 개선•5.27. 15:30~16:30 / 미네르바 / 이승철
– 영상을 이용한 팀 얼라인먼트•5.27. 16:30~17:00 /교육장 / 이진훈
– 스케일폼은 축복인가? 재앙인가? •5.27. 17:00~18:00 / 미네르바 / 윤성문
– 사실적 터치의 게임 일러스트•5.28. 11:00~11:30 / 미네르바 / 한아름
– 노말맵 겁먹지 마세요!•5.28. 11:30~12:00 / 미네르바 / 지정현
– 테크니컬 아트 테크닉스 : 애니메이팅 & 리깅•5.28. 14:00~15:00 / 미네르바 / 김충효
– 마비노기2의 하우징 시스템•5.28. 15:00~16:00 / 교육장 / 이무림
– 마비노기2 하우징 블록 디자인 사례•5.28. 16:00~16:30 / 미네르바 / 이연희
– 모자를 씌워봅시다•5.28. 16:30~17:00 / 미네르바 / 안태훈
– 차세대 게임의 시나리오 개발 프로세스•5.28. 17:00~18:00 / 교육장 / 이원