본문 바로가기
반응형

게임브리오5

성능향상을 위한 방법들 1. NiPick에서의 충돌 검사 일반적으로 충돌 처리를 NiPick을 이용해서 많이 합니다. 그런데 NiPick에는 심각한 문제가 있습니다. 그것은 거리와 상관없이 해당 방향에 있는 모든 오브젝트에 대해서 검사를 한다는 것이죠. NiPick 충돌 검사 비용을 줄이기 위해서는 트라이앵글 충돌검사비용을 줄여주어야 합니다. 그렇게 하기 위해서는 경계구에서 거리가 먼경우(경계구의 중심점과 NiPick.Ray의 origin 위치사이의 거리에서 경계구의 반지름을 뺀 값)에는 아예 그 안에 들어가지 않게 하는 것입니다. 이렇게 하면 속도향상을 상당부분 줄 수 있습니다. NiPick을 이용한 충돌은 기본적으로 카메라 충돌 검사, 서있는 위치 알아오기, 이동방향에 대한 충돌 등 다양하게 적용되겠죠. 2. Update .. 2011. 9. 24.
트리구조 게임브리오에서는 트리구조를 다룸에 있어서 가변형 배열(Array)를 사용하고 있습니다. 링크드 리스트를 이용할 경우 싱글 링크드 리스트를 이용한다면, 가변형 배열과 비슷한 자료 크기를 가지고 있습니다. 그러나 가장 큰 약점은 하나의 노드를 여러개의 노드가 자식으로 가질 수 없다는 점입니다. 그렇다고 해서 게임브리오가 이 조건을 만족하는가 하면 그것은 아닙니다. 게임브리오는 기본적으로 하나의 노드를 여러개의 노드가 자식으로 가질 수 없습니다. 트리를 구성함에 있어서는 다음과 같은 경우를 따져보아야 합니다. 하나의 노드는 여러개의 부모를 가질 수 있는가? 이 것은 트리를 설계할 때 가장 중요한 부분입니다. 그래픽 엔진을 개발할 때에는 이것을 허용하는 쪽으로 하는 것이 원칙이라고 생각됩니다. 그러면 함수면에서.. 2011. 9. 23.
렌더러 생성 게임브리오에서는 여러가지 렌더러(Open GL, DirectX 8, DirectX 9, PS2)를 지원하고 있다. 그렇기 때문에 렌더러를 생성할 때 일반화된 프로그램을 작성할 수 없다. 게임브리오에서는 렌더러별로 Create 함수를 이용하여 렌더러를 생성하도록 하고 있다. 모든 렌더러는 NxRenderer 클래스를 상속받고 있으며, 모든 렌더러 함수들은 가상함수로 제공됨으로써 게임브리오 응용 프로그램에서 생성한 렌더러가 실행될 수 있도록 되어있다. Create 함수를 이용한 가상 클래스 생성에 대한 설명은 http://cafe.naver.com/dxgameprogramming/36 을 참조하길 바란다. 렌더러 생성은 다음과 같은 형태로 진행된다. 1) 렌더러 파라미터 검사 - 렌더러 파라미터는 현재 설치.. 2011. 9. 19.
게임브리오 시작하기 게임브리오는 멀티 플랫폼 개발이 가능하도록 구성되어 있다. 실제 PS2, DirectX9, DirectX8, OpenGL 등의 플랫폼에서 소스를 크게 수정하지 않고 동작시킬 수 있다. 마크로만 잘 정의했다면, 소스 수정 없이 동작이 가능하다. 사실 멀티플랫폼 개발이라는 것이 꽤 곤혹스럽다. 한 때, Windows Mobile과 Win32 멀티플랫폼 개발을 해보았는데, 신경써주어야하는 것이 한두가지가 아니었다. 비슷한 플랫폼인데도 상당히 작업이 귀찮고 껄끄러운데, 이종간에는 어떨지 대충은 알 것으로 생각한다. 여하튼 각설하고.. 게임브리오를 시작하기 위해서는.. 1) 윈도우 생성 로직은 직접 작성해야 한다. NiApplication을 사용하는 방법도 있지만, 그리 권하지는 않는다. 2) 윈도우가 생성되었으.. 2011. 9. 17.
Gamebryo 엔진 제가 MMORPG를 두번 개발했는데, 첫번째 게임은 고누소프트의 가약스 게임입니다. 이 게임은 당시 MMORPG가 그다지 많지 않을 때 만들었죠. 그래도 꽤 인기가 있었고, 아직까지도 잊지 않고 기억해주는 게임입니다. 이 게임을 개발하기 위해서 다양한 엔진을 검토했는데, 가격대 성능비로 가장 높은 점수를 줬던 것이 게임브리오 엔진의 전신인 넷이머스(NetImmerse) 엔진입니다. 가약스 게임은 모두 MMORPG 게임 제작에 경험이 없었던 탓에 상당히 많은 시행착오를 했었지만, 개발진들이 모두 열심히 해주어서 그래도 꽤 만족한 게임이 되었습니다. 개인적으로 그래픽은 별로였지만요. 저는 클라이언트 쪽 프로그램 총괄을 맡았었습니다. 두번째 게임은 스피노소프트의 나비스 온라인 게임입니다. 해양온라인 게임의 기.. 2011. 9. 16.
728x90