SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
2D EngineProject
WindowConsole GameEngine Project | Jo Dong Hyun
ShootingGame
Index
Shooting Game
C++ Engine
WindowConsole 2D GameEngine | Jo Dong Hyun
00
Intro
무엇을 만들었는가
Intro
01
유니티3D 스타일로 만들어진 C++ 게임엔진
C++ GameEngine
WindowConsole 2D GameEngine | Jo Dong Hyun
01
C++ 언어 기반 게임 완성게임 소스 코딩
Game Engine Source Coding Release Game
개요
Intro
콘솔창 출력의 게임 엔진
WindowConsole 2D GameEngine | Jo Dong Hyun
01
엔진 개발
소스 코딩 게임 개발
Game Engine
Source Coding Release Game
디테일한 구성
Base : C++
Reference : WinAPI Console
Format : Lib
Engine Style : Unity 3D
Base : C++
Method : Main()
Format : cpp
Genre : Realtime Shooting
PlayTime : 10 min
Format : WindowConsole
Intro
WindowConsole 2D GameEngine | Jo Dong Hyun
C++ Engine
02
cmd를 이용한 엔진 개발
엔진의 C++ 코드 작성
Engine Detail
FlowUML Detail
WindowConsole 2D GameEngine | Jo Dong Hyun
UML 구성
FlowUML
Application
- cmptList: Component[]
+ GetComponent()
GameMain
- objList : Vector<GameObject*>
+ InputObj : void
+ ObjFind : GameObject*
+ Run : void
GameObject
Component
UI_Panel
Times
- deltaTime
- timeScale
Vector2
- x, y: int
Rect
- Right, Top, Left, Bottom: int
Input
+ GetAxis(): int
Resource
+ Init()
+ Release()
UI_Text
UI_Button
Collider
- rect: Rect
Animator
- sprite: char***[]
- color: char***[]
- aniTime: float[]
ConsoleRenderer
- sprite: char***
- size: Vector2
- pivot: Vector2
- sprite: char***
- size: Vector2
+ OnClick(): void
- sprite: char***
- size: Vector2
- sprite: char***
- size: Vector2
- color: int**
+ Create(): void
+ Draw(): void
Buffer
- position : Vector2
Scene
+ Instantiate : GameObject*
- gameOject : GameObject*
- Vector : Vector2
- Layer : int
+ SetActive: void
gameObject
GetComponent()
+ Start : void
+ Update : void
+ OnEnable: void
+ OnDisable: void
+ Start : void
+ Update : void
- size: Vector2
+ ResetBuff: void
+ PrintBuff: void
- buff: char***
- size: Vector2
- position: Vector2
엔진의 핵심
게임이 업데이트되는 곳
게임의 구성 요소들
Scene은 GameObject들로 구성
게임을 이루는 시스템적 요소들
입출력, 시간, 벡터 등
윈도우콘솔 출력버퍼
더블버퍼링
각종 기능들
GameObject에 붙혀서 사용
C++ Engine
02
Detail
WindowConsole 2D GameEngine | Jo Dong Hyun
게임오브젝트들 설정
컴포넌트들 설정
장면(Scene) 설정 엔진 작동(Run)
버퍼(Buffer) 설정
Scene
Buffer
main()
SceneGameObject
Component
Component
Component
Buffer
엔진의 작동 과정
FlowUML
Run
C++ Engine
02
Detail
GameMain
WindowConsole 2D GameEngine | Jo Dong Hyun
Init()
Update()
Start()
SetScene()SetName()
Instantiate()
Instantiate()
AddComponent()
SetComponent()
SetBuffer()
Screen Screen
GameMainmain()Scene
GameObject Buffer
각 클래스의 멤버함수들
FlowUML
Run()
SceneInstantiate()
02
C++ Engine Detail
Run()
WindowConsole 2D GameEngine | Jo Dong Hyun
GameMain의 흐름
UML
Title Scene
End Of Game
Tutorial Scene
Play Scene
START
END
Run()
LoadScene()
EOG
Instantiate() : 게임오브젝트 생성
SetBuffer() : 버퍼 생성
AddScene() : 씬 추가 및 설정
실행 간격 : FPS
Init() : 오브젝트 초기화
반복 업데이트 : Update()
씬 불러오기 : LoadScene()
C++ Engine
02
GameMain
Flow Detail
WindowConsole 2D GameEngine | Jo Dong Hyun
출력 공간(버퍼)를 설정
main() 함수 코딩
Flow DetailUML
main()
Scene 설정
SortingLayer, Input 등 시스템 설정
GameMain: Update() 실행
C++ Engine
02
WindowConsole 2D GameEngine | Jo Dong Hyun
Scene과 GameObject 설정
FlowUML
Scene.cpp GameObject.h
GameObject들 인스턴스화
C++ Engine Detail
02
WindowConsole 2D GameEngine | Jo Dong Hyun
게임오브젝트의 구성
FlowUML
GameObject.cpp
기본값 설정
저장된 Component 리스트
Component 추가/관리
GameObject 켜기/끄기
오브젝트 회전
Variable
Method
Vector2 position
bool isActive
int angle
int LengthX
int LengthY
Component*[] componentList
Resource*[] resourceList
Init()
AddComponent()
GetComponent()
SetActive()
GetActive()
Rotation()
Release()
컴포넌트를 추가
Component 기본값 설정
C++ Engine Detail
02
WindowConsole 2D GameEngine | Jo Dong Hyun
ConsoleRenderer
Animator
Collider
UI_Button
UI_Panel
UI_Text
연결된 Component 리스트
직접 작성하는 Component(Script)
게임오브젝트 내 컴퍼넌트들
In GameObject
FlowUML
AddComponent()
컴포넌트를 추가
C++ Engine Detail
02
Script
Virtual 함수
Component
WindowConsole 2D GameEngine | Jo Dong Hyun
컴퍼넌트(스크립트)의 구성
FlowUML
Component(Script)
인스턴스화
컴포넌트 가져오기
오브젝트 회전
GameObject 호출
초기화
업데이트(반복)
오브젝트 활성화 / 비활성화
메모리 해제
Variable
Virtual Method
Method
bool isActive
Instantiate()
Instantiate()
Start()
Update()
OnEnable()
OnDisable()
GetCompoent()
Rotation()
Release()
bool isRenderer
bool isUI
GameObject* gameObject
Virtual 함수
Component의 멤버함수
GameObject의 멤버함수
C++ Engine Detail
02
WindowConsole 2D GameEngine | Jo Dong Hyun
화면(cmd) 출력담당
UI 등 기타 컴퍼넌트들
충돌판정 체크 애니메이션 설정
디폴트 컴퍼넌트들
FlowUML
ConsoleRenerer
UI_Panel
UI_Text
UI_Button
. . .
Collider Animator
C++ Engine Detail
02
WindowConsole 2D GameEngine | Jo Dong Hyun
2차원 위치 / 좌표값 아스키 문자 이미지 시간에 관한 설정
시스템적인 요소들
FlowUML
Vector2 / Rect Resource Time
키보드 입력
Input
C++ Engine Detail
02
WindowConsole 2D GameEngine | Jo Dong Hyun
03
Shooting Game
Cmd를 이용한 엔진 개발
엔진구조를 사용, 실시간(초당2프레임)으로 입력과 출력을 처리하는 윷놀이 게임
ProtoType
Text Buffer
Image Buffer
WindowConsole 2D GameEngine | Jo Dong Hyun
Shooting Game
03
콘솔창을 활용한 2D 슈팅 게임
SPACE - S
WindowConsole 2D GameEngine | Jo Dong Hyun
Shooting Game
03
Scene 구성
Start: Tutroial로 이동
Title Scene Tutorial Scene Play Scene
Load: Play로 이동
5가지 스탭을 통한 연습
보스를 격파하면 클리어
적의 공격에 맞서서 보스까지 진행
WindowConsole 2D GameEngine | Jo Dong Hyun
03
ConsoleRenderer
Animator
Title Object
UI Button
[ nowFrame / maximum ]
UI Text
Title UI
FrameRate
Shooting Game
Title Scene
컴퍼넌트 리스트
게임오브젝트 명칭
Title Scene 구성
WindowConsole 2D GameEngine | Jo Dong Hyun
03
ConsoleRenderer
Animator
Collier
PlayUIState(Script)
Play UI
UI Text
ConsoleRenerer
UI Panel
TextUI
PlayerStateUI
Shooting Game
Tutorial Scene
Tutorial Scene 구성
WindowConsole 2D GameEngine | Jo Dong Hyun
03
ConsoleRenderer
Animator
BoxCollier
Weapon Effect
Renderer
BoxCollider
Animator
EnemyMove(Script)
Renderer
BoxCollider
Animator
PlayerState(Script)
PlayerWeapon(Script)
Enemy
Shooting Game
Player
Play Scene
Play Scene 구성
WindowConsole 2D GameEngine | Jo Dong Hyun
03
TimeScale : 0
Time
Horizontal : ◀▶
Vertical : ▲▼
QWER
FPS : 30
Vector2( 6, 10 )
Input
Shooting Game
UI Buffer
FPS : 0
Buffer
Position
Right
Vector
Pause Mode
Play Scene 구성
WindowConsole 2D GameEngine | Jo Dong Hyun
03
ConsoleRenderer
Animator
BoxCollier
Hit BoxWeaponState(Script)
UI_Panel
UI_Text
Animator
Shield Activated
Shooting Game
UI_Panel
Animator
Boss Lifebar
Status UI
Play Scene
보스 배틀
WindowConsole 2D GameEngine | Jo Dong Hyun
Thank you

