본문 바로가기
반응형

분류 전체보기575

게임브리오 시작하기 게임브리오는 멀티 플랫폼 개발이 가능하도록 구성되어 있다. 실제 PS2, DirectX9, DirectX8, OpenGL 등의 플랫폼에서 소스를 크게 수정하지 않고 동작시킬 수 있다. 마크로만 잘 정의했다면, 소스 수정 없이 동작이 가능하다. 사실 멀티플랫폼 개발이라는 것이 꽤 곤혹스럽다. 한 때, Windows Mobile과 Win32 멀티플랫폼 개발을 해보았는데, 신경써주어야하는 것이 한두가지가 아니었다. 비슷한 플랫폼인데도 상당히 작업이 귀찮고 껄끄러운데, 이종간에는 어떨지 대충은 알 것으로 생각한다. 여하튼 각설하고.. 게임브리오를 시작하기 위해서는.. 1) 윈도우 생성 로직은 직접 작성해야 한다. NiApplication을 사용하는 방법도 있지만, 그리 권하지는 않는다. 2) 윈도우가 생성되었으.. 2011. 9. 17.
Gamebryo 엔진 제가 MMORPG를 두번 개발했는데, 첫번째 게임은 고누소프트의 가약스 게임입니다. 이 게임은 당시 MMORPG가 그다지 많지 않을 때 만들었죠. 그래도 꽤 인기가 있었고, 아직까지도 잊지 않고 기억해주는 게임입니다. 이 게임을 개발하기 위해서 다양한 엔진을 검토했는데, 가격대 성능비로 가장 높은 점수를 줬던 것이 게임브리오 엔진의 전신인 넷이머스(NetImmerse) 엔진입니다. 가약스 게임은 모두 MMORPG 게임 제작에 경험이 없었던 탓에 상당히 많은 시행착오를 했었지만, 개발진들이 모두 열심히 해주어서 그래도 꽤 만족한 게임이 되었습니다. 개인적으로 그래픽은 별로였지만요. 저는 클라이언트 쪽 프로그램 총괄을 맡았었습니다. 두번째 게임은 스피노소프트의 나비스 온라인 게임입니다. 해양온라인 게임의 기.. 2011. 9. 16.
1000! 가지고 장난치기 [문1]은 제가 만든 문제이고요. [문2]는 옛날 교사임용고사에 나왔던 문제입니다. [문1] 1000! 을 계산하면 일련의 숫자들이 죽 나열되겠죠. 이 결과값의 모든 자릿수의 합을 계산합니다. 그러면 또 일련의 숫자들이 나옵니다. 또 모든 자릿수의 합을 계산하고요. 이것을 무한 반복하면, 결국 한자리 숫자가 나오게 됩니다. 이 한자리 숫자가 얼마일까요? [문2] 1000! 을 계산하면 일련의 숫자들이 나옵니다. 그런데 1의 자릿수부터 연속된 0들이 쭉 나오겠죠? 과연 이 연속된 0의 겻수는 얼마일까요? [답]----------------------------------------- [문1]은 다음과 같은 수학적 기반으로 풀면 쉽게 풀립니다. 1) 어떤 수 a가 9의 배수이면, a의 모든 자릿수를 더한 것.. 2011. 9. 16.
이벤트 핸들링에서의 case 문장 이벤트 핸들링 방식으로 프로그램을 짠다면, 유용하게 사용할만한 방법입니다. Visual C/C++ 기준입니다. #if defined(_DEBUG) #define CASE(X) case X: OutputDebugString("[" #X "]\n") #else #define CASE(X) case X: #endif void proc(int event, unsigned short wParam, unsigned long lParam) { switch(event) { CASE(EVENT_START); { ... break; } .... } } 이런 식으로 프로그램을 짜면, 디버그 모드일때는 이벤트 값을 디버그 창에 계속 뿌려주게 됩니다. 릴리즈 모드일때에는 불필요한 코드를 없애줄 수 있습니다. 프로그램을 짤 때 .. 2011. 9. 16.
조건문의 최적화 방법 if 문장 안에 쓴 조건문의 표현 방식에 따라서 속도차이가 발생한다는 것입니다. 요즘 진보된 프로세서에서는 이것마저도.. 아주 훌륭하게 잘 처리되고 있지만.. (실제.. 조건문을 두세단계정도는 미리 계산하는 것이 요즘프로세서던가?? 테스트해보질 않아서.. 하하.. 나중에 기회가 되면 한번 속도 테스트해보아야지.. :) 예를 들어서 조건문 A의 확률이 80%, 조건문 B의 확률이 20%였다면, 다음의 두 조건문은 같은 기능을 하지만 속도에서는 약간 차이가 발생합니다. if(A || B) return; if(B || A) return; 이경우.. 첫번째 조건문은 80%확률로 A 조건을 검사하고, 20% 확률로 A 조건과 B 조건을 검사합니다. 두번째 조건문은 20% 확률로 B 조건을 검사하고 80% 확률로 .. 2011. 9. 16.
11개의 정수 중 6개의 수를 선택하여 6의 배수 만들기 (출처 : KMO) [질문] KMO 17회 2차 (2003년) 중등부 4번 문제입니다. http://www.kms.or.kr/home/kmo/ 4. 임의의 정수 11개가 주어지면, 그 중 6개를 뽑아 그 합이 6의 배수가 되게 할 수 있음을 보여라. 단, 주어진 11 개의 정수가 모두 서로 다를 필요는 없다. [답] 임의의 정수 11개를 홀수는 홀수끼리 짝수는 짝수끼리 짝을 맺는다. 이렇게 하면 합이 짝수인 쌍이 5개가 생긴다. 5개 미만으로는 생길 수 없다. 짝수인 쌍은 2n+0, 2n+2, 2n+4 로 표시할 수 있다. 가장 많은 종류의 쌍이 3개 이상이 있다면, 그 종류의 쌍 3개를 선택해서 더하면 6의 배수가 된다. 가장 많은 종류의 쌍이 3개 미만이 있다면, 모든 종류의 쌍이 존재한다. 그러므로 각각의 종류의 쌍을.. 2011. 9. 16.
728x90