SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
devCAT Studio, NEXON
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
devCAT Studio, NEXON
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
Esun Kim
 

Was ist angesagt? (20)

조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 
d.ts 만들기
d.ts 만들기d.ts 만들기
d.ts 만들기
 
Android Developer JeongJaeyun
Android Developer JeongJaeyunAndroid Developer JeongJaeyun
Android Developer JeongJaeyun
 
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
 
Jpa 잘 (하는 척) 하기
Jpa 잘 (하는 척) 하기Jpa 잘 (하는 척) 하기
Jpa 잘 (하는 척) 하기
 
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
 
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
 
이재훈 개발 포트폴리오.pdf
이재훈 개발 포트폴리오.pdf이재훈 개발 포트폴리오.pdf
이재훈 개발 포트폴리오.pdf
 
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
나의 이직 이야기
나의 이직 이야기나의 이직 이야기
나의 이직 이야기
 
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
 
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인 [ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
[ NDC 14 ] 가죽 장화를 먹게 해주세요 - [ 야생의 땅 : 듀랑고 ] 의 자유도 높은 아이템 시스템 디자인
 
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
 
정해균 포트폴리오
정해균 포트폴리오정해균 포트폴리오
정해균 포트폴리오
 
프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
 
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - PerfornanceGCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
 

Ähnlich wie 포트폴리오 조동현

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
 

Ähnlich wie 포트폴리오 조동현 (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_렌더링엔진_제작과정
 
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시작하기
 
강좌 02 ARM 펌웨어 개발 환경 개요
강좌 02 ARM 펌웨어 개발 환경 개요강좌 02 ARM 펌웨어 개발 환경 개요
강좌 02 ARM 펌웨어 개발 환경 개요
 

포트폴리오 조동현