Journal of Digital Art Engineering & Multimedia Vol.4, No1, June (2017), pp 디지털예술공학멀티미디어논문지 멀티플랫폼게임

Similar documents
<353420B1C7B9CCB6F52DC1F5B0ADC7F6BDC7C0BB20C0CCBFEBC7D120BEC6B5BFB1B3C0B0C7C1B7CEB1D7B7A52E687770>

<3033C0CCBCB1BFB52E706466>

인문사회과학기술융합학회

Journal of Educational Innovation Research 2017, Vol. 27, No. 2, pp DOI: : Researc

< FC3D6C1BEBCF6C1A45FB1E2B5B6B1B3B1B3C0B0B3EDC3D E687770>

27송현진,최보아,이재익.hwp

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

1. KT 올레스퀘어 미디어파사드 콘텐츠 개발.hwp

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

<31325FB1E8B0E6BCBA2E687770>

<333820B1E8C8AFBFEB2D5A B8A620C0CCBFEBC7D120BDC7BFDC20C0A7C4A1C3DFC1A42E687770>

?

서현수

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Microsoft Word - KSR2014S042

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

PowerPoint 프레젠테이션

04서종철fig.6(121~131)ok


304.fm

<32382DC3BBB0A2C0E5BED6C0DA2E687770>

Journal of Educational Innovation Research 2016, Vol. 26, No. 2, pp DOI: * Experiences of Af


Journal of Educational Innovation Research 2019, Vol. 29, No. 1, pp DOI: (LiD) - - * Way to

Journal of Educational Innovation Research 2018, Vol. 28, No. 3, pp DOI: NCS : * A Study on

DBPIA-NURIMEDIA

07변성우_ok.hwp

.....hwp

디지털포렌식학회 논문양식

Journal of Educational Innovation Research 2018, Vol. 28, No. 1, pp DOI: * A Analysis of

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

PowerPoint 프레젠테이션

Journal of Educational Innovation Research 2018, Vol. 28, No. 1, pp DOI: A study on Characte

Microsoft Word - KSR2012A021.doc

DBPIA-NURIMEDIA

인문사회과학기술융합학회

<31362DB1E8C7FDBFF82DC0FABFB9BBEA20B5B6B8B3BFB5C8ADC0C720B1B8C0FC20B8B6C4C9C6C32E687770>

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

3. 클라우드 컴퓨팅 상호 운용성 기반의 서비스 평가 방법론 개발.hwp

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. vol. 29, no. 10, Oct ,,. 0.5 %.., cm mm FR4 (ε r =4.4)

SchoolNet튜토리얼.PDF

인문사회과학기술융합학회

À±½Â¿í Ãâ·Â

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

<5B D B3E220C1A634B1C720C1A632C8A320B3EDB9AEC1F628C3D6C1BE292E687770>

°í¼®ÁÖ Ãâ·Â

Journal of Educational Innovation Research 2018, Vol. 28, No. 4, pp DOI: A Study on Organizi

퍼스널 토이의 조형적 특성에 관한 고찰

<313120C0AFC0FCC0DA5FBECBB0EDB8AEC1F2C0BB5FC0CCBFEBC7D15FB1E8C0BAC5C25FBCF6C1A42E687770>

Journal of Educational Innovation Research 2019, Vol. 29, No. 1, pp DOI: * Suggestions of Ways

0125_ 워크샵 발표자료_완성.key

00Àâ¹°

00Àâ¹°

목 차 회사현황 1. 회사개요 2. 회사연혁 3. 회사업무영역/업무현황 4. 등록면허보유현황 5. 상훈현황 6. 기술자보유현황 7. 시스템보유현황 주요기술자별 약력 1. 대표이사 2. 임원짂 조직 및 용도별 수행실적 1. 조직 2. 용도별 수행실적

09권오설_ok.hwp

감각형 증강현실을 이용한

<C7D1B1B9C4DCC5D9C3F7C1F8C8EFBFF82D C4DCC5D9C3F7BBEABEF7B9E9BCAD5FB3BBC1F E687770>

