본문 바로가기

Game Programming

이번에 산 책들... Refactoring 리팩토링 : 나쁜 디자인의 코드를 좋은 디자인으로 바꾸는 방법 똑똑한 프로그래밍을 위한 C++ 템플릿 가이드 올해의 프로그래머로써의 목표는!! 습관! 그리고 성장! 새로운 프로젝트를 만든다! 그리고 일단 내맘대로 짠다! 어느정도 완성했을때 패턴을 사용한다! 리팩토링과 같이... (그럼 일단 사전에 책을 다 읽어야 겠지.. ) 그리고.. 템플릿... 일단 좋던 안좋던... 사용해본다. 사용을 해 보지 않았기 때문에... (복사해서 쓴 기억만...) 올해는 3D보다는 C++에 치중해서 내가 추구하는 더욱 더 간결하고 보기 좋은... 아주 쉬운 코드를 만들어 보자! 더보기
참... 어렵습니다. 게임을 만드는 것은 참... 어렵습니다. 아직 시작입니다. 이제 기획서도 나오고.. 게임에 대해서는 비밀 ㅎㅎㅎ 만들기만 하면 됩니다!! 게임이 재미있을지 없을지 모르지만!!! 정말 내가 생각했던 구조와 패턴을 이용해서 완성하고 싶습니다!!! 그리고 출시하고 싶습니다!!! 내 열정을 다 바쳐서... 꼭!!! 그날이 오기를... 더보기
아... C라.. 파일 입출력이라.. 아.. C,C++ 파일입출력... 어렵다 어려워... 이런것도 모르고 있었다니... 언제 한번 재대루 파일입출력이니 저수준의 컨트롤 방법들을 익혀야 겠다!!!! 아직 갈길이 멀구나~ 더보기
다익스트라(Dijkstra) 알고리즘 다익스트라(Dijkstra) 알고리즘 다익스트라(Dijkstra) 알고리즘은 최단거리를 구하는 방법으로 유명한 알고리즘입니다. 이 방법은 그리디하면서 다이나믹한 방법입니다.(뭔말이지? --;) 먼저 그리디적이라는 말은 현시점에서 볼 때 자신과 연결된 곳 중 가장 짧은 곳을 찾는다는 것이고, 다이나믹하다는 말은 시발점에서 어떤 점까지의 거리를 저장해 둬서 그 저장해 둔 거리를 이용해서 더 먼 곳까지의 최단거리를 구하기 때문입니다.(결국엔 다이나믹이군..) 사실 이렇게 말로만 들어서는 뭘 어떻게 해야할지 감이 잘 안 오실겁니다. 이제 다익스트라 알고리즘에 대해서 자세히 알아보죠. 위와 같은 그래프가 있다고 합시다. 그럼 이 그래프를 가지고 1에서 8로 가는 최단거리를 다익스트라를 이용해서 구해 보겠습니다. .. 더보기
// definition of guard and unguard // definition of guard and unguard // // guard/unguardf/unguard macros. // For showing calling stack when errors occur in major functions. // Meant to be enabled in release builds. // #if defined(_DEBUG) || !DO_GUARD #define guard(func){static const TCHAR __FUNC_NAME__[]=TEXT(#func); #define unguard} #define unguardf(msg)} #else #if _MSC_VER #define guard(func){static const TCHAR __FUNC_NAME__[].. 더보기
이제부터 맵툴 개발일지를 쓰다!! 오늘의 문제점... 젠장... 왜!!!!!!!!!!!!!!! 버택스 쉐이더가 안불러와지냐의 문제점.... 찾았다.. 니미... 버택스 쉐이더 초기화를 안했다.. 정말이지... unsigned intl_Processing = D3DCREATE_HARDWARE_VERTEXPROCESSING; if(m_d3dCaps.MaxSimultaneousTextures < 8) { l_Processing = D3DCREATE_SOFTWARE_VERTEXPROCESSING; } else { m_PixelShaderSupport = TRUE; } m_PixelShaderSupport = TRUE; 더보기
Mersenne-Twister 난수 발생기 게임 코딩 컴플릿책에서 보고 좋은 랜덤함수 추출기란다. rand보다 좋은거 ㅋㅋ 잘 써먹자 ㅋㅋ //Mersenne-Twister 난수 발생기 //주기 매개변수들 #define CMATH_N 624 #define CMATH_M 397 #define CMATH_MATRIX_A 0x9908b0df //상수 벡터 a #define CMATH_UPPER_MASK 0x80000000 //최상위 w-r비트들 #define CMATH_LOWER_MASK 0x7fffffff //최하위 r 비트들 //조절용 매개변수들 #define CMATH_TEMPERING_MASK_B 0x9d2c5680 #define CMATH_TEMPERING_MASK_C 0xefc60000 #define CMATH_TEMPERING_SHIFT_.. 더보기
조삼모사 모든지 현실은 그렇다. ㅋ 더보기