KGC 2007 1st Day
see also KGC 2007 2nd Day
KEYNOTE
분명 한글 제목이 "상업적인 3D 엔진을 사용하여 MMO를 개발하는 도전"인데 영문 제목은 "Thin Transaction Clients: Delivering games fast and furious" ... 쉽게 말해서 오타라는 뜻이다. 키노트의 주제로는 좀 어울리지 않을 정도로 프로그래밍에 치우친 내용이었는데, 내용 자체는 패러다임 시프트라고 부를 수 있을 정도로 참신했다. 실제 코드가 한번도 나오지 않아서 확실히 이해한 것은 아니지만, 간단하게 메모한 내용을 정리해보면
- TTC는 스크립트의 개념과 유사한데, 좀 더 분산처리라든지 멀티티어, 멀티쓰레딩(또는 멀티코어), 스트리밍에 친화적인 개념이다.
- 가령 클라이언트를 잘게 dll로 쪼개고 그 안에 각종 텍스처나 사운드 같은 asset들을 담을 수 있도록 하고, 서버에서 스트리밍으로 이걸 다운받아서 실행한다고 보면 그럭저럭 비슷하다고나 할까? 아니면 파이썬으로 클라이언트를 만들었는데 각각의 파이썬 코드들은 다운받는다고 생각하면 될 것 같다.
- 핵심은 이런 하나 하나의 트랜잭션들을 멀티코어에서 자유롭게 분산처리할 수 있도록 토큰(코드 또는 asset)을 적당히 조립하고 동기화를 맞춘다...고 하는 개념. 따라서 향후 재사용성도 높을 거라고 강사가 말했지만, 6년 정도 사용해봤음에도 아직 상용화된 게임은 없다고 하니...
- 서버에서 클라이언트를 완전히 통제한다는 것을 계속 강조했다. 근데 이렇게 살면 제법 피곤할텐데;;; 그 트래픽은 과연 어떻게 감당해낼지도 의문이다.
- 당연히 디버깅이라든지 트레이싱이 난감하다. 다만 이런 느낌이라면 적당히 GUI 툴로 개발해도 될 것 같다.
- 그런데 스크립트에 비해서 얼마나 더 좋은지에 대해서는 공감하기 힘들다. 오직 멀티코어 대응이 좋다는 점에 대해서는 수긍함.
XNA Game Studio Express and the XBOX Live Arcade
개인적으로 XNA에 대해서 관심이 많아서 참가했는데 질문 하나 하고 "블루드래곤"을 경품으로 받았다. 그래서 그런지 오늘 가장 마음에 든 알찬 세션 중에 하나였다. 몇 가지 인상 깊은 이야기를 적어보자면,
- XBLA 게임들은 라이브에서 지원하는 일종의 쉐어웨어 게임으로, 현재 70개 정도의 아케이드 게임이 출시되었다. 대부분의 게임들이 고전 게임들의 리메이크이거나 퍼즐, 보드 게임들이다.
- 일반적으로 XNA 게임들은 10-15만불 정도의 개발비를 투입해서 3개월 정도 개발을 하는데, 보통 출시한지 1주에서 10일만에 손익분기점을 넘긴다고 한다. 이때 수익은 개발사:MS가 7:3으로 나눈다.
- MS에 제안서를 제출해서 accept가 나면 본격적인 개발에 들어간다. 이때 콘솔 게임 특유의 치열한 QA를 통과해야만 실제로 LIVE로 배포가 된다.
- XLSP를 통해서 마비노기처럼 독립적인 외부 서버를 지원할 수 있게 되었다.
- 아무래도 콘솔이다보니 PC 처럼 손쉽게 패치를 할 수 있는 환경은 아니다. 만약 실행 파일을 패치한다면 또다시 QA를 거쳐야 하지만 asset은 적당히 통보만 하고 배포해도 된다고 한다.
- 30초만에 플레이가 가능할 정도로 쉽고, 모든 나이의 플레이어들이 좋아하며, 협동과 경쟁 개념이 강하고, 가족끼리 즐길 수 있는 캐주얼 게임을 찾고 있다고 한다.
- 배포 크기는 보통 150M를 넘지 않아야 된다고 한다. 즉 양으로 승부하는 2D게임은 힘들다는 점.
Multi-Core Programming : Lessons From Experience
워낙 많은 사람이 들어와서 통역기도 못받고 바닥에 앉아서 들어야 했다. 다행히 강사가 천천히 말해줘서 대충은 알아 들을 수 있었는데, 갑자기 식곤증이 몰려와서 많은 내용을 놓쳐버렸다;
- 렌더링과 업데이트간의 버퍼 교환이 결국 병목의 근원이다. 더블버퍼링을 이용하면 될 것 같지만, 쉽지 않다. 결국은 프레임 단위로 바뀐 것들만 잘 분산시켜서 넘겨야 된다. 너무 분산시키면 렌더링은 과거의 정보를 그리게 된다..
- lock-free queue 를 이용해서 멀티쓰레드간 동기화를 하는 XMCore 가 XDK에 포함되었다
- 이 동네는 결국 메시지 기반의 통신을 해야만 한다.
- legacy code를 만질 때에는 cloth simulation 등의 eye candy 류의 기능들을 먼저 분산 처리하는 것이 정신 건강에 좋다.
XNA Game Studio Express 2.0
올해 12월에 출시된다는 XNAGS 2.0의 기능에 대한 소개 세션이었다. 1.0 에 비해서 달라진 점들을 간단히 소개하는 정도였는데 첫 세션과 중복되는 내용도 많고, 이미 인터넷으로 공개된 내용이 대부분이라서 많이 아쉬웠던 시간이었다.
- 게이머 태그, 게이머 카드, 친구 관리 등의 게이머 서비스 지원
- Xbox LIVE의 매치메이킹 API을 이용해서 서버 없이도 네트워크 플레이가 손쉽게 지원되도록 함
- reliable UDP 라든지 멀티렌더타겟 등을 지원함
- 내년 후반에 출시될 버전에서는 C++도 지원할 예정
SCRUM Development Methodology to MMOs
바이오웨어에서 온 고든 할아버지의 강연. 어째 MMO를 개발하면서 스크럼을 적용하면서 얻은 교훈을 소개해주시나 싶었는데 30분 넘게 스크럼의 개요에 대해서만 이야기를 들었다. 동시통역하는 언니가 너무 버벅거려서 더욱 마음에 들지 않았다;; 아무래도 고든 박사가 전직 VP여서 그런지 실질적인 스크럼팀 운영에는 참가하지 않는 모양이었다. 하하하. (아마도 치킨이 아니었을까?)
- QA팀이 스크럼에 참가하면 효율이 정말 높아진다!
- 스크럼의 핵심은 진실을 말하는 것이다.
see also KGC 2007 2nd Day