Game Project	Sun And MoonTeam    : KGSoft발표자  : 윤한석, 문준석1
차례1 | 게임 소개             장르 | 플랫폼 | 시나리오 | 규칙 | 목적 | 조작방법2 | 게임 특징시스템 특징| 기술적 특징3 | 게임 구현구현 사항 | 수정 사항 | 문제 해결4 | QnA2
1 게임 소개- 게임개요제목	: Sun And Moon
장르	: 2D 횡스크롤 실시간 슈팅 대전 액션
인원수	: 싱글 플레이 ( CPU 대전 )- 기획 의도탱크 슈팅 게임 포트리스는 PC 온라인 게임으로 오랫동안 유저의 사랑을 받고 있습니다. 포트리스를 롤 모델로 기본에 충실하면서 모바일 형태에 맞게 게임을 만들고 싶었습니다. 커뮤니케이션이 부족한 대신 게임플레이에 박진감을 줄 수 있는 게임적 요소를 부여하여 모바일 분야의 오랫동안 사랑 받는 탱크 슈팅게임을 만들고 싶었습니다- 시놉시스태초에는 햇님과 달님이 한 하늘에서 각자의 방식으로 세상을 비추었습니다. 그러나 햇님은 열정과 강함을, 달님은 온화함과 고요함을 추구했습니다. 결국 둘은 한 하늘 아래 공존할 수 없다는 것을 느껴 서로의 존재를 부정하고 하늘의 주인이라 말하며 세기의 대결을 펼칩니다.3
1 게임 소개- 게임 목적 수호신이 자신을 대신하여 전투 할 물체를 만든 것이 탱크입니다. 자신이 이겨야만 수호신은 하늘의 주인이 되고 자신은 땅의 주인이 될 수 있습니다. 따라서 상대방의 탱크를 부셔 전투에 승리하는 것이 게임의 목적입니다.- 조작방법4ZXZ점프X무기 교체
52 게임 특징활동량 시스템활동량이란 공격과 이동에 필요한 에너지를 통틀어 말합니다. 활동량을 전부 소진하면 아무 행동도 취할 수 없으므로 공격을 받기 쉬워집니다. 따라서 활동량 관리는 게임의 중요한 전략적 요소가 됩니다. 효율적인 활동량 관리를 위해서는 적절한 타이밍의 휴식이 필요합니다.활동량(Activity)이동(Move) + 발사(Fire)
62 게임 특징배경의 영향력수호신인 햇님과 달님은 지속적으로 회전하며 세상을 비춥니다. 탱크는 자신의 수호신이 하늘에 떠있을 때 추가적인 효과를 받습니다. 강함을 추구하는 햇님이 떠 있을 때에는 햇님의 탱크의 공격력이 향상되며, 달님이 떠 있을 때에는 달님의 탱크의 활동량 증가량이 향상됩니다.회복력 대폭 증가공격력 대폭 증가
72 게임 특징파워와 딜레이슈팅파워는 발사 시 미사일의 속도를 결정하며 데미지는 충돌 시 미사일의 속도에 비례합니다. 미사일은 중력과 바람의 영향을 받으므로 플레이어의 위치 선정이 중요합니다. 또한 슈팅파워에 따라 딜레이가 있어서 플레이어는 움직일 수 없습니다.오토 뷰 카메라카메라는 옆면에서 지형과 플레이어를 바라봅니다. 직접 컨트롤 하는 수동 카메라와는 달리 오토 카메라는 플레이어와 적 사이에 적절한 시야거리에서 바라보도록 합니다.따라서 플레이어는 카메라 컨트롤에 시간을 소비하는 대신에 게임 플레이에 집중할 수 있습니다.
83게임 구현Core키 이벤트 처리와 분리된 Down, Press, Up을 구별할 수 있는 Input System 구현QueryPerformanceCounter()를이용한 정밀한 시간 측정이 가능한 Timer 구현Vector와 Matrix 구현, 특히 Matrix는 탱크포 회전의 필수적인 요소가 됨.FrameworkWindowApplication과 Game Logic을 최대한 분리 시킴OS에 맞게 Renderer와 Application만 수정하면 다른 플랫폼에서도 구동이 가능합니다.Window ApplicationRendererGame Logic
9Renderer제공되는 Renderer대신에 독자적인 Renderer 개발을 시도
DIB(장치 독립적인 비트맵)을 통해 화면 Buffer에 직접 접근    -> WINAPI에서 제공되는 Draw 함수들 보다 빠른 속도를 제공함.Bit count를 24bit -> 32bit -> 16bit로 수정해 나가면서 최적화 시도
Fade-in/out 구현을 통해 부드러운 화면 전환 가능800X480 크기의 게임화면400X240 크기의 게임화면화면 크기 변화를 고려하여 재작함으로써 화면 모바일 화면에서도 잘 그릴 수 있도록 함
10Terrain개발 초기에 툴을 통해 각 정점을 저장하여 Polygon으로 그리기 시도데이터 화
11Terrain꼭지점만 가지고 있는 자료구조 때문에 충돌방식에 문제점이 생겨서 새로운 설계가 필요했음충돌지형공격
12Terrain블록 단위의 지형을 구현함으로써 기존의 충돌문제를 해결함충돌공격
13TerrainRAW파일을 통해 생산성 높은 맵 생산 작업이 가능해짐(포토샵으로 데이터 작업 가능)14UIUI 전체 배치도
15UIRenderer::Fade()를 통해 유리병 같은 효과를 내서 그래픽적으로 부족하지만 세련된 느낌을 주려고 함
활동량 바(Bar) 같은 경우실시간 사용되는 양을 가시화 시켜 발사되는 크기를 미리 예측 가능체력 바활동량 바
16UI여러 미사일 사용을 슬롯을 통한 교체를 통해 가능바람 좋아 탄키  X + ↑↓ 를 통해 미사일 교체 가능바람 싫어 탄파워 좋아 탄아이템 슬롯
17UI전체적인 상황을 알아볼 수 있는 미니맵 구현
미니맵에 지형, 유닛(탱크, 수호신, 미사일)과 현재 그리고 있는 영역을 나타낸다.18Camera플레이어가 활동할 수 있는 영역을 늘리기 위해 큰 지형을 잡고적당한 크기를 그릴 수 있도록 카메라 개념을 사용
Auto Camera를 구현하여 역동적인 게임화면 연출19Particle충돌 시 시각적인 효과를 나타내기 위해 구현지형이 사라지면서 블록이폭파시키는 듯한 느낌을 줌실시간으로 변하는 폭파 화면

