목록전체 글 (608)
kyuseo의 게임 프로그래밍

개요.. 곧 티케이 게임에서 출시될 교육용 영어 워드 게임으로 개발한미니 영어 워드 단어 완성 게임( Mini English Word Game ) 초안 입니다. 현재 펀그랩에서 북웜(Book Worm), Word Whomp 과 유사한 장르의 게임으로 개발하고 있습니다. 참여 분야 - 4만 단어 이상의 대용량 사전을 읽어 영어 단어를 관리 - 영어 단어 사전 분석 - 영어 단어 게임 알고리즘 - 미니 사전 기능 - 핼프 기능 - 자동 완성 기능 스크린샷
개요.. 버전(Version)에 따른 게임 업데이트(Update), 패치(Patch)의 중요성에 대하여 설명해드립니다. 게임 및 프로그램을 업데이트할 경우 작은 단위 요소에 의하여 경우가 많습니다. 하지만 그 방식은 점진적으로 게임이 변화하기 때문에 수개월이 지나도 큰 변화를 느낄 수 없고 유저의 반응도 점진적으로 나타나고 회사는 언제 어떠한 사업, 마케팅을 할지 잘 알 수 없습니다. 그것에 대응하기 위해서 고안된 방법론이 "버전 별 업데이트"라는 방법입니다. 버전 별 업데이트는 청사진(트리구조)을 작성하여 특정 부분별로 묶음을 만들어 업데이트하는 방식입니다. 리니지2(크로니컬 업데이트)나 RF온라인(기가 업데이트)의 경우 '버전 업데이트'를 성공적으로 함으로써 사업, 마케팅이 용이하고 기획의 단계가 더..

개요.. 슈팅게임 솔닷(Soldat) vs 건스터(Gunster) vs 빅샷(BigShot)을 비교해보았습니다. 지렁이(?) 액션 게임 '니에로' 라는 게임을 온라인 게임으로 만들면 재미있겠다고 생각했었는데 유사한 형태의 게임이 넥슨은 빅샷이라는 이름으로 한게임에서 건스터 이름으로 나왔더군요. 그런데 나중에 보게된 솔닷(Soldat) 3가지 게임이 모두 무기 구성부터 조작법까지 거의 똑같아서 조금 씁쓸하더군요. 특히 좌측 하단의 십자가 표시가 같은 것이 인상적이고, 그래도 한국 게임이 디자인적으로는 예쁘긴 하네요. 스크린샷 솔닷 한게임 건스터 : 서비스 중단됨 넥슨 빅샷

개요.. CWinThread::PreTranslateMessage 함수는 윈도우(CWnd)의 자식을 비롯하여 다양한 윈도우 메시지를 가로채서 처리하는 역할을 합니다. PreTranslateMessage 함수를 재정의하여 메시지(Message, MSG) 를 처리한 이후에 리턴값을 어떻게 하는지 설명합니다. 설명 PreTranslateMessage함수를 재정의 하여, - 더 이상 메시지가 처리되지 않기를 바란다면 1(0이 아닌값)을 리턴 합니다. - 만일 메시지가 계속 처리하기를 원한다면 0을 리턴 합니다. 참고로 MFC CWnd 의 다음과 같은 코드를 보면 PreTranslateMessage 함수의 리턴값이 0 이 아니라면 더 이상 메시지를 Walk 하지 않습니다. BOOL PASCAL CWnd::Walk..

개요.. 네이버(Naver), 구글 지메일(Google GMail), 천리안 유료 메일은 POP가 지원되어 아웃룩에서도 이메일을 확인할 수 있습니다. 하지만 아웃룩의 기본옵션으로 설정하면 홈페이지에서 이메일이 삭제되는데, 아웃룩(Outlook)과 웹메일을 함께 확인하도록 설정하는 방법을 알려드립니다. 방법 1. 계정을 실행합니다. 2. 기본 이메일 설정완료하고 '기타 설정'을 클릭합니다. 3. 배달 -> 서버에 메시지 복사본 저장을 클릭합니다. 위와 같이 설정을 완료하면 홈페이지와 아웃룩에서 동시에 이메일이 확인됩니다.

