GetTickCount() -> GetTickCount64()로 변경하기.

1. Redstone에선 UWP에서 IOCP를 쓸 수 있다. 그래서 개발중인 프로젝트의 UWP버전에서 StreamSocket을 사용한 네트워크코드를 걷어내고 IOCP기반의 win32코드로 교체하기로 결정. 2. 코드 고치다보니 GetTickCount()가 거슬림. PC가 부팅되고 최대 47일밖에 보장이 안되는 카운터라 안그래도 계속 바꾸려고 생각하고 있었음. 좋다. GetTickCount64()로 바꾸자. 3. 이게 조심해서 고쳐야 하는게  4바이트에서 8바이트로 사이즈가 증가하는거라 메모리 옵셋으로 다루는 부분이 있는지 확인하고 언더플로우나 … More GetTickCount() -> GetTickCount64()로 변경하기.

Game Dev – XBOX ONE(UWP버전)과 PC의 네트워크 플레이

이전에도 계속 포스팅했다시피 난 이 게임(데모)를 Windows Store를 통해 공개할 생각이다. 따라서 엔진을 개발할때부터 UWP버전을 같이 작업해왔다. 그리고 가능하면 XBOX ONE과 Windows 10 Phone에서도 동일한 게임을 플레이하게 하려고 나름 노력하고 있다. 몇 개월전 MS는 하나의 Store를 강조하며 XBOX ONE에서 UWP App을 돌릴 수 있게 하겠다고 발표했다. 얼마 지나지 않아서 프리뷰지만 XBOX ONE에서 UWP App을 돌릴 … More Game Dev – XBOX ONE(UWP버전)과 PC의 네트워크 플레이

GameDev-UWP와 Desktop버전 동시 지원

예전에도 포스팅한적이 있는데 나는 지금껏 작업해온 엔진을 UWP용으로도 유지하고 있었다. 아니 정확히는 유지는 잘 못했다. 작년 12월 이후로는 유지보수를 못하고 있었다. 데스크탑 버전의 경우 12월부터 지금까지 DX12를 지원하는데 대부분의 시간을 보냈다. 그런데 DX12를 지원하면서 DX11버전도 사실 많이 바뀌었다. DX12와 인터페이스를 맞춰야하다보니 그리 된것도 있고 이번 게임데모 프로젝트를 위해서 렌더러 외의 모듈에도 기능추가가 있었기 때문에 많은 … More GameDev-UWP와 Desktop버전 동시 지원

win32 or UWP에서 인터넷에 연결된 적절한 IP가져오기

요새는 머신에 여러개의 네트워크 장치가 붙어있다. 랜카드가 여러개인 경우도 있고, 그렇지 않더라도 VM등 가상 네트워크 디바이스가 여러개 존재하는 경우가 대부분이다. 따라서 어플리케이션이 접속을 받아야하는 경우에 어느 네트워크 장치의 IP에 bind해야할지 난감할때가 많다. 그래서 이럴때 사용할 코드를 작성했다. win32의 경우는 dns주소와 gateway가 설정된 경우를 찾아서 인터넷에 접속한걸로 간주한다. UWP의 경우 NetworkInformation::GetInternetConnectionProfile()로 인터넷에 연결된 네트워크 장치를 찾는다. … More win32 or UWP에서 인터넷에 연결된 적절한 IP가져오기

가변인자 함수 진짜 가변적으로 호출하기.

나는 엔진 코드에서 가변함수 scanf,fscanf등의 함수를 진짜로 가변적으로 호출하곤 했다. 예를 들면 스크립트를 파싱해서 2개의 문자열을 읽을지, 3개의 문자열을 읽을지를 결정해야한고 치자. 코드는 이런식이다. fscanf(fp,”%s %s”,buf0,buf1); // 2개를 읽을 경우 fscanf(fp,”%s %s %s”,buf0,buf1,buf2); // 3개를 읽을 경우   이걸 n개의 문자열을 읽는다고 치면? 모든 n개의 케이스에 대해서 fscanf(문을 일일히 다 만들어놓을순 없지 않은가? “%s “부분은 … More 가변인자 함수 진짜 가변적으로 호출하기.