프로그래머 관점에서의 Surface Pro X 벤치마크

Windows on ARM 나는 Windows를 사랑한다. 정말로 사랑한다. 물론 Windows 3.1과 95에 대한 애착은 크지 않지만 NT커널 이후의 Windows는 정말 사랑한다. 또한 Windows 프로그래밍을 좋아한다. Visual Studio로 Windows프로그래밍을 하는 것은 즐겁다. 그래서 x86이외의 CPU에서 돌아가는 NT커널 기반의 Windows의 소식을 들었을때 무척 흥분했다. Visual Studio로 ARM디바이스에서 돌아가는 Windows 어플리케이션을 개발할 수 있다니! 물론 초기 Windows Phone … More 프로그래머 관점에서의 Surface Pro X 벤치마크

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

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

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

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()실패