개요.. 게임에서는 방 만들기 창, 개인 정보 창, 유저 정보 창, 오류 창 등 수많은 UI 및 창들이 존재합니다. 그러나 그 수많은 윈도우들을 프로그래머들이 직접 프로그래밍하여 만드는 것은 비효율적인 일 입니다. VC 에서는 리소스 에디터로 작업을 분할하기 쉽긴 하지만 게임의 UI 는 VC 의 UI 을 이용하지 않기 때문에 그것을 이용할 수 없습니다. 그래서 많은 게임들은 UI 를 스크립트를 이용한 작성을 하는데 별도의 스크립트 언어도 개발해야 하고 확장성에도 문제가 많아서 기능 추가도 쉬운 일이 아닙니다. 그것에 대한 좋은 해결책을 에버퀘스트(Everquest) 게임에서 제시하는데 XML 을 이용하여 UI 를 자동화하는 것입니다. 에버퀘스트에서는 각종 콘트롤의 배치, 속성, 윈도우의 크기 등 많은 정..
개요.. XML에서 한글을 사용한다면 인코딩(encoding)을 아래와 같이 "EUC-KR" 을 사용해야 프로그램에서 스트링을 읽을 때 편리합니다. UTF-8 과 같은 인코딩(encoding)을 사용한다면 해당 문자열을 Ansi 또는 Unicode로 분석하는 하는 코드를 추가로 작성해야합니다. 인코딩(encoding)에 따른 파일로드시 읽혀지는 스트링의 예 읽는 소스코드 : CFile File; .... File.Read( szXML, nSize ); .... EUC-KR 의 경우 올바르게 한글이 읽어집니다:

개요.. 기획팀, 프로그래밍 개발팀, 팀장, 팀원과의 연관성과 작업방법을 정리한 팀 프로젝트 진행방법에 대한 UML 액티비티 차트(Activity Chart) 입니다. UML 다이어그램

개요.. Kyuseo가 즐겨 사용하는 Visual Studio 6.0 과 유사하도록 설정한 Visual Studio 2005 단축키 및 옵션 설정(세팅) 입니다. 2005 는 6.0과 달리 복잡한 세부적인 설정까지 할 수 있어서 좋더군요. 2005에서 프로그래밍 하시는 분들은 참고하세요. Kyuseo's Visual Studio 2005 설정 - 옵션 설정 (세부설명 : F1 을 눌러서 msdn 도움말을 참고) - 단축키 설정 빌드.선택영역빌드 : F7 빌드.선택영역다시빌드 : Shift+F7 파일.모두저장 : Alt S 편집.클립보드링순환 : Ctrl+Shift +V 창.자동숨기기 : Ctrl+` 보기.솔루션탐색기 : Ctrl+1 보기.클래스뷰 : Ctrl+2 보기.리소스뷰 : Ctrl+3 Visual..

개요.. 게임 개발을 하면 다양한 해상도의 800x600, 1024x768등의 전체 화면 모드로 개발을 할 경우가 많습니다. 전체 화면 변경을 쉽게 하는 클래스와 프로젝트를 강의 합니다. 전체 소스 다운로드 스크린샷 강좌 1. MFC 로 Dialog 기반 프로젝트를 생성합니다. 2. 다음과 같은 윈도우 컨트롤을 배치합니다. 3. OnInitDialog() 함수에서 화면 모드를 가져와서 리스트에 추가하는 코드를 추가합니다. // 화면모드를모두가져오기 // 모드가얼마나존재하는지알아오기 DEVMODE temp_dev; for( int i=0; ; i++ ) { if( EnumDisplaySettings( NULL, i, &temp_dev ) == FALSE ) break; } CString str; m_aDe..