pc 게임의xbox porting · 8월: 게임패드, 와이드스크린, hdtv, 3d 사운드 9월:...
TRANSCRIPT
차 례
게임 소개
Porting 일지
Porting상의 문제들
Hardcore 4x4
Hardcore 4x4Take 2 Publishing
국내 최초 콘솔 게임 수출 계약
게임의 특징느린 4x4 레이싱에 스포츠 레이싱의 속도감 부여
트랙에 제한되지 않는 오프로드 레이싱
다양한 극한 지형에서의 레이싱 경험
다수의 AI 차량 및 사용자 참여
미션 모드 등 아케이드성 최대화
제작 일지
Xbox Porting 일지5월: MS로부터 Xbox 개발자 허가 받음,
PC 버젼을 Xbox 용으로 이식
6월: 네트웍, 데이타세이브, 메모리카드 지원, 다중사용자
7월: Xbox용 새 UI 작업,
8월: 게임패드, 와이드 스크린, HDTV, 3D 사운드
9월: 버텍스 세이더 충분히 이용
10월: 로딩시간 단축
11월: 외국어지원, 메모리 유니트, 사용자지원 음악
제작상의 과제
Hardcore 4x4 Xbox 버젼 제작상의 과제이 기종간 프로그램 이식
다중 사용자 참여 기능
제한된 메모리 한계 극복
속도 향상
이기종간 프로그램 이식
PC 대 Xbox 비교유사성
Pentium CPU, 단순화된 Window2000 커널
개발 환경 (Visual Studio.net)
Win32, Direct3D, Winsock 지원
차이점DirectSound 부분 지원
DirectInput, DirectPlay 지원되지 않음
대부분의 Windows API 지원되지 않음
메모리 용량 제한(64M)
HDD Swapping에 의한 가상 메모리 지원되지 않음
실제 이식과정이기종간의 시스템 차이 및 프로그램의 개략적 구조 이해
비슷한점
Harddisk
Intel CPU
Nvidia graphics chip
MS 2000 based OS
MS Visual C++ based development system
다른점
XOBX 는 단지 개임을 위한 콘솔이다.
하드웨어는 고정되어 있고, 절대 변하지 않을 것이다.
XBOX 시스템은 Microsoft Win32 에 기본을 두고 있다.
고정된 하드웨어에 필요하지 않는 Win32 APIs 들은 없다.
XOBX의 라이브러리는 PC의 라이브러리와 많이 다른 것 있다.
XOBX 사용자는 PC와 다른 기대를 하고 있다: plug and play, instant access to games, no installation, no patches, no extensive controller configuration, and the possibility of an arcade-like experience.
다중 사용자 참여 기능
게임 프로그램을 일종의 State Machine으로 간주게임의 State를 공통 State와 사용자 State로 분류
이 중 사용자 State를 각각의 사용자별로 중복되도록 함
모든 관련 변수 및 코드 수정
프로그램 전체를 이해하고 분석해야 하는 작업
공통 State
사용자 State 1
사용자 State 2
사용자 State 3
제한된 메모리 한계 극복
Xbox 시스템상의 제한시스템 메모리가 64MB로 제한됨
HDD Swapping 방식의 가상 메모리가 지원되지 않음
해결 방식필요할 때마다 그때그때 자료를 읽어들임
압축 Texture의 사용
게임 내에서 공유할 수 있는 모든 데이타를 공유
결과현재 30% 정도의 여유공간 확보
속도 향상
Xbox 게임 개발시 가장 Challenging한 과제733-MHz Pentium III CPU로 60 FPS를 보장해야 함
해결 방식실시간 동적 메모리 할당의 최소화
Mipmap Texture 사용
* 렌더링 순서 변경
* FOV (Field of View) 의 효율적 관리
결과현재 대부분의 장면에서 60 FPS 보장
렌더링 순서 변경
렌더링 순서에 관한 고찰
기존에는 배경 -> 전경 순서로 렌더링
전경 -> 배경 순서로 렌더링할 때 효율이 최대화
배경 -> 전경 순서로 렌더링해야 투명 처리가 올바로 됨
해결 방식 - 렌더링 순서의 세분화
1. 지형을 전경 -> 배경 순으로 렌더링
2. 불투명한 물체를 전경 -> 배경 순으로 렌더링
3. 반투명한 물체를 배경 -> 전경 순으로 렌더링
(반투명 물체는 물체 내에서도 배경 -> 전경 순 렌더링)
결과
렌더링 효율 향상 및 올바른 반투명 처리
앞으로 가시성 및 LOD를 이용, 렌더링 속도를 더욱 향상시킬 계획
FOV의 효율적 관리
기존 방식지형 및 오브젝트를 n x n cell 구조로 분할 관리 ( n = 100 )
FOV와 중복되는 cell들을 개략적으로 추출
Quicksort 알고리즘로 순서 정렬
속도가 느리고 FOV 크기 변화가 어렵다
새 방식Cell의 거리별 추출 순서를 사전에 프리프로세싱
Projection된 3D Viewing Frustum과 교차하는 cell을 정확히추출
결과속도 향상 ( 특히 다중 사용자 참여시 )
Widescreen, HDTV, Splitted Screen 지원이 용이해짐