알라딘MGG와이드바


GameTech 2010 : FPS 게임 엔진의 MMORPG 적용 '아키에이지' 의 예 : XLGAMES 송재경 대표 개발 이야기




 * FPS 엔진이 MMORPG 에 적합하지 않는 점들을 수정했음.
  * 본인 캐릭터 랜더링 안 함.
  * 심리스 월드 안 됨.
  * 동시 렌더링 캐릭터 수 한계.
 * 판타지 표현
  * 스카이박스에서 별자리 이동하기(헉...), 여러 개의 달 그리기
  * CryEngine2 에서는 레벨 별로 분위기 조절(post pixel processing? tone mapping?) 할 수 있는데, 이를 서브존에서도 조절할 수 있게 수정
 * 공정 개선
  * Vegetation 툴 개선
   * 식물에 박스를 쳐서 색감을 다르게 만들 수 있는 거 같은 옵션을 추가한 거 같은데...
  * Asset 브라우저
   * WOW 의 Asset 이 150만개라는 얘기가
   * 여러 Asset 를 빠르게 찾을 수 있는 기능 추가
  * 에디터 락
   * 여러 사람이 동시에 맵을 편집 가능
 * 기타
  * DirectInput 폐기(MS 도 비추하고 있음. 그냥 Windows 메시지를 쓰자), UDP -> TCP
  * 애드온 가능한 UI
   * 를 만들기 위해 Scaleform SDK 폐기(헉...) 하고 대신 C++ 오브젝트 + Lua 스크립트 사용
  * 캐릭터용 가상 광원
   * 어두운 던전 그림자 속에서도 캐릭터만큼은 눈에 들어오도록 가상의 light 설치 (이런 게 진짜 MMO care 일 듯...)
  * 컷신 데이터를 맵 데이터와 분리해서 동적으로 로딩
   * 다른 플레이어에게 방해가 안 되게 처리
 * 좌표계
  * 기존 시스템은 월드를 8 km 까지만 지원 (float 라서 값이 커질수록 정밀도 낮음)
  * 512 km 까지 지원하기 위해 float 타입을 64 비트 고정 소수점으로 변경
 * 월드
  * 섹터(64m) -> 셀(1024m) -> 존(?km) -> 월드
 * 옷 갈아입기 (CryEngine2 에는 없음)
  * 컷팅라인 방식 대신 Cut Box 방식 사용(마비노기 영웅전 구현 방법 보고 따라했다고 얘기함.)
 * 50:50 공성전을 위해 성능 고민.
  * 애니메이션 LOD - 멀리 있는 캐릭터 본 일부 생략, 동적 메쉬 병합
 * 물리 엔진 적용
  * Server-Side 에서 CryEngine2 물리 엔진을 적용 (이제 서버에서도 물리를...)
  * 단, 성능상의 이유로 Full Physics 는 돌리지 않고, 인스턴스 던전 위주로 적용
 * 서버 구조는 기존 MMORPG 와 유사(월드당 서버 1대) + 존 서버

------------------------------------------------------------------------------------------------

* Q/A
 * Q : 자체 엔진이나 Unreal Engine 대신 Cry 엔진을 선택?
  * A : 자체 엔진 개발하려면 20명 이상의 우수한 인력이 2년 이상 필요. UE 엔진보다 Cry 엔진을 선택한 이유는 (방금 팀 스위니도 그걸 물어봐서 헉 했다는...) 그 당시(2007년?) 유로화도 좀 쌌고, 프로그래밍 팀장이 (해 본 경험이 있어서??) Cry 엔진을 추천했다.
 * Q : 별자리나 메테오 자국이 월드에 남는게 재미 요소에 큰 영향을 주는가?
  * A : 팀 내부에서도 그런 얘기가 많았다. 게임 플레이에도 영향을 줄 방법을 생각중이다. 단, MMORPG 는 개발자 의도대로 돌아가지는 않는다.
 * Q : 기획이나 그래픽 prototype 을 돕기 위해 따로 프로그래밍 팀에서 해 준 게 있는지?
  * A : 구현 spec 개발하기도 바빠서 지금은 딱히 그런 게 있었는지 생각이 나지 않는다.
 * Q : CRY 엔진 써 보니 어떤지?
  * A : 랜더링 결과물은 만족. sandbox 가 강력하긴 한데, 복잡해서 처음 적응이 어렵다. 일화 : 걷기, 뛰기 애니메이션을 만들면 엔진에서 속도에 따라 적당하게 블렌딩해서 보여주는데, 애니메이션 만드는 분들이 그걸 오히려 싫어하더라. 그래서 '비싼 엔진을 싸구려처럼 쓰려고 한다' 는 얘기를 한 적이 있다.
 * Q : 스마트폰쪽 관련 지원 계획은?
  * A : 웹쪽 관련 지원팀은 따로 있다. 스마트폰 쪽도 관심은 있지만 지금 해야 할 일은 아닌 듯.
 * Q : 서버 구조를 하나의 큰 월드로 만들지 않고, 기존 MMORPG 처럼 월드별로 따로 만든 이유는?
  * A : 딱히 고민해 보진 않았지만 5천명 정도만 접속해도 익명성이 생겨서 MMO 의 느낌을 줄 수 있다고 본다. 단, 오베할 때 사람들이 몰려들텐데 이 때 채널링을 해 줘야할지 등은 고민중이다.
 * Q : C++ 말고 다른 언어로 서버를 구현할 생각은 안 해 봤는지?
  * A : 초반에 Java 나 C# 도 고민해 봤다. 하지만, Cry 엔진쪽 코드를 갖다가 써야 하기도 했고, 프로그래머가 대부분 C++ 경력자라 결국 C++ 로 하게 되었다.
 * Q : 몬스터 AI 용 스크립트 언어는 따로 사용하는게 있는지? (를 물어봤지만 다른 답변 하시다가 이 답변을 못 들었군요.)

참고 :
아키에이지 테크 동영상 공개

핑백

덧글

  • all2one 2010/02/26 02:47 # 삭제 답글

    잘 읽었습니다. ^^
  • 박PD 2010/02/26 08:09 #

    :)
  • 김윤정 2010/02/26 10:10 # 답글

    오오 역시 정리의 달인 박PD님. 잘 읽었습니다 :)
  • LoLieL 2010/02/26 11:31 # 답글

    잘 읽었습니다.^^ 기술 외적으로도 사용자 서비스 관점에서 참고할 만한 맥락들이 보이네요.
  • 오즈라엘 2010/02/26 13:53 # 답글

    잘봤습니다~!
  • 정시퇴근 2010/02/26 17:28 # 답글

    잘 봤습니다~ 메테오 자국이 바닥에 남는 건 보스전때 사용하면 잼있을 듯합니다..^_^
  • 박PD 2010/02/27 14:15 # 답글

    이번에 송재경님 발표하실 때 많이 보여주시더군요. 저도 많이 배웠습니다. :)
  • 펑키보이 2010/02/27 18:22 # 삭제 답글

    우와 정리가 너무 잘된것 같아요 ^^ 퍼가도되겠죠~?
    항상 좋은 정보 정말 감사드려요~
  • 박PD 2010/02/27 21:39 #

    네, 그렇게 하세요.
  • 니트탐정 2012/04/28 19:07 # 답글

    잘보고갑니다.,
  • 박PD 2012/04/28 22:11 #

    감사합니다.
댓글 입력 영역


Yes24위대한게임의탄생3

위대한 게임의 탄생 3
예스24 | 애드온2