4.최종 보고

                    종합설계 프로젝트 최종보고서 요약

팀명

 GameKook

제출일

2012 5 29

프로젝트 제목

Physics Action Game on Cross-Platform

설계 프로젝트 개요

프로젝트 수행 내용 및 중간 결과

n  프로젝트 요약문

1.추진목적 필요성

프로젝트는 Multi-platform game으로 장소나 시간에 제약 받지 않기 때문에 유저는 언제 어디서든지 게임을 즐길 있다. 캐주얼한 게임을 제작하여 액션을 통한 스트레스 해소뿐만 아니라 이를 완료하였을 성취감을 얻을 있다.

 1.1 App스토어 시장 현황

 한국 컨텐츠 진흥원 보고에 따르면 2010 전체 시장의 33% 게임과 엔터테인먼트 카테고리의 어플리케이션이고 2015년에는 더 늘어난다고 전망하였다. 이는 iPhone Android 스마트폰을 이용하는 유저들은 스마트폰을 단순히 기능이 많은 핸드폰보다는 엔터테인먼트 디바이스로써 이용한다는 것이다 프로젝트는 소비자의 니즈인 '즐거움'에 부합하는 게임을 개발한다.

 1.2 플랫폼의 다양화

Product가  플랫폼에만 종속된다는 것은 유저와 접할 있는 표면이 매우 한정적일 밖에 없다는 것을 의미한다. ()플랫폼 시대에서 살아남기 위한 방법은 Cross-Platform 지원하는 것이다. 이러한 개발자들의 요구에 맞추어 Cross-Platform 지원하는 개발 툴도 등장하였다.   프로젝트에서도 Unity3d 엔진을 사용함으로써 iPhone/iPod, iPad, Android, MacOS, Windows 지원하는 Cross-Platform game 개발한다.

2.추진 목표

프로젝트는 Physics Action Cross Platform game 개발한다. Physics Action이란 그대로 물리 엔진을 통해 물리 현상을 시뮬레이션 하여 사용자가 실제 상황과 같은 효과를 느낄 있도록 하는 것이다. 같은 물리 시뮬레이션은 세계와 매우 비슷하며 이는 다양한 요소를 통해 계산된다. 이에 적을 제거하는 액션 요소가 추가된 방식이다. 게임은 화면에 등장하여 다가오는 적들을 Player 물리치는 One-touch Action 게임이다. 적의 생성에 패턴을 두어 사용자가 플레이를 통해 패턴을 인식, 반복적인 플레이를 유도하여 몰입도를 높인다. 또한 단계별 난이도의 차이, Achievement System 통한 업적 성취, Leaderboard 통한 유저들과의 경쟁구도를 만들어 엔터테인먼트 요소를 추가적으로 제공한다. 기존에 사용자들에게 많은 사랑을 받았던 게임을 참고 하되, 신선하고 새로운 소재와 시나리오를 통해 재해석 새로운 게임을 개발한다. 또한 Unity 3d 기반으로 플랫폼의 제약 없이 PC, Mobile 원하는 곳에서 즐길 있도록 한다.

n  마일스톤 수행 내용

no 마일스톤  내용  기간  비교 
 1계획서-물리엔진을 이용한 여러 가지 장애물 구현
-캐릭터 움직임
-Parallax Background
-Mobile Input
-Level Design
2012.02.01~
2012.03.01
Prototype 플레이를 통한 검증을 수행 한 결과 재미를 느낄 수 없었다. 또한 Target User대상 검증에서 컨트롤 및 장르가 어렵다는 피드백을 받았다. 또한, 리소스 제작 비용의 제약을 생각했을 때반복적으로 플레이 하는 방식이 더 적합하다고 판단하여 Platformer게임 장르에서 Action장르로 게임을 변경하였다.
 2 1차
중간 보고
-Swipe Input 구현
-Localizatioin 구현
-Openfeint와 GameCenter를 구현
-State Machine
-배경 생성
-Jello Physics
-mesh split구현
-Slash Chain
-GUI
 2012.03.21~
2012.04.04
 
 3  2차
중간 보고
 -배경 리소스 제작
-Jelly Object적용 및 안정화
-UI제작
-캐릭터 2종 추가 제작
-Sound Framework
-Effect 제작 및 적용
-캐릭터 등장 패턴
-Achievement System 데이터 설계
-재미 요소 연구
-AR
-Item
 2012.04.06~
2012.05.03
 -Jelly Object 적용 및 안정화 :젤리의 물리 연산과 잘리게 될 때 복제하여 분리하는 방식은 시스템 리소스를 많이 사용하게 된다. 이는 PC환경에서는 문제가 없지만 모바일 환경에서는 성능이 잘 나오지 않기 때문에 Jelly 적용을 제외 하였다.

-AR : 다른 게임과의 차별화 요소로 퀄컴의 vuforia를 이용한 증강현실을 프로토타이핑하였다.
 4  구현완료
-배경 리소스 추가 
-캐릭터 1~2종 추가
-Sound(BGM,FX)제작
-Level Balancing
-캐릭터 등장 패턴 추가
-재미 요소 연구
-UI 개선
-Android에 광고 적용 
 2012.05.03~
2012.05.31
 적용 시킬 광고로 AdMob을 선택하여 인터그레이션을 진행하였으나, 담당 팀원이 완성을 하지 못한채 많은 시간이 흘러, 일단 정지하고 다른 작업에 투입하였다.
-AR : 복잡한 Scene에서 저 성능 스마트폰의 인식률이 떨어진다. 또한 작은 화면에서 움직이는 GameObject에 대하여 Input을 하기가 어려웠다. 위의 한계점으로 인해 게임 적용을 제외 하였다. 
Anaglyph 3D : 다른 게임과의 차별화 요소로 적청안경 3D를 추가하였다.
 5  테스트 -반복 플레이를 통한 재미