Mais conteúdo relacionado

Mais procurados

Тем №3 Обстеження хворих з патологією легень _Опитування,Огляд.Пальпація .pdf
Тем №3 Обстеження хворих з патологією легень _Опитування,Огляд.Пальпація .pdfТем №3 Обстеження хворих з патологією легень _Опитування,Огляд.Пальпація .pdf
Тем №3 Обстеження хворих з патологією легень _Опитування,Огляд.Пальпація .pdf
Сергей Николаевич
 
операции на шее (стомат)
операции на шее (стомат)операции на шее (стомат)
операции на шее (стомат)
nizhgma.ru
 
포트폴리오 오경원
포트폴리오 오경원포트폴리오 오경원
포트폴리오 오경원
Sio Oh
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들
Jubok Kim
 
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
devCAT Studio, NEXON
 

Mais procurados (17)

Тем №3 Обстеження хворих з патологією легень _Опитування,Огляд.Пальпація .pdf
Тем №3 Обстеження хворих з патологією легень _Опитування,Огляд.Пальпація .pdfТем №3 Обстеження хворих з патологією легень _Опитування,Огляд.Пальпація .pdf
Тем №3 Обстеження хворих з патологією легень _Опитування,Огляд.Пальпація .pdf
 
2020-2 자바 텀프로젝트 중간보고서
2020-2 자바 텀프로젝트 중간보고서2020-2 자바 텀프로젝트 중간보고서
2020-2 자바 텀프로젝트 중간보고서
 