DBPIA-NURIMEDIA

Journal of Educational Innovation Research 2019, Vol. 29, No. 2, pp DOI: * The Effect of Paren

(JBE Vol. 21, No. 1, January 2016) (Regular Paper) 21 1, (JBE Vol. 21, No. 1, January 2016) ISSN 228

?흎튜

DE1-SoC Board

230 한국교육학연구 제20권 제3호 I. 서 론 청소년의 언어가 거칠어지고 있다. 개ㅅㄲ, ㅆㅂ놈(년), 미친ㅆㄲ, 닥쳐, 엠창, 뒤져 등과 같은 말은 주위에서 쉽게 들을 수 있다. 말과 글이 점차 된소리나 거센소리로 바뀌고, 외 국어 남용과 사이버 문화의 익명성 등

Journal of Educational Innovation Research 2016, Vol. 26, No. 3, pp.1-16 DOI: * A Study on Good School

11¹Ú´ö±Ô

TTA Journal No.157_서체변경.indd

Microsoft PowerPoint - chap01-C언어개요.pptx

DBPIA-NURIMEDIA

Journal of Educational Innovation Research 2019, Vol. 29, No. 2, pp DOI: 3 * Effects of 9th

???춍??숏

Analyses the Contents of Points per a Game and the Difference among Weight Categories after the Revision of Greco-Roman Style Wrestling Rules Han-bong

05( ) CPLV12-04.hwp

<C7D1B1B9B1B3C0B0B0B3B9DFBFF85FC7D1B1B9B1B3C0B05F3430B1C733C8A35FC5EBC7D5BABB28C3D6C1BE292DC7A5C1F6C6F7C7D42E687770>

Journal of Educational Innovation Research 2018, Vol. 28, No. 3, pp DOI: * Strenghening the Cap

, Next Step of Hangul font As an Example of San Serif Han San Seok Geum ho, Jang Sooyoung. IT.. Noto Sans(Adobe, Han-San). IT...., Muti Script, Multi


- 2 -

DBPIA-NURIMEDIA

13 Who am I? R&D, Product Development Manager / Smart Worker Visualization SW SW KAIST Software Engineering Computer Engineering 3

Journal of Educational Innovation Research 2019, Vol. 29, No. 2, pp DOI: * Early Childhood T

Something that can be seen, touched or otherwise sensed

부산교육 311호

pdf 16..

도비라

06_ÀÌÀçÈÆ¿Ü0926

슬라이드 1

PowerPoint 프레젠테이션

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

본문01

(JH)

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Nov.; 26(11),

DBPIA-NURIMEDIA

<BFA9BAD02DB0A1BBF3B1A4B0ED28C0CCBCF6B9FC2920B3BBC1F62E706466>



Microsoft Word - KSR2012A038.doc

Journal of Educational Innovation Research 2018, Vol. 28, No. 4, pp DOI: 3 * The Effect of H

Journal of Educational Innovation Research 2017, Vol. 27, No. 4, pp DOI: * A Study on Teache

<332EC0E5B3B2B0E62E687770>

Transcription:

