pc 게임의xbox porting · 8월: 게임패드, 와이드스크린, hdtv, 3d 사운드 9월:...

13
PC 게임의 XBOX Porting 종원, 하 형진 www.kogstudios.com Wonlee/[email protected]

Upload: others

Post on 11-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PC 게임의XBOX Porting · 8월: 게임패드, 와이드스크린, HDTV, 3D 사운드 9월: 버텍스세이더충분히이용 10월: 로딩시간단축 11월: 외국어지원, 메모리유니트,

PC 게임의 XBOX Porting

이 종원, 하 형진

www.kogstudios.com

Wonlee/[email protected]

Page 2: PC 게임의XBOX Porting · 8월: 게임패드, 와이드스크린, HDTV, 3D 사운드 9월: 버텍스세이더충분히이용 10월: 로딩시간단축 11월: 외국어지원, 메모리유니트,

차 례

게임 소개

Porting 일지

Porting상의 문제들

Page 3: PC 게임의XBOX Porting · 8월: 게임패드, 와이드스크린, HDTV, 3D 사운드 9월: 버텍스세이더충분히이용 10월: 로딩시간단축 11월: 외국어지원, 메모리유니트,

Hardcore 4x4

Hardcore 4x4Take 2 Publishing

국내 최초 콘솔 게임 수출 계약

게임의 특징느린 4x4 레이싱에 스포츠 레이싱의 속도감 부여

트랙에 제한되지 않는 오프로드 레이싱

다양한 극한 지형에서의 레이싱 경험

다수의 AI 차량 및 사용자 참여

미션 모드 등 아케이드성 최대화

Page 4: PC 게임의XBOX Porting · 8월: 게임패드, 와이드스크린, HDTV, 3D 사운드 9월: 버텍스세이더충분히이용 10월: 로딩시간단축 11월: 외국어지원, 메모리유니트,

제작 일지

Xbox Porting 일지5월: MS로부터 Xbox 개발자 허가 받음,

PC 버젼을 Xbox 용으로 이식

6월: 네트웍, 데이타세이브, 메모리카드 지원, 다중사용자

7월: Xbox용 새 UI 작업,

8월: 게임패드, 와이드 스크린, HDTV, 3D 사운드

9월: 버텍스 세이더 충분히 이용

10월: 로딩시간 단축

11월: 외국어지원, 메모리 유니트, 사용자지원 음악

Page 5: PC 게임의XBOX Porting · 8월: 게임패드, 와이드스크린, HDTV, 3D 사운드 9월: 버텍스세이더충분히이용 10월: 로딩시간단축 11월: 외국어지원, 메모리유니트,

제작상의 과제

Hardcore 4x4 Xbox 버젼 제작상의 과제이 기종간 프로그램 이식

다중 사용자 참여 기능

제한된 메모리 한계 극복

속도 향상

Page 6: PC 게임의XBOX Porting · 8월: 게임패드, 와이드스크린, HDTV, 3D 사운드 9월: 버텍스세이더충분히이용 10월: 로딩시간단축 11월: 외국어지원, 메모리유니트,

이기종간 프로그램 이식

PC 대 Xbox 비교유사성

Pentium CPU, 단순화된 Window2000 커널

개발 환경 (Visual Studio.net)

Win32, Direct3D, Winsock 지원

차이점DirectSound 부분 지원

DirectInput, DirectPlay 지원되지 않음

대부분의 Windows API 지원되지 않음

메모리 용량 제한(64M)

HDD Swapping에 의한 가상 메모리 지원되지 않음

실제 이식과정이기종간의 시스템 차이 및 프로그램의 개략적 구조 이해

Page 7: PC 게임의XBOX Porting · 8월: 게임패드, 와이드스크린, HDTV, 3D 사운드 9월: 버텍스세이더충분히이용 10월: 로딩시간단축 11월: 외국어지원, 메모리유니트,

비슷한점

Harddisk

Intel CPU

Nvidia graphics chip

MS 2000 based OS

MS Visual C++ based development system