game development
game  developmentgame  development
game development
 
Game object models - Game Engine Architecture
Game object models - Game Engine ArchitectureGame object models - Game Engine Architecture
Game object models - Game Engine Architecture
 
операции на шее (стомат)
операции на шее (стомат)операции на шее (стомат)
операции на шее (стомат)
 
[134]병리 AI Product 개발을 위한 데이터 관리 및 좌충우돌 삽질기
[134]병리 AI Product 개발을 위한 데이터 관리 및 좌충우돌 삽질기[134]병리 AI Product 개발을 위한 데이터 관리 및 좌충우돌 삽질기
[134]병리 AI Product 개발을 위한 데이터 관리 및 좌충우돌 삽질기
 
포트폴리오 오경원
포트폴리오 오경원포트폴리오 오경원
포트폴리오 오경원
 
컴퓨터과학개론 2014-2018년 기말시험 기출문제
컴퓨터과학개론 2014-2018년 기말시험 기출문제컴퓨터과학개론 2014-2018년 기말시험 기출문제
컴퓨터과학개론 2014-2018년 기말시험 기출문제
 
хірургія дихальної системи
хірургія дихальної системихірургія дихальної системи
хірургія дихальної системи
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들
 
1인개발자가되기전알아야할것들
1인개발자가되기전알아야할것들1인개발자가되기전알아야할것들
1인개발자가되기전알아야할것들
 
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
 