Journal of Digital Art Engineering & Multimedia Vol.4, No1, June (2017), pp. 19-28 디지털예술공학멀티미디어논문지 http://dx.doi.org/10.29056/idaem.2017.06.02 멀티플랫폼게임엔진을이용한 2D 게임설계및구현 Design and Implementation for Multi-Platform Game Engine using the 2D Game 배재환 1) Jae-Hwan Bae 1 요약멀티플랫폼 (Multi-Platform) 은게임이여러종류의플랫폼 (Platform) 에서구동한다는것을말한다. 여기서말하는플랫폼이란하드웨어 (Hardware) 가될수도있고, OS(Operation System) 가될수도있다. 현재출시된멀티플랫폼게임엔진중게임개발사에서많이사용중인엔진은 Unity3D 엔진이다. 본논문에서는 Unity3D 엔진을이용한게임을설계개발하고자한다. 유니티엔진은 C#, 자바스크립트, Boo로코드를작성할수있다는이유로 C# 과모노기반코드로개발되었다고알려져있었다. 실제로엔진의런타임부분은 C++ 과마이크로소프트닷넷 API, 에디터프로그램은 C# 으로개발되었다. 스크립트는유니티내에서바로수정은하지못하고 Mono Develop 등유니티를지원하는스크립트에디터에서수정할수있다. 이에본논문에서는멀티플랫폼게임엔진을이용한 2D 게임설계및구현을제안하고자한다. 이를통해서다양한멀티플랫폼기반의게임설계및개발에도움이되었으면한다. 핵심어 : 멀티플랫폼게임엔진, 멀티플랫폼게임, 멀티플랫폼, 2D 게임 Abstract Multi-Platform means that the game runs on different kinds of platforms. The platform referred to here may be hardware or may be an operating system (OS). Unity3D engine is one of the most popular multiplatform game engines in game development. In this paper, we design and develop games using Unity3D engine. The Unity engine was known to have been developed in C # and mono-based code because of its ability to write code in C #, JavaScript, and Boo. In fact, the run-time part of the engine was developed with C ++ and Microsoft.NET APIs, and the editor program with C #. Scripts can not be modified directly in Unity and can be modified in Script editor supporting Unity such as Mono Develop. In this paper, we propose the design and implementation of 2D game using multi-platform game engine. We hope this will help you design and develop various multiplatform based games. Keyword: Multi-Platform Game Engine, Multi-Platform Game, Multi-Platform, 2D Game 1) Department of Game Engineering, TongMyong Univ., Sinseon-ro, Nam-gu, Busan, 608-711, Korea e-mail: bjhmail@tu.ac.kr * 이논문은 2017 학년도동명대학교교내학술연구비지원에의하여연구되었음 ( 과제번호 2017F004) Received(April 24.2017), Review (June 11.2017), Accepted(June 30.2017) ISSN: 2508 9099 JDAEM c 2017 NCISS 19

Design and Implementation for Multi-Platform Game Engine using the 2D Game 1. 서론 멀티플랫폼 (Multi-Platform) 은게임이여러종류의플랫폼 (Platform) 에서구동한다는것을말한다. 여기서말하는플랫폼이란하드웨어 (Hardware) 가될수도있고, OS(Operation System) 가될수도있다. 현재출시된멀티플랫폼게임엔진중게임개발사에서많이사용중인엔진은 Unity3D 엔진이다. 유니티엔진은 C#, 자바스크립트, Boo로코드를작성할수있다는이유로 C# 과모노기반코드로개발되었다고알려져있었다. 실제로엔진의런타임부분은 C++ 과마이크로소프트닷넷 API, 에디터프로그램은 C# 으로개발되었다 [1][2]. 스크립트는유니티3D 내에서바로수정은하지못하고 Mono Develop 등유니티를지원하는스크립트에디터에서수정할수있다 [3]. 이에본논문에서는멀티플랫폼게임엔진을이용한 2D 게임설계및구현을제안하고자한다. 논문의주요구성은 2장게임엔진기술분석, 3장멀티플랫폼게임엔진, 4장게임기술분석및게임구현, 5장결론으로구성된다. 2. 게임엔진기술분석 2.1 게임엔진기술분석 게임엔진의개념이본격적으로자리를잡은것은 1996년발매된 FPS(First Person Shooter) 게임퀘이크 (Quake) 이후 3D게임이보편화되면서부터였다. 퀘이크의개발자존카멕이퀘이크시리즈의소스코드를공개하며게임엔진이라는개념이자리잡은것이다. 상용게임엔진에는 3D 게임의구동을위한렌더링 (Rendering) 등의기능이미리구현되어있기때문에, 이를이용함으로써게임개발기간을단축할수있다. 게임엔진이가지는주요기능으로는 3D 그래픽의표현을위한렌더링엔진 (Rendering Engine), 3D 공간의충돌감지및현실적인물리효과 (Physics Effect) 를내기위한물리엔진 (Physics Engine), 각종개발도구 (Development Tool) 등이있다. 돈을받고라이선스 (Licence) 를판매하는상용게임엔진의경우, 개발자의편의와개발속도향상을위한스크립트에디터 (Script Editor), 맵에디터 (Map Editor) 등의다양한기능들을제공하고있다. 대표적인상용게임엔진으로는언리얼엔진 (Unreal Engine), 크라이엔진 (Cry Engine), 소스엔진 (Source Engine) 등이있다. 언리얼엔진과크라이엔진, 소스엔진은 FPS 게임개발을위한 20 c 2017 NCISS