Page 8: PC 게임의XBOX Porting · 8월: 게임패드, 와이드스크린, HDTV, 3D 사운드 9월: 버텍스세이더충분히이용 10월: 로딩시간단축 11월: 외국어지원, 메모리유니트,

다른점

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.

Page 9: PC 게임의XBOX Porting · 8월: 게임패드, 와이드스크린, HDTV, 3D 사운드 9월: 버텍스세이더충분히이용 10월: 로딩시간단축 11월: 외국어지원, 메모리유니트,

다중 사용자 참여 기능

게임 프로그램을 일종의 State Machine으로 간주게임의 State를 공통 State와 사용자 State로 분류

이 중 사용자 State를 각각의 사용자별로 중복되도록 함

모든 관련 변수 및 코드 수정

프로그램 전체를 이해하고 분석해야 하는 작업

공통 State

사용자 State 1

사용자 State 2

사용자 State 3

Page 10: PC 게임의XBOX Porting · 8월: 게임패드, 와이드스크린, HDTV, 3D 사운드 9월: 버텍스세이더충분히이용 10월: 로딩시간단축 11월: 외국어지원, 메모리유니트,

제한된 메모리 한계 극복

Xbox 시스템상의 제한시스템 메모리가 64MB로 제한됨

HDD Swapping 방식의 가상 메모리가 지원되지 않음

해결 방식필요할 때마다 그때그때 자료를 읽어들임

압축 Texture의 사용

게임 내에서 공유할 수 있는 모든 데이타를 공유

결과현재 30% 정도의 여유공간 확보

Page 11: PC 게임의XBOX Porting · 8월: 게임패드, 와이드스크린, HDTV, 3D 사운드 9월: 버텍스세이더충분히이용 10월: 로딩시간단축 11월: 외국어지원, 메모리유니트,

속도 향상

Xbox 게임 개발시 가장 Challenging한 과제733-MHz Pentium III CPU로 60 FPS를 보장해야 함

해결 방식실시간 동적 메모리 할당의 최소화

Mipmap Texture 사용

* 렌더링 순서 변경

* FOV (Field of View) 의 효율적 관리

결과현재 대부분의 장면에서 60 FPS 보장

Page 12: PC 게임의XBOX Porting · 8월: 게임패드, 와이드스크린, HDTV, 3D 사운드 9월: 버텍스세이더충분히이용 10월: 로딩시간단축 11월: 외국어지원, 메모리유니트,

렌더링 순서 변경

렌더링 순서에 관한 고찰

기존에는 배경 -> 전경 순서로 렌더링

전경 -> 배경 순서로 렌더링할 때 효율이 최대화

배경 -> 전경 순서로 렌더링해야 투명 처리가 올바로 됨

해결 방식 - 렌더링 순서의 세분화

1. 지형을 전경 -> 배경 순으로 렌더링

2. 불투명한 물체를 전경 -> 배경 순으로 렌더링

3. 반투명한 물체를 배경 -> 전경 순으로 렌더링

(반투명 물체는 물체 내에서도 배경 -> 전경 순 렌더링)

결과

렌더링 효율 향상 및 올바른 반투명 처리

앞으로 가시성 및 LOD를 이용, 렌더링 속도를 더욱 향상시킬 계획

Page 13: PC 게임의XBOX Porting · 8월: 게임패드, 와이드스크린, HDTV, 3D 사운드 9월: 버텍스세이더충분히이용 10월: 로딩시간단축 11월: 외국어지원, 메모리유니트,

FOV의 효율적 관리

기존 방식지형 및 오브젝트를 n x n cell 구조로 분할 관리 ( n = 100 )

FOV와 중복되는 cell들을 개략적으로 추출

Quicksort 알고리즘로 순서 정렬

속도가 느리고 FOV 크기 변화가 어렵다

새 방식Cell의 거리별 추출 순서를 사전에 프리프로세싱

Projection된 3D Viewing Frustum과 교차하는 cell을 정확히추출

결과속도 향상 ( 특히 다중 사용자 참여시 )

Widescreen, HDTV, Splitted Screen 지원이 용이해짐