Інформатика 8 клас. Морзе Н.В.
Інформатика 8 клас. Морзе Н.В.Інформатика 8 клас. Морзе Н.В.
Інформатика 8 клас. Морзе Н.В.
 
Урок 1
Урок 1Урок 1
Урок 1
 
[NDC 14] 게임 개발사에서 개발PM(팀장)의 역할과 책임-김영웅
[NDC 14] 게임 개발사에서 개발PM(팀장)의 역할과 책임-김영웅[NDC 14] 게임 개발사에서 개발PM(팀장)의 역할과 책임-김영웅
[NDC 14] 게임 개발사에서 개발PM(팀장)의 역할과 책임-김영웅
 
게임 개발자가 되고 싶어요
게임 개발자가 되고 싶어요게임 개발자가 되고 싶어요
게임 개발자가 되고 싶어요
 
Fun QA_재미지수_GENII
Fun QA_재미지수_GENIIFun QA_재미지수_GENII
Fun QA_재미지수_GENII
 

Semelhante a 포트폴리오 조동현

Engine project
Engine projectEngine project
Engine project
talron
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
funmeate
 
응컴_Term_Project_아이디어붐제출.pptx
응컴_Term_Project_아이디어붐제출.pptx응컴_Term_Project_아이디어붐제출.pptx
응컴_Term_Project_아이디어붐제출.pptx
ssuser506c05
 
증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임
Junhee Han
 

Semelhante a 포트폴리오 조동현 (20)

Unity 3d study #1
Unity 3d study #1Unity 3d study #1
Unity 3d study #1
 
Gamebryo LightSpeed (Korean)
Gamebryo LightSpeed (Korean)Gamebryo LightSpeed (Korean)
Gamebryo LightSpeed (Korean)
 
동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능
 
Ccx03.cocos builder
Ccx03.cocos builderCcx03.cocos builder
Ccx03.cocos builder
 
Engine project
Engine projectEngine project
Engine project
 
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
 
Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)
 
코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법
 
트레블헌터 개발기획서
트레블헌터 개발기획서트레블헌터 개발기획서
트레블헌터 개발기획서
 
Html5+js with game engine cocos2d-html5 분석 @KGC2012
Html5+js with game engine   cocos2d-html5 분석 @KGC2012Html5+js with game engine   cocos2d-html5 분석 @KGC2012
Html5+js with game engine cocos2d-html5 분석 @KGC2012
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
 
Java term project final ppt
Java term project final pptJava term project final ppt
Java term project final ppt
 
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
 
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
 
Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나
 
브릿지 Unity3D 기초 스터디 2회
브릿지 Unity3D 기초 스터디 2회브릿지 Unity3D 기초 스터디 2회
브릿지 Unity3D 기초 스터디 2회
 
응컴_Term_Project_아이디어붐제출.pptx
응컴_Term_Project_아이디어붐제출.pptx응컴_Term_Project_아이디어붐제출.pptx
응컴_Term_Project_아이디어붐제출.pptx
 
증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임
 
Unity시작하기
Unity시작하기Unity시작하기
Unity시작하기
 

포트폴리오 조동현