Journal of Digital Art Engineering & Multimedia Vol.4, No.1, June (2017) 엔진인만큼, FPS나 TPS(Third Person Shooter) 게임을개발하는데용이하나, 각종부가기능들을이용해 MMORPG(Massively Multiplayer Online Role-Playing Game) 나액션게임 (Action Game) 등을개발하기도한다. 일반적인게임서버 & 클라이언트엔진모델은아래와같다. 게임엔진은게임소프트웨어의구성에필요한소프트웨어구성요소를재사용할수있게만든것이다. 엔진은개발에필요한기능을즉시사용할수있도록제공하여개발의단가와복잡도를줄여주고, 제일정에복잡한게임을출시할수있게해준다. 이것은게임업계에서매우중요한일이다. 게임엔진은유연하고재사용가능한소프트웨어환경을제공해주는점때문에 ' 게임미들웨어 ' 라고불리기도한다. 게임미들웨어라고불리는시스템들은구성요소 ( 컴포넌트 ) 기반의구조를가지는것이많다 [4][5]. [ 표 1] 게임서버및클라이언트구조 [Table 1] Game server and client structure 구분 Game Server & Client 구조 서버 클라이언트 ISSN: 2508 9099 JDAEM c 2017 NCISS 21

Design and Implementation for Multi-Platform Game Engine using the 2D Game 3. 게임기술분석및게임구현 멀티플랫폼게임개발을위해서는멀티플랫폼개발이가능한언어를사용하거나멀티플랫폼을지원하는게임엔진을구매해게임을개발하는게일반적이다. 특히직접멀티플랫폼을지원하는게임엔진 (Game Engine) 을만들경우, 각플랫폼이나기기에따른대응이어려워지기때문에개발효율과위험성관리를위해멀티플랫폼을지원하는게임엔진을구매하는경우가많다. 보통멀티플랫폼이라하면여러기기등에서구동이된다는의미로사용하지만, 아예다양한플랫폼에서연동되는멀티플레이 (Multi-Play) 를지원하는경우도있다. 세가가개발한액션 MORPG(Multiplayer Online Role-Playing Game) 판타시스타온라인 2(Phantasy Star Online 2) 에서는플레이스테이션 3와 PS Vita, PC 사용유저가함께즐길수있는멀티플레이를선보인바있다. 멀티플랫폼 (Multi-Platform) 은게임이여러종류의플랫폼 (Platform) 에서구동한다는것을말한다. 여기서말하는플랫폼이란하드웨어 (Hardware) 가될수도있고, OS(Operation System) 가될수도있다. 현재출시된멀티플랫폼게임엔진중게임개발사에서많이사용중인엔진은 Unity3D 엔진이다.[6-8] 본논문에서는 Unity3D 엔진을이용한게임을설계개발하고자한다. 유니티엔진은 C#, 자바스크립트, Boo로코드를작성할수있다는이유로 C# 과모노기반코드로개발되었다고알려져있었다. 실제로엔진의런타임부분은 C++ 과마이크로소프트닷넷 API, 에디터프로그램은 C# 으로개발되었다. 스크립트는유니티내에서바로수정은하지못하고 Mono Develop 등유니티를지원하는스크립트에디터에서수정할수있다. Visual Studio Tools for Unity[2] 플러그인을이용해서 Visual Studio 를통해유니티 C# 스크립트를개발및디버깅할수있으며, 해당플러그인은비주얼스튜디오커뮤니티 (Visual Studio Community) 버전이상에서사용가능하다. 유니티는 Premium Support 솔루션을가지고있다. 이솔루션을이용하면유니티 3D에질문을하고하루내로답변을받을수있다. 22 c 2017 NCISS

