Voxel Horizon – 개인맵 기능 개선 및 GUI추가.

개인맵 기능 자체는 몇개월 전에 구현했다. 완벽하다고 볼순 없지만 핵심적인 기능은 모두 구현했다. 또한 성능저하를 막기 위해 개인맵의 생성/삭제를 완전히 백그라운드에서 비동기적으로 처리하도록 했다. 이 부분이 꽤 힘들었다. 이때는 단순히 기능 구현이 목표였다. 이때만 해도 어지간한 UI는 콘솔로 다 처리할 생각이었으므로 UI부분은 전혀 신경 쓰지 않았다. 정말 다 콘솔로 구현했다. 11월에 출시한다고 마음을 굳힌 상황에서 … More Voxel Horizon – 개인맵 기능 개선 및 GUI추가.

Game Dev – Voxel Horizon 개발중 잡설

VOXEL HORIZON프로젝트를 시작하게 된 최초의 동기는 다음과 같다. – 배경 리소스 뽑아줄 디자이너가 없다. – 복셀렌더링을 해보고 싶었다. 그리고 개발을 진행해오면서 늘 유지하고 있는 프로젝트의 가장 큰 목적은 다음과 같다. – 자체엔진 개발이 옳다는걸 증명하고 싶다. 내 엔진만의 장점을 보이고 싶다. 상용 엔진의 기능 만으로 복셀월드를 렌더링할 수 없으니까. 복셀월드를 MMORPG베이스로 구현한다고 하는 것은 단순히 … More Game Dev – Voxel Horizon 개발중 잡설

Voxel Horizon – 복셀 월드에 몬스터 배치

이전에도 게임 서버에 몬스터를 올린적이 있었지만 그땐 기능 테스트를 위해서 하드코딩으로 올린거였다. 이번에는 절차대로 몬스터를 배치했다. 1. 맵툴에서 몬스터 배치 2. 맵툴 -> DB로 저장. 3. 게임서버가 DB의 몬스터 리스트를 읽어와서 로딩 및 배치. 몬스터에게 무기를 쥐어주지 않았으므로 공격은 못한다. 몬스터와 이벤트 NPC에는 당초 목표대로 실시간 복셀라이제이션을 적용했다. 과거에는 NPC서버와 Game서버를 따로 두고 통신하도록 했는데 … More Voxel Horizon – 복셀 월드에 몬스터 배치

nvapi에서 NvAPI_GetMemoryInfo()주소 얻어오기 – (어셈블리어 학습해야하나요?)

Voxel Horizon은 NVAPI를 사용한다. NVAPI는 GPU의 상태를 확인하거나 일부 기능을 제어할 수 있는 nvidia 그래픽 드라이버에서 제공하는 API이다. NVAPI SDK는 nvidia 개발자 홈페이지에서 다운로드할 수 있다. C스타일의 .h / .lib / .dll로 구성된 아주 간단한 SDK다. 이걸로 게임 플레이중 GPU점유율과 GPU온도, 남은 GPU메모리의 양을 확인한다. 물론 일반 유저들을 위한 기능은 아니고 개발할때 필요한 디버깅용 기능으로 … More nvapi에서 NvAPI_GetMemoryInfo()주소 얻어오기 – (어셈블리어 학습해야하나요?)

Direct X 프로그래밍 학습에 대한 조언

간만에 페이스북 DirectX 그룹에 질문이 올라와서 답변을 달았다. 답변 달다보니 몇 가지 강조할 내용은 정리해서 어디 남겨야겠단 생각이 들었다. DirectX 프로그래밍을 학습하려고 한다면… 1. 현대적인 C++과 달리 모든 DirectX, 그러니까 DirectX 2부터 12까지 모두 포인터를 죽도록 사용하며 아주 능숙하게 사용해야합니다. 포인터 사용에 능숙하지 못하다면 C/C++프로그래밍 기초부터 다시 학습하도록 합니다. 2. DirectX 프로그래밍을 학습하려면 COM에 대한 … More Direct X 프로그래밍 학습에 대한 조언

응답성(response time)과 처리량(throuthput)은 다르다.

시간당 처리량과 응답성은 분명히 다르다. 시간당 처리량이 떨어져서 응답성이 떨어지는 경우에는 처리량을 높여서 응답성을 개선할 수 있다. 하지만 일정 수준 이상 처리량이 개선되면 응답성을 향상시키지 못한다. 100ms정도가 빠른 응답성이라고 가정하는 세상에선 처리량을 높이는게 응답성 향상으로 연결되겠지만 1ms정도에도 민감하게 반응하는 세상에선 처리량과 응답성이 거의 관련이 없을 가능성이 높다. 프로그래머라 해도 이 차이를 이해하지 못하는 경우가 많다. … More 응답성(response time)과 처리량(throuthput)은 다르다.

Azure VM 및 개인 장비 벤치마크

Voxel Horizon의 서비스에 필요한 VM사양을 알아보다가 생각난 김에 개인장비들까지 벤치마크를 돌려서 정리했다. Geekbench 4.3.3을 사용했다. Azaure DS2 v3는 현재 테스트 서버로 사용하고 있는 인스턴스 타입이다. F4S와 F8S_v2는 Voxel Horizon서비스 할때 실제로 사용하려고 하는 인스턴스 타입이다. NV6는 GPU인스턴스로 CUDA와 DirectX테스트를 위해 가끔 사용하는 인스턴스 타입이다. 돈없는 개인이 노려볼만한 스펙의 인스턴스가 DS2 v3인데 성능이 GPDWIN2만도 못한게 함정. … More Azure VM 및 개인 장비 벤치마크