‘Bad apple!’ on VOXEL HORIZON

천재 박정환(devjeonghwan)님이 VOXEL HORIZON의 프로세스를 후킹해서 ‘Bad apple!’을 (voxel 데이터로서) 플레이하는데 성공.초당 30프레임으로 LoadVoxels함수(월드의 복셀 데이터를 다시 로드)를 호출한다는데 돌아가는게 신기하다.정환님의 리버싱 + 탁월한 플러그인 제작 능력에 감탄하고, 저렇게 해도 크래시 안하고 돌아가는 내 엔진도 조금 자랑스럽다. 기술적 설명은 다음 링크에서 https://cafe.naver.com/megayuchi/280

VOXEL HORIZON iPhone XBOX PC 네트워크 플레이 테스트

VOXEL HORIZON의 XBOX와 PC와 iPhone간의 네트워크 플레이 테스트. [지원 플랫폼]Windows Desktop(DX11/DX12/DXR)XBOX ONE(UWP on XBOX-DirectX11 feature level 11)XBOX Series S/X(UWP on XBOX-DirectX12 feature level 11)iPhone/iPad Devices(A12 Processor 이상 필요)mac(Apple Silicon) [사용된 기술]iOS/macOS – macOS API + metal API + BSD Socket + C++Windows Desktop – DirectX 11/12/DXR + winsock + IOCP + C++XBOX(UWP on XBOX) – … More VOXEL HORIZON iPhone XBOX PC 네트워크 플레이 테스트

apple silicon m1 8 Core GPU vs RTX3070

요새 VOXEL HORIZON의 DX11/12버전을 macOS/iOS로 포팅하고 있다.https://youtu.be/oYhuwkkuGzg 일체의 외부 라이브러리 없이 C++과 metal API를 사용해서 작업중이다. DXR버전은 아직은 한참 무리고 DX11/12렌더러 기준으로는 거의 비슷하게 포팅했다. 물/파티클 빼고는 다 구현했다.이제 nvidia GPU와의 성능비교를 할 수 있겠다 싶었다. 스샷의 씬에서 렌더링하는 오브젝트는 캐릭터 한마리에 복셀 오브젝트 5개, 그리고 하늘&구름이다. 구름처리(Volumetric Cloudscapes)가 대량의 픽셀에 대해 상당히 복잡한 쉐이더를 … More apple silicon m1 8 Core GPU vs RTX3070

D3D12의 Map()에 대한 고찰.

최근에 VOXEL HORIZON에서 와이어 프레임으로 렌더링되는 박스들이 상당히 성능을 잡아먹고있음을 알게됐다. 본래라면 이런건 디버깅용 매시로나 쓰는거다.VOXEL HORIZON에서는 다수의 오브젝트를 선택해서 회전/이동을 시킬때 다수의 박스를 그리게 되므로 문제가 됐다. 첨부한 이미지와 같이 커틀러옹의 이미지로부터 변환된 복셀 오브젝트는 250개 정도 되고 이 오브젝트들을 선택했을때, 250개 정도의 박스를 렌더링 한다. 또한 회전/이동 시킬때 프리뷰 화면으로 250개 정도의 블럭(geometry … More D3D12의 Map()에 대한 고찰.

VOXEL HORIZON – 복셀 편집을 위한 발판 구현.

높은 곳에서의 복셀편집을 위해 발판을 구현하는 중. 제트팩 아이템 같은걸 만들까 하다가 이동처리 잘못 건드리면 서버까지 엮어서 일이 엄청 커지기 때문에 기존 이동체계를 건드리지 않는 방향으로 가닥을 잡았다. 고민 끝에 ‘캐릭터 위치를 따라다니는 높이 조절 가능한 발판’을 만들면 기존 체계 안건드리고 복셀 편집을 위해 떠다닐 수 있겠다는 결론을 얻었다. 필요한 기능은 엔진쪽에 다 넣어놨고 일단 … More VOXEL HORIZON – 복셀 편집을 위한 발판 구현.

VOXEL HORIZON – 복셀 오브젝트 회전 기능 구현중

복셀 회전시키는게 뭔 대수인가..하겠지만.이게 생각보다 빡신 이유는 다음과 같다. 복셀 오브젝트는 변환매트릭스를 항시 들고 있어 손쉽게 변환되는 동적 오브젝트가 아니다. 완전히 정적이다. 따라서 변환이라고 하지만 구조물을 깨고 다시 만드는 작업이다. 부수고 다시 만드는 작업이기에 OK를 누르면 되돌리기 어렵다. 따라서 유저에게 반드시 프리뷰를 제공해야한다. 여기서 작업량이 대폭 증가한다. 서버 및 다른 클라이언트와 동기화 되어야 하므로 부수고 … More VOXEL HORIZON – 복셀 오브젝트 회전 기능 구현중

VOXEL HORIZON – 스레드 개수에 따른 충돌처리 성능 비교

어제 충돌처리 멀티 스레드 관련 버그 수정하면서 내가 그 동안 성능 테스트는 했었는가 하는 의문이 생김. 했겠지. 오래 되어서 기억이 안나는거지. 하여간 그래서 다시 테스트 해봄. 캐릭터 1000마리 돌아다닐때 (캐릭터vs삼각형, 캐릭터x캐릭터) 스레드 개수에 따른 충돌처리 소모시간 비교. 하이퍼스레딩이 아무짝에 쓸모가 없다고 느낄 때가 많지만 이 경우 큰 성능향상은 아니지만 쓸모가 있다.

VOXEL HORIZON테스트 방송 -2022년 2월 13일

[테스트 중 발생한 크래시의 분석/디버깅 후기] 테스트 방송중에 시청자 한 분의 클라이언트가 크래시했다. 일단 덤프 파일을 전달 받았다. 덤프를 분석하고 직접적인 원인은 금방 찾았다. 그런데 왜 이런 일이 일어나는지 처음엔 알 수가 없었다. 논리적으론 문제가 없어보이는데. 그때 상황을 설명해달라고 일단 메일은 보냈는데 언제까지 기다릴 수는 없다. 크래시한 플레이어의 화면은 아니지만 내 쪽에서도 어느 정도 관찰은 … More VOXEL HORIZON테스트 방송 -2022년 2월 13일