Journal of Digital Art Engineering & Multimedia Vol.4, No.1, June (2017) [ 그림 1] 플랫폼구성 [Fig. 1] Platform Configuration 4. 게임기술분석및게임구현 게임기술이란부분은포괄적인응용부분이라서정의하기가쉽지않다. 만약기반기술이라면 비교적명확한선과경계선이있으나게임기술은기반기술들을이용하는응용기술이므로그경 계가명확하지않다. [ 그림 2] 게임프로그래밍다이어그램 [Fig. 2] Game Programming Diagram ISSN: 2508 9099 JDAEM c 2017 NCISS 23

Design and Implementation for Multi-Platform Game Engine using the 2D Game 그래서게임기술은게임을제작하는데있어서필요한기술로정의할수있을것이다. 즉기술의영역을사용상의범위혹은필요상의범위로한정할수있을것이다. 게임에사용하는기술은여려가지상황에따라다를수있으나대략게임을직접적으로개발하는프로그래밍기술과게임에필요한그래픽이나사운드등을제작하는제작기술그리고그공정을관리하는관리기술이라고정의할수있다 [9]. 4.1 게임오브젝트구현 게임오브젝트란, 게임에등장하는캐릭터, 건물, 아이템등과같은객체들을의미한다. 게임오 브젝트시스템설정은변수 (Parameter), 작용장치 (System), 명령체계 (Command System), 상호작 용 (Interaction System) 으로나눌수있다. [ 표 2] 게임오프젝트 [Table 2] Game Object 게임오브젝트 (Game Object) 아군 적군 장애물 파티클 24 c 2017 NCISS

Journal of Digital Art Engineering & Multimedia Vol.4, No.1, June (2017) 4.2 게임프로그래밍구현 게임프로그래밍기술은기반학문인전산학과이를기반으로한응용기술, 언어와 Platform 기술등이있다. 게임시스템이복잡해짐에따라 Platform 은크게 H/W 와 S/W로구성되어있으며, 각단계를이어주는여러인터페이스로구성된다고할수있다. 아래에논문에서설계개발하고자하는프로그래밍소스일부를추가하였다. Player_Script using UnityEngine; using System.Collections; [System.Serializable] public class Boundary public float xmin, xmax, ymin, ymax; //Screen Boundary dimentions public class Player_Script : MonoBehaviour //Public Var public float speed; //Player Ship Speed public Boundary boundary; //make an Object from Class Boundary public GameObject shot;//fire Prefab public Transform shotspawn;//where the Fire Spawn public float firerate = 0.5F;//Fire Rate between Shots public GameObject Explosion;//Explosion Prefab //Private Var private float nextfire = 0.0F;//First fire & Next fire Time // Update is called once per frame void Update () //Excute When the Current Time is bigger than the nextfire time if (Time.time > nextfire) nextfire = Time.time + firerate; //Increment nextfire time with the current system time + firerate Instantiate (shot, shotspawn.position,shotspawn.rotation); //Instantiate fire shot ISSN: 2508 9099 JDAEM c 2017 NCISS 25

