Game Dev/Work Log 22

VS TeamService로 작업 공간 이동

원래는 개인 작업 저장소를 http://dev.naver.com/ 에서 관리하고 있었다. 용량 제한이 있지만 일단 무료이고, Git이 지원 가능하며 (예전에는 SVN만 가능했음) 가장 마음에 드는 것은 Private로 프로젝트를 만들 수 있어서이다. 물론 내 코드나 작업물을 누가 퍼가겠느냐만은... 사실 국내 최고의 IT 기업 중 하나인데 이런 결정을 내렸다는건 너무 아쉽다. 그런데 네이버 오픈 프로젝트를 접는다는 소식을 듣게 되었고 때마침 동료 프로그래머가 Visual Studio Team Service를 추천해 주었다. 승리의 MS! https://www.visualstudio.com/team-services/위 링크로 접속이 가능하며 Microsoft 계정만 있으면 무료로 사용이 가능하다. (단 5..

Game Dev/Work Log 2016.10.13

This project is out of date

VisualStudio에서 작업을 하다보면 "This project is out of date"라는 메세지가 뜨면서 프로젝트가 계속 빌드되는 경우가 있다. 경험상 이런 경우의 원인은 크게 2가지인데, 첫번째는 특정 소스파일의 시간이 잘못된 경우이고, 두번째는 VisualStudio의 솔루션에는 파일이 등록되어 있는데 실제로는 파일이 없는 경우이다.후자의 경우는 빌드 로그를 아주 자세하고 빡세게 돌리면 검출할 수 있으나 수백~수천줄의 빌드로그를 일일히 확인하기는 쉽지 않다. 그래서 검색해보니 "Show Missing Files"라는 좋은 플러그인이 있다.링크https://visualstudiogallery.msdn.microsoft.com/900b48cc-52b5-4afa-b4db-f1c3655c32aa사..

Game Dev/Work Log 2016.04.27

VisualAssist의 대안?

개인적으로 VisualAssist에서 가장 많이 사용하는 기능은 "Open files in solution"과 "Switch header and source" 2가지이다. 하지만 집에서는 VisualAssist를 구매하지 않았으니 과자를 찾기보다는 무료로 이용할 수 있는 대안을 찾아보았다. 링크 : https://visualstudiogallery.msdn.microsoft.com/cfdf85c2-aaa4-4bdd-b8ea-e22bcc9860af기능 : 솔루션에 있는 파일을 찾을 수 있는 다이얼로그를 제공함사용법위 링크에서 플러그인 다운로드 및 설치VisualStudio를 켠 후 메뉴의 Edit > Find and Replace > Quick Find File 선택VisualAssist처럼 "Alt + ..

Game Dev/Work Log 2016.04.26

UTF-8 파일 만들기

rapidjson으로 File Serializing을 하다가 일부 경우에 파일이 깨지는 문제가 있었다. 원인은 Ascii 파일에 대해 여러 Encoding으로 내용을 쓰다보니 생긴 문제였다. "A.txt" 파일에 Ascii 문자로만 내용을 씀 (BOM 없음)다시 "A.txt" 파일에 WideChar 내용을 씀 2에서 쓴 글자가 깨짐 rapidjson에서는 파일을 저장할 때 FileStream을 쓰는데 FileStream의 생성인자로 FILE*를 넘겨줘야 한다. 이 FILE*를 강제로 UTF-8 BOM을 추가해서 열어주면 될 것 같아서 검색을 해보니, fopen에 "css" 인자를 넣어줄 수 있다고 하더라... fopen(&fp, "newfile.txt", "w, ccs= encoding "); // 단 ..

Game Dev/Work Log 2014.11.05

VS2013에서 .props 파일을 이용해서 프로젝트 관리하기

진행 중인 개인 프로젝트에서 Multi-thread Rendering을 해보기로 결정했다. 그런데 DX9 기반이라서 그런지 MT Rendering을 위해서는 많은 많은... 암초들이 있었다. (Buffer lock 등) 그래서 지금은 Engine DLL 프로젝트만 있던 것을 "RendererDx9 + Others"로 분리하기로 했다. (Device도 Render Thread에서만 생성하는 등 완전히 분리하기 위해)막상 새 프로젝트를 만들자니 속성 세팅하는 것이 귀찮아졌다..props를 적용하기로 했는데 방법을 잘 몰라서 검색하였다. 짜잔!http://www.dorodnic.com/blog/2014/03/20/visual-studio-macros/그림도 자세하고, 이보다 더 자세히 설명하기는 힘들듯...

Game Dev/Work Log 2014.08.22

Gwen Library 설치

개인 프로젝트에 사용할 GUI 라이브러리를 찾고 있었다. http://gamedev.stackexchange.com/questions/3617/good-gui-for-openglhttp://gamedev.stackexchange.com/questions/8749/gui-for-directx 위의 링크들을 보고 우선 아래의 4개 라이브러리들을 다운 받았다. - CEGUI : http://www.cegui.org.uk/wiki/index.php/Main_Page- GWEN : http://code.google.com/p/gwen/- AntTweakBar : http://www.antisphere.com/Wiki/tools:anttweakbar- MyGUI : http://mygui.info/ 이 중 MyGU..

Game Dev/Work Log 2012.12.08

OpenProcess using Native API

빌어먹을 VC6은 OpenProcess API를 지원하지 않는다. 따라서 Thread ID를 HANDLE로 변환시킬 방법이 없는데 검색 결과 Native API(=공개되지 않은 Kernel API)를 사용하여 HANDLE을 얻어와야 한다. 원문 : http://www.codeguru.com/forum/showthread.php?t=329867 typedef DWORD (WINAPI*OTFUNC)(HANDLE*,DWORD,void*,void*); HANDLE OpenThread_VC6(DWORD dwThreadID, BOOL bInherit) { HANDLE hThread = NULL; DWORD struct1[] = {0x18, 0, 0, 0, 0, 0}; DWORD struct2[] = {0,dwThr..

Game Dev/Work Log 2011.07.06