23
Game Project Sun And Moon Team : KGSoft 발표자 : 윤한석, 문준석 1

Sun and Moon

Embed Size (px)

Citation preview

Page 1: Sun and Moon

Game Project

Sun And Moon

Team : KGSoft

발표자 : 윤한석, 문준석

1

Page 2: Sun and Moon

1 | 게임 소개장르 | 플랫폼 | 시나리오 | 규칙 | 목적 | 조작방법

2 | 게임 특징시스템 특징 | 기술적 특징

3 | 게임 구현구현 사항 | 수정 사항 | 문제 해결

4 | QnA

차례

2

Page 3: Sun and Moon

1 게임 소개

- 게임 개요

• 제목 : Sun And Moon

• 장르 : 2D 횡스크롤 실시간 슈팅 대전 액션

• 인원수 : 싱글 플레이 ( CPU 대전 )

- 기획 의도

탱크 슈팅 게임 포트리스는 PC 온라인 게임으로 오랫동안 유저의 사랑을 받고 있습니다. 포트

리스를 롤 모델로 기본에 충실하면서 모바일 형태에 맞게 게임을 만들고 싶었습니다. 커뮤니

케이션이 부족한 대신 게임플레이에 박진감을 줄 수 있는 게임적 요소를 부여하여 모바일 분

야의 오랫동안 사랑 받는 탱크 슈팅게임을 만들고 싶었습니다

- 시놉시스

태초에는 햇님과 달님이 한 하늘에서 각자의 방식으로 세상을 비추었습니다.

그러나 햇님은 열정과 강함을, 달님은 온화함과 고요함을 추구했습니다.

결국 둘은 한 하늘 아래 공존할 수 없다는 것을 느껴 서로의 존재를 부정하고

하늘의 주인이라 말하며 세기의 대결을 펼칩니다.

3

Page 4: Sun and Moon

1 게임 소개

- 게임 목적수호신이 자신을 대신하여 전투 할 물체를 만든 것이 탱크입니다. 자신이 이겨야만 수호신은

하늘의 주인이 되고 자신은 땅의 주인이 될 수 있습니다. 따라서 상대방의 탱크를 부셔 전투에

승리하는 것이 게임의 목적입니다.

- 조작방법

4

Z 점프

X 무기 교체

Z X

Page 5: Sun and Moon

5

2 게임 특징

• 활동량 시스템

활동량이란 공격과 이동에 필요한 에너지를 통틀어 말합니다. 활동량을 전부 소진하면 아무

행동도 취할 수 없으므로 공격을 받기 쉬워집니다. 따라서 활동량 관리는 게임의 중요한 전략적

요소가 됩니다. 효율적인 활동량 관리를 위해서는 적절한 타이밍의 휴식이 필요합니다.

이동(Move) + 발사(Fire)

활동량(Activity)

Page 6: Sun and Moon

6

2 게임 특징

• 배경의 영향력

수호신인 햇님과 달님은 지속적으로 회전하며 세상을 비춥니다. 탱크는 자신의 수호신이 하늘에 떠있을 때

추가적인 효과를 받습니다. 강함을 추구하는 햇님이 떠 있을 때에는 햇님의 탱크의 공격력이 향상되며, 달님이 떠

있을 때에는 달님의 탱크의 활동량 증가량이 향상됩니다.

Page 7: Sun and Moon

7

2 게임 특징

• 파워와 딜레이

슈팅파워는 발사 시 미사일의 속도를 결정하며 데미지는 충돌 시 미사일의 속도에 비례합니다.

미사일은 중력과 바람의 영향을 받으므로 플레이어의 위치 선정이 중요합니다.

또한 슈팅파워에 따라 딜레이가 있어서 플레이어는 움직일 수 없습니다.

• 오토 뷰 카메라

카메라는 옆면에서 지형과 플레이어를 바라봅니다. 직접 컨트롤 하는 수동 카메라와는 달리 오토 카메라는

플레이어와 적 사이에 적절한 시야거리에서 바라보도록 합니다. 따라서 플레이어는 카메라 컨트롤에 시간을