Design and Implementation for Multi-Platform Game Engine using the 2D Game GetComponent<AudioSource>().Play (); //Play Fire sound // FixedUpdate is called one per specific time void FixedUpdate () float movehorizontal = Input.GetAxis ("Horizontal"); //Get if Any Horizontal Keys pressed float movevertical = Input.GetAxis ("Vertical");//Get if Any Vertical Keys pressed Vector2 movement = new Vector2 (movehorizontal, movevertical); //Put them in a Vector2 Variable (x,y) GetComponent<Rigidbody2D>().velocity = movement * speed; //Add Velocity to the player ship rigidbody //Lock the position in the screen by putting a boundaries GetComponent<Rigidbody2D>().position = new Vector2 ( Mathf.Clamp (GetComponent<Rigidbody2D>().position.x, boundary.xmin, boundary.xmax), //X Mathf.Clamp (GetComponent<Rigidbody2D>().position.y, boundary.ymin, boundary.ymax) //Y ); //Called when the Trigger entered void OnTriggerEnter2D(Collider2D other) //Excute if the object tag was equal to one of these if(other.tag == "Enemy" other.tag == "Asteroid" other.tag == "EnemyShot") Instantiate (Explosion, transform.position, transform.rotation); //Instantiate Explosion SharedValues_Script.gameover = true //Trigger That its a GameOver Destroy(gameObject); //Destroy Player Ship Object 4.2 게임플레이 논문에서프로토타입으로설계및개발한멀티플랫폼게임엔진을이용한 2D 의실행화면은 아래와같다. 26 c 2017 NCISS

Journal of Digital Art Engineering & Multimedia Vol.4, No.1, June (2017) [ 그림 3] 게임플레이화면 [Fig. 3] Game play screen 5. 결론 멀티플랫폼 (Multi-Platform) 은게임이여러종류의플랫폼 (Platform) 에서구동한다는것을말한다. 여기서말하는플랫폼이란하드웨어 (Hardware) 가될수도있고, OS(Operation System) 가될수도있다. 현재출시된멀티플랫폼게임엔진중게임개발사에서많이사용중인엔진은 Unity3D 엔진이다. 본논문에서는 Unity3D 엔진을이용한게임을설계개발하고자한다. 유니티엔진은 C#, 자바스크립트, Boo로코드를작성할수있다는이유로 C# 과모노기반코드로개발되었다고알려져있었다. 실제로엔진의런타임부분은 C++ 과마이크로소프트닷넷 API, 에디터프로그램은 C# 으로개발되었다. 스크립트는유니티내에서바로수정은하지못하고 Mono Develop 등유니티를지원하는스크립트에디터에서수정할수있다. 이에본논문에서는멀티플랫폼게임엔진을이용한 2D 게임설계및구현을제안하고자한다. 이를통해서다양한멀티플랫폼기반의게임설계및개발에도움이되었으면한다. ISSN: 2508 9099 JDAEM c 2017 NCISS 27

Design and Implementation for Multi-Platform Game Engine using the 2D Game References [1] Bae, Jae-Hwan. "Design and Analysis of Creativity Based Infants Learning Game." Korea Computer Game Association Spring Conference, (2009):118-125. [2] Lee, Jeong-Gwan. "Theological basis of the education ministry in light of Calvin's doctrine of Education." Theological Criticism 21 (2008): 387-406. [3] Lee, Eun-Kyoo. "Research on Westminster Shorter Catechism as Curriculum for Christian Youth." The Korean Society for Practical Theology 26.2 (2011): 247-275. [4] Kwon, Ho. "Preaching the Heidelberg Catechism for the Reformed Church Education", The Society of Reformed Theology 28 (2013): 215-246. [5] You, Gi-Won and Yoon, Seon-Jeong. "Serious Game Design and Implementation for Kids." Journal of Korea Game Society 15.4 (2015): 19-28. [6] Park, Jong-Seok "Review of Christian educational computer games." Christian and Education 10 (2002): 46-68. [7] Park, Joong-Soo. "Design and Prototyping of a Bible Game in Smart Platform." Korean Society For Computer Game 26.4 (2013): 99-104. [8] Kwon, Yong-Man. "A Study on the Game Definition & Its Attributions." Korean Society For Computer Game, 27.4 (2014): 221-227. [9] Kim, Na-Young. "A research on good game factors for designing educational game at an early development stage." Korean Society For Computer Game 28.2 (2015): 53-61. 28 c 2017 NCISS