2D 그래픽 슈팅 게임

(Space War)

이범희

지도교수 : 정진영

요    약

현재의 게임산업은 많은 발전을 이루어 왔고 그 속도는 가히 측정 할 수 없을 정도로 빠르다. DOS상에서 구동되는

게임부터 2D, 3D에 이르기까지 단연 많은 공을 세운 것은 DirectX와 Open GL이다. 이번 프로젝트를 통해 그중의

하나인 DirectX를 이용한 2D 슈팅게임을 만들어 보고자 한다. DirectX는 Microsoft사에서 제공하는 그래픽라이브

러리이지만 그래픽에 한정되어 있지 않고 Sound, 입출력제어(마우스, 키보드, 조이스틱), SetUp, 동영상에 이르기

까지 많은 기능을 지원하며 또한 그래픽카드를 직접적으로 제어함으로써 보다 정교하고 탄탄한 소프트웨어를 만들

어 낼 수 있는 장점이 있다. 이번 졸업작품 프로젝트를 통해서 컴퓨터그래픽 시스템의 구조와 구동방식, 구동원리

를 알아가고 우리가 즐겨하는 게임이 어떻게 만들어지는지 많은것을 배우고 익혀나가고자 한다.

1. 개  요

1.1 연구배경

현대에는 인터넷의 발달로 개인PC나 비디오

게임기로 즐기던 게임들을 인터넷을 이용

하여 온라인으로 언제, 어디서나 즐길 수

있게 되었다. 반면에 PC게임이나 비디오게임

(오락실게임)들은 점점 힘을잃고 온라인게임

에게 자리를 내주고 있는 실정이다.

그래서 인지 인터넷이 되지 않는 곳에서는

게임이나 다른 어떤것이라도 하기가 쉽지

않게되었고 하더라도 CD를 이용해 혼자서

싱글플레이를 할 수 밖에 없다. 이번 연구의

배경은 인터넷이 되지 않아도 그리고 CD가

없어도 PC상에서 다운로드만 해서 게임을

플레이할 수 있는 프로그램을 만들고자

해서이다.

2. 시스템 설계

2.1 게임메뉴

그림 1) 시스템 설계도

조직도를 보면 new game, help, load game

, option, high scores, credits, quit이렇게 7개의 메뉴가 있다 new game은 게임시작 help는 도움말, load game은 전에 했던 게임

을 저장했다가 다시 플레이하는것 option은

그래픽옵션, 사운드옵션, 플레이어셋팅 부분

으로 나뉘어지는데 그래픽옵션은 해상도와

밝기조정, 사운드옵션은 배경음악 볼륨조절과

효과음 볼륨조절 플레이어셋팅은 게임난이도

와 플레이어 이름 설정 high scores는 가장

높은 점수를 얻은 플레이어와 점수를 보여

준다. credits는 게임제작자와 게임에 대한

대략적인 설명을 보여주며 quit는 게임 종료

이다.

3. 시스템 구현

3.1 구현환경

WINDOWS 운영체제의 PC에서 구동되어

지며 프로그램을 만드는데 쓰이는 프로그

래밍 언어는 C++이다. WINDOW창을

만들고 컴퓨터상에 구동시키기위해 WINAPI

를 사용하였으며 그래픽제어부분을 위해

DirectX의 DirectX Draw 라이브러리를 사용하였다. C++을 선택하게된 이유는 DirectX가 하드웨어에 직접 접근하여 그래픽

을 제어하는것인만큼 언어도 그런 시스템

하드웨어의 접근성을 받쳐줄 수 있는 것

이어야 하기 때문이다. 또한 게임에서 쓰이는

BMP이미지를 만들기위해서 Adobe

Illustrator으로 이미지를 만들고 Adobe

Photoshop로 이미지를 수정하였다.

3.2 화면구성

그림 2) 메뉴 화면

위 그림은 게임을 실행시키면 나오는 Intro

화면이 나오고 다음에 나오는 메뉴화면이다.

조직도에서 설명한것처럼 각각의 메뉴들이

있으며 키보드의 방향키로 움직여 선택후

실행하면된다.

그림 3) 플레이 화면

New Game메뉴를 선택후 실행하면 게임이

시작되는데 위 그림3은 게임플레이화면이다.

화면 위 왼쪽끝과 중간에 보면 현재 플레이

어의 남은 목숨과 현재 플레이어의 점수를

텍스트로 나타내 보여주며 화면 왼쪽 아래

에는 현재 목숨에서의 플레이어의 생명력을

퍼센트에이지형식으로 나타내준다. 그리고

적비행기의 모습과 적 미사일이 보이고

플레이어가 적군을 처리했을때의 폭발애니

메이션등이 화면에 잘 묘사되어있다.

4. 결 론

실제 어렸을때 오락실에서 하던 비행기

게임을 생각하며 재미있는 게임을 만들어

보려고 노력했다. 하지만 처음으로 한 프로

젝트이고 그런만큼 많은부분에서 미흡한

부분과 또한 실수한 부분이 있을것이다.

그래도 이번 프로젝트를 하게되면서 운영

체제가 무엇인지 다시한번 이해할 수 있었고

우리가 하는 컴퓨터 게임이 어떻게 만들어

지고 구동되어지는지 그래픽카드가 단순히

모니터에 그래픽을 출력해주는게 아닌 어떠

한 방식으로 출력을 해줄 수 있는 것인지

등등 많은것을 배울 수 있었다.

[참고 문헌 및 사이트]

- 참고문헌

Windows Game Programming for DUMMIES by. Andre' LaMothe

- 사이텍미디어 -

- 참고 사이트

www.winapi.co.kr

http://cafe.naver.com/gamemaker.cafe