자체엔진 vs 상용엔진

자체엔진을 쓰느냐 상용엔진을 쓰느냐…하는 문제에 대해서 몇 자 적어봄. 1. 엔진 기술이 아예 없는 개발팀(or 회사)은 상용 엔진을 사용하지 않으면 게임이 아예 안나온다. 선택의 여지가 없다. 이 경우 엔진부터 만들겠다고 하면 자살행위다. 2. 엔진 기술을 가지고 있고 이미 해당 엔진으로 게임 출시 경험이 있다면 굳이 상용엔진을 사용해야할 이유가 없다. 로열티 지불 안해도 되니 돈 굳어서 … More 자체엔진 vs 상용엔진

복셀 베이스 맵에서의 비동기 SW Occlusion Culling.

복셀 베이스 맵에서의 비동기 SW Occlusion Culling. 삼각형 베이스 맵에 적용했던 비동기 S/W Occlusion Culling을 복셀 베이스 맵에도 적용했다. S/W Occlusion Culling은 대단히 부하가 많이 걸리는 작업이기 때문에, 이를 매 프레임마다 수행하면 GPU성능이 충분한 경우 오히려 전체적인 응답성을 떨어뜨릴 수 있다. 이번 구현의 목표는 ‘S/W Occlusion Culling으로 이득을 보되, 최악의 경우에도 S/W Occlusion Culling때문에 느려지는 … More 복셀 베이스 맵에서의 비동기 SW Occlusion Culling.

GPU를 이용한 PVS계산

[데모 설명] 카메라가 위치한 방에서 버튼을 눌러서 PvS를 계산한다. 이후 이 방으로부터 볼 수 있는 공간들은 노란색 와이어프레임으로 표시된다. 1. 월드 공간을 KD-Tree로 분할. 2. 삼각형과 교차하지 않는 공간이 leaf가 된다. 또는 특정 사이즈 이하로 공간이 작아지면 leaf가 된다. 3. leaf가 삼각형과 교차하는 경우 서브 트리로 분할. 서브트리에서 다시 삼각형과 교차하지 않는 leaf의 AABB만 수집 … More GPU를 이용한 PVS계산

Surface Pro X benchmark from the programmer’s point of view.

Windows on ARM I love Windows. Of course, I don’t have much attachment to Windows 3.1 and 95, but I really love Windows after the NT kernel. I also like Windows programming. Windows programming with Visual Studio is fun. So I was very excited when I heard about NT kernel-based Windows running on a CPU … More Surface Pro X benchmark from the programmer’s point of view.

x86/x64 데스크탑 어플리케이션 Windows on ARM으로 포팅하기 #1

이전에 Project D Online과 Voxel Horizon 모두 UWP앱으로도 유지보수를 하고 있었다. 당연히 ARM빌드도 같이 지원했고 Windows Phone에서 작동 가능했다. 몇년전부터 MS가 Windows Phone을 땅에다 파묻어버렸기 때문에 더 이상은 ARM빌드를 유지할 이유도 없었고 유지하고 싶어도 테스트할 수가 없었다. Windows API버전은 올라가는데 폰은 업데이트가 안되니까. 최근 Windows on ARM의 레퍼런스 디바이스 Surface Pro X가 출시됐다. 기계를 제어한다는 … More x86/x64 데스크탑 어플리케이션 Windows on ARM으로 포팅하기 #1

겪어보지 않으면 모른다.바닥부터 만들기.

내 항상 주장하지만 남이 만들어놓은 소스 기반 위에서 작업하는거랑 까만 화면에 main()부터 찍어서 작업하는건 지구와 안드로메다 성계까지의 거리만큼 큰 차이가 있다. 아무리 썩었어도 돌아가는 소스 위에서 뭘 할때는 가시적으로 결과가 나온다. 진행은 된다. 원래 작업하려던 부분만 집중하면 된다. 아무것도 없는 상태에서 시작하면 새로운 할 일이 끊임없이 늘어난다. 꽤 깊은 뎁스를 가지는 트리를 탐색하는것과 같다. 기능 … More 겪어보지 않으면 모른다.바닥부터 만들기.

Game Dev – Voxel Horizon – 개인맵 기능 개선. PVP맵 추가

당초 PvP맵을 구현계획을 세웠을땐 개인맵 기능과 분리할 생각이었다. 하지만 PvP맵이라고 해도 인스턴스 맵인데 현재 인스턴스맵 기능은 개인맵에서만 사용한다. 또한 개인맵에서 만든 복셀지형을 PvP맵의 지형으로 사용할 경우 비동기 로딩이 필요하다. 비동기 로드 기능은 개인맵에서 이미 구현되어있다. 겹치는 기능이 너무 많고 그 기능의 대부분은 개인맵에서 구현해놨으므로 결국 개인맵 기능의 일부로서 PvP맵을 구현했다. PvP맵에 입장할때도 권한을 체크하는게 필요한데 … More Game Dev – Voxel Horizon – 개인맵 기능 개선. PVP맵 추가

Game Dev – Voxel Horizon – 자동 최적화 기능 구현

메모리를 절약하고 처리 성능을 높이기 위한 자동 최적화 기능을 구현했다. 복셀 오브젝트는 8x8x8(최소 복셀 크기 50cm^3)에서 1x1x1(최소복셀 크기 1m^3)까지 가변적인 사이즈를 가진다. 복셀 오브젝트는 모양과 색칠된 상태를 유지한다는 전제하에 최적화 될 수 있다. 8x8x8 -> 4x4x4로 4x4x4 -> 2x2x2로 2x2x2 -> 1x1x1로 당연히 8x8x8오브젝트가 1x1x1짜리 오브젝트에보다 메모리를 더 먹는다. 복셀 데이터 스트리밍할때 패킷량도 더 크다. … More Game Dev – Voxel Horizon – 자동 최적화 기능 구현