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 프로그래밍 학습에 대한 조언

기술? 숙련도?

뭐든 깊게 들어가면 잘하는게 어렵다고 한다. 그러니까 기술의 장르에 따라 쉽고 어려운게 없다고 한다. 어느 정도 맞는 말이지만 난 완전히 동의하진 않는다. 1부터 100까지 합을 매일 연습해보면 값을 외우지 않더라도 굉장히 빠른 속도로 계산해낼 수 있을 것이다. 그러나 느리든 빠르든 누구든 할 수 있다. 숙련도의 차이일 뿐. 시간을 들이면 누구든 빨라진다. 하지만 가우스처럼 신박한 방법을 … More 기술? 숙련도?

MSX판 프린세스 메이커1을 플레이하기까지 구구절절한 사연

MSX판 프린세스 메이커1을 플레이하기까지 구구절절한 사연. 1992년즈음일텐데. 당시 나는 HDD가 없이 360KB FDD 2대만 장착된 당연히 허큘리스 그래픽 카드가 달린 XT를 사용하고 있었다. 아 MNP기능 없는 2400BPS모뎀은 달려있었음. 그리고 나의 멀티미디어 머신 MSX2+가 있었다. 어느날 파라동 자료실(하이텔도 아니고 KETEL에서 KORTEL로 이름 바뀌었을때)에 MSX용 프린세스메이커가 올라왔다. 프.린.세.스.메.이.커! PC9801에나 있는 그 게임이! MSX판을 마이크로 캐빈에서 포팅했는데 과연 … More MSX판 프린세스 메이커1을 플레이하기까지 구구절절한 사연

응답성(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 및 개인 장비 벤치마크

Game Dev – Voxel Horizon – 가변 월드 사이즈 적용을 위한 사전작업

먼저번에 node사이즈를 꽤 줄여서 KD-Tree메모리로 56MB 사용하던것을 18M로 줄였다. 그 다음으로 맵 유형에 따라 Tree의 사이즈를 가변적으로 선택할 수 있도록 작업하고 있다. 지금까지는 월드 사이즈를 1km x 1km x 0.32km 고정으로 설정했었다. 이것은 kd-tree가 커버하는 사이즈이기도 하며 복셀월드에서 복셀들이 차지하는 실제 사이즈와는 관계가 없다. 퍼블릭맵에서는 1km x 1km를 기본으로 하고 있으므로 문제가 될것이 없다. 하지만 … More Game Dev – Voxel Horizon – 가변 월드 사이즈 적용을 위한 사전작업