Game Dev – Voxel Horizon 개발 진척 상황

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

명왕계획 제오라이마 히무로미쿠 1/6 (冥王計画 ゼオライマー 氷室美久) #2

2013년에 히무로미쿠를 하나 작업했었다. 아래 링크 참조 제오라이마(ゼオライマー) 히무로미쿠(氷室美久) 레진 캐스트 피규어 명왕계획 제오라이마 히무로미쿠 1/6 (冥王計画 ゼオライマー 氷室美久) 작업후기 그리고 5년만에 같은 킷을 하나 더 만들었다. 먼저번 작업할때는 원래 캐릭터 설정에 가깝게 작업하려고 노력했다. 이번에는 개인적인 취향을 반영해서 약간의 커스터마이즈를 했다. 하의가 쫄쫄이인데 이걸 피부로 바꿨다. 쫄쫄이의 재봉선 파인 곳과 접히는 부분도 퍼티+사포질로 매끈하게 다듬었다. … More 명왕계획 제오라이마 히무로미쿠 1/6 (冥王計画 ゼオライマー 氷室美久) #2

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

서버에서 클라이언트의 충돌처리와 타격 판정을 그대로 시뮬레이션 한다는 것은 단지 판정의 공정성을 높이기만 하는 것이 아니다. 클라이언트와 서버가 같은 코드를 공유하고 입력값만으로 같은 결과를 낸다는 의미이다. 즉 완전한 데드레커닝 기술을 구현했다는 뜻이다. 예를 들어 서로 다른 클라이언트 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 폴더 위치 얻기

CUDA사용시 MiniDumpWriteDump()실패

게임 클라이언트에서 크래시 발생시 덤프파일을 생성하도록 해놨다. 데스크탑버전은 적용이 되어있는데 UWP는 적용이 안되어있어서 UWP에도 적용하려고 데스크탑버전의 덤프생성 코드를 테스트했다. 그런데 문제 발생. 어라? 근데 덤프 생성에 문제가 있다. 덤프파일은 만들어졌지만 정상적으로 디버거에서 읽히지 않는다. MiniDumpWriteDump()함수가 실패하네? 해당 에러값으로 이틀동안 구글링을 해봐도 도움되는 답이 없다. 테스트를 하다보니 64비트에서만, MiniDumpWithFullMemory플래그를 줄 경우만 발생하는걸 알게 됐다. ’64비트는 뭐가 … More CUDA사용시 MiniDumpWriteDump()실패

Game Dev – Voxel Horizon에 CUDA적용 마무리.

오늘 메모리 사용량 최적화를 끝으로 CUDA적용은 마무리 지었다. 추가적으로 CUDA 사용이 필요할 경우 CUDA기능을 모아둔 dll라이브리에 기능을 추가하면 된다. Voxel Horizon은 라이트맵(Light map)을 사용한다. 지형지물간의 그림자도 라이트맵을 구울때 ray와 삼각형들간 교차테스트를 수행해서 계산한다. Voxel Horizon은 실시간으로 지형지물이 변화한다. 따라서 라이트맵을 다시 굽는 일이 수시로 발생한다. 네트워크로 복셀 오브젝트를 스트리밍했을때, 복셀들을 추가/삭제/편집 해서 복셀들간 지형지물이 변경될때 … More Game Dev – Voxel Horizon에 CUDA적용 마무리.