-안정화 테스트, 버그 수정
-모바일 성능 테스트
2012.05.21~
2012.05.31 
 
버그 검출을 위하여 시나리오 테스트를 추가로 실시하였다.
 6 최종 보고서 -최종 보고서 작성 및
시연 준비
산출물 
-최종 보고서 및 슬라이드
-플랫폼 별 완성된 프로그램
2012.05.21~
2012.05.31 
 





n 
최종 보고 요약


  1. 시스템 구현
    1.1 Sound Effect
    유저가 적을 제거할  효과음의 변화를 통해 재미 요소와 몰입도를 높인다.
    1.2 State Machine
    몬스터의 상황에 맞는 State 바꾸도록 하여 몬스터가 적절하게 움직일  있도록 하였다.
    1.3 캐릭터 등장 Pattern
    몬스터의 정보와 몬스터 등장 패턴을 저장하고 있는 XML 읽어서 Level 따른 몬스터와 다양한 등장 패턴을 구현하였다.
    1.4 Achievement System
    게임 소셜 네트워킹 서비스인 OpenFeint Gamecenter Achievement Controller와 연동하여 Android IOS에 적용시켜서 업적 달성 시스템을 구현하였다.
    1.5 Localization
    5개 나라의 언어를 XML로 관리하여 옵션에서 설정된 언어를 불러와 화면에 출력한다.
    1.6 Dynamic Mesh Split
    유저의 입력을 바탕으로 Plane을 생성하여 그 기준으로 Vertex를 나누어 2개의 Game Object를 생성해서 몬스터가 나뉘는 효과를 구현하였다이때모바일의 성능을 고려하여 2조각 이상으로 나뉘지 않도록 제한을 두었다.
    1.7 PhysX 물리 엔진
    NVIDIA PhysX 물리 엔진을 이용하여 몬스터가 둥근 지면을 이동 하는 효과와 베였을 때 자연스럽게 떨어지는 효과를 적용하였다.
    1.8 Anaglygh 3D
    Red Cyan로 분리하여 2개의 카메라에 할당을 시키고 쉐이더를 통해 병합하여 Red-Cyan 안경을 이용해 3D로 즐길 수 있도록 하였다.
    1.9 Swipe Input
    Swipe로 적을 베는 컨셉으로 Touch에 따라 궤적을 표현해 주었다카메라에서부터 스크린상 Input Point방향으로 Ray를 쏘아 Slash Effect Collider와 충돌이 체크되면 해당 위치에 궤적을 그려준다. 적이 잘리는 모양 역시 Ray를 이용하여 Input의 시작 지점과 충돌한 지점을 통해 결정 된다.
    1.10 LevelManager
    LevelManager : 각 단계를 설정하고 관리하는 역할단계에 맞는 인자를 Spawn에게 전달한다Level : XML을 파싱하여 몬스터의 prefab 주소를 LevelManager에게 전달한다MobPatternGenerator :XML을 파싱하여 패턴을 관리한다.

  2. Cross Platform
    크로스 플랫폼을 지원하기 위해서 다양한 성능의 디바이스와 다양한 크기의 화면 크기를 고려한다.
    -스크린 크기 : 모든 UI를 스크린 크기의 비율을 기준으로 배치하여 레이아웃이 어긋나지 않도록 하였다.
    -Processor : 다양한 플랫폼을 지원하며 생기게 되는 성능차이의 문제를 저 사양 디바이스에서는 스크린 효과를 지원하지 않는 등, 각 플랫폼 별로 다른 품질을 적용하여 해결하였다.
    -Memory : 저 사양 디바이스에서의 Memory의 제약으로 생기는 문제를 플랫폼 별 Texture 품질(압축 포맷)에 차이를 두어 해결하였다.

  3. 성능 평가
    게임 플레이 중 수집한 프로파일 데이터를 바탕으로 어떤 요소가 게임 성능에 영향을 미치는 지 확인하여 보았다그 결과 Dynamic Mesh Split이 성능에 큰 부하를 준다는 것을 알 수 있다.

프로젝트 결과

타이틀 화면은 총 5개의 버튼으로 구성되어있다. 왼쪽 상단의 두 버튼은 GameCenter, Openfeint로 접속하는 버튼으로 스코어 랭킹과 업적달성을 확인 할 수 있다. 옵션버튼을 눌러 옵션 페이지에서 소리와 3D 영상 옵션, 언어설정 등을 제어할 있다. 업적버튼을 눌러 게임 내에서 수행해야 하는 미션을 확인할 수 있다.



타이틀 화면에서 플레이 버튼을 눌러 게임을 시작한다. 게임은 화면에 나타나 다가오는 적을 제거하는 one-touch 액션 게임이다. 두 번째 그림에서 보이듯이, 적 캐릭터는 사용자의 touch input 방향에 따라 베어진다. 한번의 터치로 적을 벨 경우 Combo이팩트가 뜨고 스킬을 사용할 수 있는 마나가 축적된다. 시각적인 재미요소로 3D 영상을 옵션으로 선택하여 게임을 즐길 수 있다.

동영상

캡스톤디자인 6조 최종보고





Ċ
markers@cs.kookmin.ac.kr,
2012. 5. 25. 오전 3:52
Ċ
markers@cs.kookmin.ac.kr,
2012. 5. 29. 오전 6:07
Ċ
markers@cs.kookmin.ac.kr,
2012. 5. 28. 오전 2:32
Comments