Sun and Moon

  • 1.
    Game Project Sun AndMoonTeam : KGSoft발표자 : 윤한석, 문준석1
  • 2.
    차례1 | 게임소개 장르 | 플랫폼 | 시나리오 | 규칙 | 목적 | 조작방법2 | 게임 특징시스템 특징| 기술적 특징3 | 게임 구현구현 사항 | 수정 사항 | 문제 해결4 | QnA2
  • 3.
    1 게임 소개-게임개요제목 : Sun And Moon
  • 4.
    장르 : 2D 횡스크롤실시간 슈팅 대전 액션
  • 5.
    인원수 : 싱글 플레이( CPU 대전 )- 기획 의도탱크 슈팅 게임 포트리스는 PC 온라인 게임으로 오랫동안 유저의 사랑을 받고 있습니다. 포트리스를 롤 모델로 기본에 충실하면서 모바일 형태에 맞게 게임을 만들고 싶었습니다. 커뮤니케이션이 부족한 대신 게임플레이에 박진감을 줄 수 있는 게임적 요소를 부여하여 모바일 분야의 오랫동안 사랑 받는 탱크 슈팅게임을 만들고 싶었습니다- 시놉시스태초에는 햇님과 달님이 한 하늘에서 각자의 방식으로 세상을 비추었습니다. 그러나 햇님은 열정과 강함을, 달님은 온화함과 고요함을 추구했습니다. 결국 둘은 한 하늘 아래 공존할 수 없다는 것을 느껴 서로의 존재를 부정하고 하늘의 주인이라 말하며 세기의 대결을 펼칩니다.3
  • 6.
    1 게임 소개-게임 목적 수호신이 자신을 대신하여 전투 할 물체를 만든 것이 탱크입니다. 자신이 이겨야만 수호신은 하늘의 주인이 되고 자신은 땅의 주인이 될 수 있습니다. 따라서 상대방의 탱크를 부셔 전투에 승리하는 것이 게임의 목적입니다.- 조작방법4ZXZ점프X무기 교체
  • 7.
    52 게임 특징활동량시스템활동량이란 공격과 이동에 필요한 에너지를 통틀어 말합니다. 활동량을 전부 소진하면 아무 행동도 취할 수 없으므로 공격을 받기 쉬워집니다. 따라서 활동량 관리는 게임의 중요한 전략적 요소가 됩니다. 효율적인 활동량 관리를 위해서는 적절한 타이밍의 휴식이 필요합니다.활동량(Activity)이동(Move) + 발사(Fire)
  • 8.
    62 게임 특징배경의영향력수호신인 햇님과 달님은 지속적으로 회전하며 세상을 비춥니다. 탱크는 자신의 수호신이 하늘에 떠있을 때 추가적인 효과를 받습니다. 강함을 추구하는 햇님이 떠 있을 때에는 햇님의 탱크의 공격력이 향상되며, 달님이 떠 있을 때에는 달님의 탱크의 활동량 증가량이 향상됩니다.회복력 대폭 증가공격력 대폭 증가
  • 9.
    72 게임 특징파워와딜레이슈팅파워는 발사 시 미사일의 속도를 결정하며 데미지는 충돌 시 미사일의 속도에 비례합니다. 미사일은 중력과 바람의 영향을 받으므로 플레이어의 위치 선정이 중요합니다. 또한 슈팅파워에 따라 딜레이가 있어서 플레이어는 움직일 수 없습니다.오토 뷰 카메라카메라는 옆면에서 지형과 플레이어를 바라봅니다. 직접 컨트롤 하는 수동 카메라와는 달리 오토 카메라는 플레이어와 적 사이에 적절한 시야거리에서 바라보도록 합니다.따라서 플레이어는 카메라 컨트롤에 시간을 소비하는 대신에 게임 플레이에 집중할 수 있습니다.
  • 10.
    83게임 구현Core키 이벤트처리와 분리된 Down, Press, Up을 구별할 수 있는 Input System 구현QueryPerformanceCounter()를이용한 정밀한 시간 측정이 가능한 Timer 구현Vector와 Matrix 구현, 특히 Matrix는 탱크포 회전의 필수적인 요소가 됨.FrameworkWindowApplication과 Game Logic을 최대한 분리 시킴OS에 맞게 Renderer와 Application만 수정하면 다른 플랫폼에서도 구동이 가능합니다.Window ApplicationRendererGame Logic
  • 11.
  • 12.
    DIB(장치 독립적인 비트맵)을통해 화면 Buffer에 직접 접근 -> WINAPI에서 제공되는 Draw 함수들 보다 빠른 속도를 제공함.Bit count를 24bit -> 32bit -> 16bit로 수정해 나가면서 최적화 시도
  • 13.
    Fade-in/out 구현을 통해부드러운 화면 전환 가능800X480 크기의 게임화면400X240 크기의 게임화면화면 크기 변화를 고려하여 재작함으로써 화면 모바일 화면에서도 잘 그릴 수 있도록 함
  • 14.
    10Terrain개발 초기에 툴을통해 각 정점을 저장하여 Polygon으로 그리기 시도데이터 화
  • 15.
    11Terrain꼭지점만 가지고 있는자료구조 때문에 충돌방식에 문제점이 생겨서 새로운 설계가 필요했음충돌지형공격
  • 16.
    12Terrain블록 단위의 지형을구현함으로써 기존의 충돌문제를 해결함충돌공격
  • 17.
    13TerrainRAW파일을 통해 생산성높은 맵 생산 작업이 가능해짐(포토샵으로 데이터 작업 가능)14UIUI 전체 배치도
  • 18.
    15UIRenderer::Fade()를 통해 유리병같은 효과를 내서 그래픽적으로 부족하지만 세련된 느낌을 주려고 함
  • 19.
    활동량 바(Bar) 같은경우실시간 사용되는 양을 가시화 시켜 발사되는 크기를 미리 예측 가능체력 바활동량 바
  • 20.
    16UI여러 미사일 사용을슬롯을 통한 교체를 통해 가능바람 좋아 탄키 X + ↑↓ 를 통해 미사일 교체 가능바람 싫어 탄파워 좋아 탄아이템 슬롯
  • 21.
    17UI전체적인 상황을 알아볼수 있는 미니맵 구현
  • 22.
    미니맵에 지형, 유닛(탱크,수호신, 미사일)과 현재 그리고 있는 영역을 나타낸다.18Camera플레이어가 활동할 수 있는 영역을 늘리기 위해 큰 지형을 잡고적당한 크기를 그릴 수 있도록 카메라 개념을 사용
  • 23.
    Auto Camera를 구현하여역동적인 게임화면 연출19Particle충돌 시 시각적인 효과를 나타내기 위해 구현지형이 사라지면서 블록이폭파시키는 듯한 느낌을 줌실시간으로 변하는 폭파 화면