본문 바로가기

분류 전체보기590

렌더러 생성 게임브리오에서는 여러가지 렌더러(Open GL, DirectX 8, DirectX 9, PS2)를 지원하고 있다. 그렇기 때문에 렌더러를 생성할 때 일반화된 프로그램을 작성할 수 없다. 게임브리오에서는 렌더러별로 Create 함수를 이용하여 렌더러를 생성하도록 하고 있다. 모든 렌더러는 NxRenderer 클래스를 상속받고 있으며, 모든 렌더러 함수들은 가상함수로 제공됨으로써 게임브리오 응용 프로그램에서 생성한 렌더러가 실행될 수 있도록 되어있다. Create 함수를 이용한 가상 클래스 생성에 대한 설명은 http://cafe.naver.com/dxgameprogramming/36 을 참조하길 바란다. 렌더러 생성은 다음과 같은 형태로 진행된다. 1) 렌더러 파라미터 검사 - 렌더러 파라미터는 현재 설치.. 2011. 9. 19.
프로그램 제작에서의 기술장벽 세상에는 많은 프로그래머가 있다. 과연 프로그래머에게 있어서 프로그램을 작성하는 기술은 어떻게 달라질까? 이것에 대한 해답을 찾기 위해서 하나의 예제를 들어볼까 한다. C 언어에서 for 루프를 이용하여 1부터 100까지 모두 다 더하는 프로그램을 짜보도록 한다. #include void main() { int i; int sum = 0; for( i = 1 ; i 2011. 9. 19.
스마트포인터 3D 그래픽 프로그램에는 많은 수의 오브젝트들이 생성된다. 이 오브젝트들은 메모리 절감이나 속도 향상을 위해서 공유되어 사용된다. 오브젝트의 공유는 장점도 있지만 단점도 존재한다. 오브젝트의 생성은 자유롭지만 소멸에 대해서는 자유롭지 못하다. 그래서 참조횟수(Reference counter)라는 것을 이용하여 참조횟수가 0이 되면 소멸하도록 만든다. 참조횟수라는 개념은 대부분의 그래픽 엔진(게임 엔진 포함)이 가지고 있다. 게임브리오 엔진은 NiRefObject 클래스가 참조횟수를 관리한다. 참조횟수를 증가하고 감소하기 위해서 게임브리오에서는 IncRefCount 함수와 DecRefCount 함수를 사용하고 있다. 프로그래머는 잘 짜여진 원칙에 의해서 참조횟수를 조절해주어야 할 것이다. 그렇지 않다면, .. 2011. 9. 19.
게임브리오 시작하기 게임브리오는 멀티 플랫폼 개발이 가능하도록 구성되어 있다. 실제 PS2, DirectX9, DirectX8, OpenGL 등의 플랫폼에서 소스를 크게 수정하지 않고 동작시킬 수 있다. 마크로만 잘 정의했다면, 소스 수정 없이 동작이 가능하다. 사실 멀티플랫폼 개발이라는 것이 꽤 곤혹스럽다. 한 때, Windows Mobile과 Win32 멀티플랫폼 개발을 해보았는데, 신경써주어야하는 것이 한두가지가 아니었다. 비슷한 플랫폼인데도 상당히 작업이 귀찮고 껄끄러운데, 이종간에는 어떨지 대충은 알 것으로 생각한다. 여하튼 각설하고.. 게임브리오를 시작하기 위해서는.. 1) 윈도우 생성 로직은 직접 작성해야 한다. NiApplication을 사용하는 방법도 있지만, 그리 권하지는 않는다. 2) 윈도우가 생성되었으.. 2011. 9. 17.
Gamebryo 엔진 제가 MMORPG를 두번 개발했는데, 첫번째 게임은 고누소프트의 가약스 게임입니다. 이 게임은 당시 MMORPG가 그다지 많지 않을 때 만들었죠. 그래도 꽤 인기가 있었고, 아직까지도 잊지 않고 기억해주는 게임입니다. 이 게임을 개발하기 위해서 다양한 엔진을 검토했는데, 가격대 성능비로 가장 높은 점수를 줬던 것이 게임브리오 엔진의 전신인 넷이머스(NetImmerse) 엔진입니다. 가약스 게임은 모두 MMORPG 게임 제작에 경험이 없었던 탓에 상당히 많은 시행착오를 했었지만, 개발진들이 모두 열심히 해주어서 그래도 꽤 만족한 게임이 되었습니다. 개인적으로 그래픽은 별로였지만요. 저는 클라이언트 쪽 프로그램 총괄을 맡았었습니다. 두번째 게임은 스피노소프트의 나비스 온라인 게임입니다. 해양온라인 게임의 기.. 2011. 9. 16.
1000! 가지고 장난치기 [문1]은 제가 만든 문제이고요. [문2]는 옛날 교사임용고사에 나왔던 문제입니다. [문1] 1000! 을 계산하면 일련의 숫자들이 죽 나열되겠죠. 이 결과값의 모든 자릿수의 합을 계산합니다. 그러면 또 일련의 숫자들이 나옵니다. 또 모든 자릿수의 합을 계산하고요. 이것을 무한 반복하면, 결국 한자리 숫자가 나오게 됩니다. 이 한자리 숫자가 얼마일까요? [문2] 1000! 을 계산하면 일련의 숫자들이 나옵니다. 그런데 1의 자릿수부터 연속된 0들이 쭉 나오겠죠? 과연 이 연속된 0의 겻수는 얼마일까요? [답]----------------------------------------- [문1]은 다음과 같은 수학적 기반으로 풀면 쉽게 풀립니다. 1) 어떤 수 a가 9의 배수이면, a의 모든 자릿수를 더한 것.. 2011. 9. 16.
728x90