Win32API와 DirectX를 이용한 게임 프로그램 개발 서론 프로젝트 수행 목표 무엇을 개발할 것인가? 1부 게임 장르 소개 및 정의 2부 About Win32API & DirectX 3부 창작 게임 레전드 오브 엘프 소개
프로젝트 수행 목표 21C 최고의 부가 가치 산업으로 떠오른 게임 프로그램이 실제로 어떤 기법을 이용하여 구현되는지 알아보고, 이를 습득한 후 응용 단계를 거쳐 간단한 자작 게임을 개발해본다.
무엇을 개발할 것인가? 1. 게임 명세 2. 개발 정보 PC 게임 또는 비디오 게임 기반의 패키지(Package) 게임 게임 장르 : 롤플레잉(Role Playing) 약 15분 정도의 플레이 타임을 지닌 체험판 형식의 게임 2. 개발 정보 사용 기술 : Win32API, DirectX, 기타 C 계열 언어 제작 툴 : Visual Studio6.0, PhotoShop6.0 미디어 편집기
플랫폼에 따른 게임 장르의 분류 게임 내용에 따른 게임 장르의 분류 체험판 게임이란? 1부 게임 장르 소개 및 정의 플랫폼에 따른 게임 장르의 분류 게임 내용에 따른 게임 장르의 분류 체험판 게임이란?
1. 플랫폼에 따른 게임 장르의 분류 1. Arcade Games : 업소용 게임 (DDR) 2. PC Games : PC 기반 게임 (스타 크래프트) 3. Video Games : 가정용 게임기 전용 게임 (파이널 판타지)
2. 게임 내용에 따른 게임 장르의 분류 1. 롤플레잉 게임(Role Playing Game = RPG) (파이널 판타지, 드래곤 퀘스트) 2. 시뮬레이션 게임 (삼국지, 스타 크래프트, 파랜드 택틱스) 3. 액션 게임 (슈퍼 마리오) 4. 대전 격투 액션 게임 (스트리트 파이터, 철권) 5. 슈팅 게임 (1945 시리즈) 6. 스포츠 게임 (FIFA, 버추얼 테니스, 모두의 골프) 7. 온라인게임/머드 게임 (리니지) 8. 퍼즐 게임 (테트리스, 헥사, 퍼즐 버블버블) (기타) ARPG, SRPG 등의 혼합 장르 게임
3. 체험판 게임이란? 하나의 완성된 게임이 아닌, 홍보 또는 테스트등의 목적으로 게임 내용의 일부분만을 플레이 할 수 있거나 중요한 부분만을 발췌하여 플레이 할 수 있도록 제작한 게임을 말한다. 일반적으로 메뉴나 캐릭터, 시나리오 등의 일부분이 삭제되거나 편집된 경우가 많으며, 행동 범위 역시 제한이 붙게 된다. 또한 플레이 시간이 20분을 넘어가는 경우가 드물다.
2부 About Win32API & DirectX DirectX SDK 게임환경 설정 및 구동방법
1. Win32API란? Win32 Application Programming Interface 32비트 체계의 Windows 기반 응용 프로그램을 쉽게 개발할 수 있도록 OS(Operation System) 자체에서 지원하는 여러 가지 함수와 문법, 인터페이스 환경
2. DirectX란? DirectX 게임개발 프로그래머 1. DirectX란? Window에 설치된 각종 드라이버들 1) 전세계 모든 언어를 통역할 수 있는 통역사의 역할 2) Windows에 설치된 모든 드라이버의 제어 가능 (모든 드라이버를 관리해주는 또 다른 드라이버) 통역 Window에 설치된 각종 드라이버들 게임개발 프로그래머 DirectX 호환
3. DirectX SDK DirectX SDK(Software Development Kit)란? 2) 구성 - DDRAW.LIB - DSOUND.LIB - DPLAY.LIB - DINPUT.LIB - D3DRM.LIB - 그 외 : DirectMusic, DirectShow, Direct3D…
4. 게임환경 설정 및 구동방법 - (1) 1. 화면 관련 객체 생성 2. 게임 모드 설정 1) 윈도우 모드 DirectDraw (화면에 관계된 모든 기능을 지닌 라이브러리) 객체 생성 LPDIRECTDRAW DirectOBJ; DirectDrawCreate(DirectDraw 장치의 고유 식별자 주소, 클래스 변수, 다음 버전과의 호환); 2. 게임 모드 설정 1) 윈도우 모드 DirectOBJ->SetCooperativeLevel(MainHwnd, DDSCL_NORMAL); 2) 풀 스크린 모드 DirectOBJ->SetCooperativeLevel(MainHwnd, DDSCL_EXCLUSIVE || DDSCL_FULLSCREEN); DirectOBJ->SetDisplayMode( 가로픽셀, 세로픽셀, 색상 비트수, 화면갱신 속도, 저해상도 모드 설정);
4. 게임환경 설정 및 구동방법 - (2) 3. 서페이스(Surface) 설정 1) 서페이스란? 이미지 정보를 읽고 쓰는 일종의 저장 공간, API함수를 사용하지 않고도 DirectX를 통해 화면으로 직접적인 접근이 가능 - 화면에 보이는 서페이스 (Surface) : Primary - Primary에 연결되어 있으면서 화면에 보이지 않는 서페이스 (Surface) : Back - Primary에 연결되어 있지 않으면서 화면에 보이지 않는 서페이스 (Surface) : OffScreen
4. 게임환경 설정 및 구동방법 - (3) 2) 서페이스 객체 생성 및 연결 CreateSurface( 만들어질 서페이스의 정보를 담고 있는 구조체LPDDSURFACEDESC2의 포인터, 서페이스 객체의 포인터, 다음 버전과의 호환); DirectOBJ->CreateSurface(&ddsd, &RealScreen, NULL); ddscaps.dwCaps = DDSCAPS_BACKBUFFER; RealScreen->GetAttachedSurface(&ddscaps, &BackScreen);
4. 게임환경 설정 및 구동방법 - (4) 3) 서페이스 객체의 소멸 4) 서페이스를 이용한 페이지 플리핑 Surface 객체를 다 사용하고 응용 프로그램을 종료할 때는 생성한 서페이스를 소멸시켜주어야 하며, 서페이스 객체의 멤버 함수인 Realease() 함수를 사용하면 된다. 4) 서페이스를 이용한 페이지 플리핑 RealScreen->Flip(NULL, DDFLIP_WAIT);
4. 게임환경 설정 및 구동방법 - (5) 4. 이미지 출력 DirectDraw에 내장된 이미지 출력 함수 1. Blt(이미지가 그려질 영역의 구조체, 이미지가 그려질 서페이스 변수명, 이미지를 복사할 영역의 구조체, 복사하는 방법, 여러 가지 효과를 주기 위한 구조체); 2. BltFast(이미지를 출력할 가로 좌표, 이미지를 출력할 세로 좌표, 복사할 이미지를 읽어낼 서페이스 객체, 복사할 영역을 나타내는 구조체, 복사할 방법을 나타내는 플래그);
3부 창작 게임 레전드 오브 엘프 소개 세계관 기본 시나리오 전체적인 게임구성
1. 세계관 루미너스 월드(Luminous World) 게임의 주무대가 되는 물질계(物質界) 검과 마법, 인간과 이(異)종족이 공존하는 세계 중세 시대를 기반으로 하는 판타지 세계 4개의 독립된 영역 (천상계, 물질계, 정령계, 마계)로 구분되는 세계 게임의 주무대가 되는 물질계(物質界) 인간, 엘프(Elf), 다크 엘프(Dark Elf), 드워프(Dwarf) 호비트(Hobbit), 비스트(Beast)의 6개의 종족이 공존하는 영역
2. 기본 시나리오 엘프와 인간이 공존하여 살아가는 이색적인 마을 메이헬. 평화롭기만 하던 마을은 어는 날 몬스터 군단의 습격을 받게 되며 이에 위기를 느낀 촌장은 마을의 유일한 정령 전사 소녀 아이리스에게 이웃 마을 ‘카르포’의 촌장에게 한 장의 편지를 전해주라는 임무를 맡기게 된다. 엘프 족 소녀 아이리스는 그 길로 곧장 물의 마을 카르포로 향하지만, 마을로 가던 도중 주변의 숲에서 몬스터들이 출몰하는 사실에 다시 한번 놀라게 된다. 그리고 숲에서 만난 의문의 여자는 묘한 말 만을 남긴 채 사라지는데…갖은 고생을 하며 겨우 카르포에 도착하지만 그 곳에는 단 한명의 주민도 찾아볼 수 없는데…
3. 전체적인 게임 구성 - (1) 1. 오프닝 2. 메이헬 마을 이벤트
3. 전체적인 게임 구성 - (2) 3. 필드 화면 4. 마의 숲 이벤트
3. 전체적인 게임 구성 - (3) 5. 필드 화면 6. 물의 마을 카르포 이벤트 7. 엔딩