소비하는 대신에 게임 플레이에 집중할 수 있습니다.

Page 8: Sun and Moon

8

3 게임 구현

CORE

키 이벤트 처리와 분리된 Down, Press, Up을 구별할 수 있는 Input System 구현

QueryPerformanceCounter()를 이용한 정밀한 시간 측정이 가능한 Timer 구현

Vector와 Matrix 구현, 특히 Matrix는 탱크포 회전의 필수적인 요소가 됨.

FRAMEWORK

Window Application과 Game Logic을 최대한 분리 시킴

OS에 맞게 Renderer와 Application만 수정하면 다른 플랫폼에서도 구동이 가능합니다.

Window Application

RendererGame Logic

Page 9: Sun and Moon

9

RENDERER

•제공되는 Renderer대신에 독자적인 Renderer 개발을 시도

•DIB(장치 독립적인 비트맵)을 통해 화면 Buffer에 직접 접근

-> WINAPI에서 제공되는 Draw 함수들 보다 빠른 속도를 제공함.

•Bit count를 24bit -> 32bit -> 16bit로 수정해 나가면서 최적화 시도

•Fade-in/out 구현을 통해 부드러운 화면 전환 가능

화면 크기 변화를 고려하여 재작함으로써 화면 모바일 화면에서도 잘 그릴 수 있도록 함

800X480 크기의 게임화면 400X240 크기의 게임화면

Page 10: Sun and Moon

10

TERRAIN

•개발 초기에 툴을 통해 각 정점을 저장하여 Polygon으로 그리기 시도

데이터 화

Page 11: Sun and Moon

11

•꼭지점만 가지고 있는 자료구조 때문에 충돌방식에 문제점이 생겨서 새

로운 설계가 필요했음

지형

공격

충돌

TERRAIN

Page 12: Sun and Moon

12

•블록 단위의 지형을 구현함으로써 기존의 충돌문제를 해결함

공격

충돌

TERRAIN

Page 13: Sun and Moon

13

•RAW파일을 통해 생산성 높은 맵 생산 작업이 가능해짐(포토샵으로 데

이터 작업 가능)

TERRAIN

Page 14: Sun and Moon

14

UI

UI 전체 배치도

Page 15: Sun and Moon

15

• Renderer::Fade()를 통해 유리병 같은 효과를 내서 그래

픽적으로 부족하지만 세련된 느낌을 주려고 함

• 활동량 바(Bar) 같은 경우 실시간 사용되는 양을 가시화

시켜 발사되는 크기를 미리 예측 가능

체력 바 활동량 바

UI

Page 16: Sun and Moon

16

• 여러 미사일 사용을 슬롯을 통한 교체를 통해 가능

아이템 슬롯

바람 좋아 탄

바람 싫어 탄

파워 좋아 탄

키 X + ↑↓ 를 통해 미사일 교체 가능

UI

Page 17: Sun and Moon

17

• 전체적인 상황을 알아볼 수 있는 미니맵 구현

• 미니맵에 지형, 유닛(탱크, 수호신, 미사일)과 현재 그리고

있는 영역을 나타낸다.

UI

Page 18: Sun and Moon

18

• 플레이어가 활동할 수 있는 영역을 늘리기 위해 큰 지형을 잡고

적당한 크기를 그릴 수 있도록 카메라 개념을 사용

• Auto Camera를 구현하여 역동적인 게임화면 연출

CAMERA

Page 19: Sun and Moon

19

충돌 시 시각적인 효과를 나타내기 위해 구현

실시간으로 변하는 폭파 화면 지형이 사라지면서 블록이

폭파시키는 듯한 느낌을 줌

PARTICLE

Page 20: Sun and Moon

20

유저와 상호작용 중 큰 부분을 차지하는 AI를 제공함으로써

성취욕을 자극.

AI 사용과 적 탱크개수를 조절함으로써 난이도 조절도 가능

AI & LEVEL DESIGN

Page 21: Sun and Moon

21

DEMO

Page 22: Sun and Moon

22

Q&A

Page 23: Sun and Moon

23

감사합니다~