Baking Light-map. CUDA vs CPU

몇일전에 CUDA의 Unified Memory System에 문제가 있다고 포스팅했었다. CUDA Unified Memory 사용시 시스템이 멈춰버리는 현상. 아..아쉽다. 정말 멋진 기능이었는데. CUDA프로그래밍 해본 사람은 알텐데 cudaMalloc()으로 GPU메모리를, cudaMallocHost()로 CPU측 메모리를 할당하고 이 두가지 다른 메모리의 내용을 수동으로 동기화시키는 일은 상당히 번거롭다. 특히 Voxel Horizon프로젝트처럼 시스템 메모리에 구축한 KD-Tree를 GPU 메모리로 옮길땐 아주 짜증나는 작업을 해야한다. GPU측, CPU측 … More Baking Light-map. CUDA vs CPU

CUDA Unified Memory 사용시 시스템이 멈춰버리는 현상.

서피스북(1 과 2 모두 해당)에서 CUDA를 돌릴때 디바이스가 완전 정지하는 현상이 있다. Windows Vista이상이면 드라이버가 크래시하거나 hang되면 OS가 드라이버를 내렸다가 다시 올린다. 그래픽 드라이버라 해도 ring 1에서 돌아가므로 ring 0에서 돌아가는 커널까지는 손상시킬수 없다. 이론상으론 그렇다. 그런데 위 경우에는 그냥 커널까지 멈춰버린다. 이 상태에선 전원버튼을 10초이상 눌러서 완전히 껐다가 다시 켜는 수밖에 없다. 처음엔 서피스북에서만 … More CUDA Unified Memory 사용시 시스템이 멈춰버리는 현상.

Game Dev – 참조를 이용한 Voxel Object의 copy기능 구현

[인스턴스맵] 사용자가 임의로 편집이 가능하고 모두가 공유할 수 있는 맵에선 몬스터를 풀어둘수 없다. 수시로 변형되는 복셀 지형에 쉽게 끼일것이다. 이 상태론 원활한 전투도 수행하지 못한다. 따라서 전투전용의 인스턴스맵을 만든다. 이 타입의 맵은 복셀을 파괴할 순 있지만 복셀을 추가하지는 못한다. 또한 NPC의 이동과 밀접한 관계가 있는 바닥에 대해선 파괴도 허용하지 않는다. 여기서 말하는 인스턴스 맵은 원본이 … More Game Dev – 참조를 이용한 Voxel Object의 copy기능 구현

Game Dev – Voxel Horizon 개발 진척 상황

한동안 블로그 포스팅이 뜸했는데 그간 작업한 내용을 정리해서 올려본다. 1) 유도 미사일이 목표를 정확하게 추적할 수 있도록 코드를 수정했다. 생각보다 빡셨다. 2) 로켓탄 외에 머신건과 라이플로 복셀을 파괴할 수 있도록 했다. 3)복수의 NPC들 처리. 복수의 NPC들을 집어넣자 문제가 생겼다. 우선 접속후 절차를 살펴보면… 플레이어가 접속하면 서버로부터 플레이어 주변의 복셀 지형을 bit table로 전송받는다. 이 bit … More Game Dev – Voxel Horizon 개발 진척 상황

서버에서 클라이언트의 충돌처리와 타격 판정을 그대로 시뮬레이션 한다는 것의 의미

서버에서 클라이언트의 충돌처리와 타격 판정을 그대로 시뮬레이션 한다는 것은 단지 판정의 공정성을 높이기만 하는 것이 아니다. 클라이언트와 서버가 같은 코드를 공유하고 입력값만으로 같은 결과를 낸다는 의미이다. 즉 완전한 데드레커닝 기술을 구현했다는 뜻이다. 예를 들어 서로 다른 클라이언트 A와 B가 있을때 A가 컨트롤 하는 플레이어가 좌우로 마우스를 흔들면서 전진(sin곡선을 그리며)하는 경우, 완전한 데드레커닝 기술이 구현되지 않았을 … More 서버에서 클라이언트의 충돌처리와 타격 판정을 그대로 시뮬레이션 한다는 것의 의미

Destkop Bridge앱에서 AppData/Local 폴더 위치 얻기

게임을 실행하면 자동생성되는 부수적인 파일들이 있다. 게임의 옵션을 저장한 설정파일, shader 캐시 파일, 크래시 덤프 파일등… Windows 7시절 까지도 많은 게임들이 게임의 exe가 있는 폴더에 그대로 저장했다. 물론 이는 MS의 권고사항이 아니다. MS의 권고사항은 이렇게 폴더를 만들고 My Application폴더에 저장하는 것이다. C:\Users\{user id}\AppData\Local\{My Application} Windows 8부터는 이 권고사항이 사실상 강제되었다. 사용자가 Administrator 권한의 계정이라 해도(사실은 … More Destkop Bridge앱에서 AppData/Local 폴더 위치 얻기