SlideShare a Scribd company logo
1 of 45
유니티 고급 과정
1. 컴퓨터란?
2. 게임 프로그램이란?
2. 게임 엔진의 종류
Morph Interactive, Inc.
Kiyoung Moon(문기영)
1. 컴퓨터란?
컴퓨터(computer)는 수식이나 논리적 언어로 표현된 계산을 수행하거나 작업
을 통제하는 기계다.
컴퓨터(computer)라는 명칭의 유래는 ‘계산하다’라는 뜻의 라틴어 ‘Computare’
에서 시작되었다. 컴퓨터는 태생 자체가 계산을 위해서 태어났고 그렇기 때
문에 수학과 밀접한 관련이 있다.
컴퓨터는 어디에서 시작했는가?
자연(Nature)
원래 존재했고 우리는 측정을 통해 이러한 존재가 있다는 것을 알 수 있다. 예를
들어 전압이 존재하고 이것들을 측정하는 것.
물리학 법칙(Physics Law)
측정을 통해 추상화를 시도하고 그로 인해서 어떠한 법칙을 발견한다. 예를 들
어 V = RI (전압 = 저항 * 전류)
집중 회로 추상화(Lumped Circuit Abstraction)
추상화를 통해 다이어그램으로 표현.
증폭기 (Amplifier)
아날로그, 디지털 세계
디지털 세계
인버터, AND, OR Gate 등등
아날로그 세계는 생략.
조합 논리
논리 회로들의 조합으로 얻을 수 있는 논리 회로.
한 개 이상의 입력, 논리 회로들의 조합으로 결과(output)을 얻는다.
예를 들어 4bit adder
조합 논리
실제 4비트 전가산기의 모습
시간
명령어 집합(Instruction Set)
x86, i4004
언어(Language)
프로그래밍 언어.
C
C++
Java
Basic
C#
등등...
소프트웨어 시스템(Software System)
운영체제(윈도우즈, 리눅스), 그리고?
게임
정리
자연
(Nature)
물리학
법칙
(Physics
Law)
회로 추
상화
디지털
세계
아날로그
세계
조합 논
리
명령어
집합
언어
소프트웨어
시스템
우리는 어디에 있는가?
자연
(Nature)
물리학
법칙
(Physics
Law)
회로 추
상화
디지털
세계
아날로그
세계
조합 논
리
명령어
집합
언어
소프트웨
어 시스
템
게임 프로그램이란?
게임은 컴퓨터에서 돌아가는 응용 프로그램의 한 종류다.
소프트웨어하드웨어
무엇이 필요한가?
컴퓨터
디스플레이
장치
입력 장치
사운드 출력
장치
게임 로직
미디어 데이
터
게임 프로그래머는 어느 영역에서 일하는가?
소프트웨어하드웨어
컴퓨터
디스플레이
장치
입력 장치
사운드 출력
장치
게임 로직
미디어 데이
터
2. 게임 프로그래밍이란?
1. 화면에 무언가를 그려주는 하드웨어는 무엇인가?
- 화면에 무언가를 그려주는 하드웨어에게 어떤 명령을 내려주면 될까?
- 그러한 명령어를 작성하면 화면에 어떤 결과가 나올까?
모니터를 구현해 보자.
물론 여기서 하드웨어를 직접 만들 순 없기 때문에 소프트웨어를 이용해 보자.
강연자가 만들어본 간단한 5x4짜리 모니터를 보도록 하자.
강연자가 만들어본 모니터는 가로 5칸, 세로 4칸으로 이
루어져 있는 모니터이다. 색상은 검정색, 하얀색 2가지
만 존재한다. 왼쪽 그림보다 더 이해하기 쉽게 하기 위
해 픽셀 마다 여유 공간을 주면 더 쉽게 이해 할 수 있다.
모니터를 확장 해볼까?
물론 1280 x 768같은 사이즈는 힘들다. (컴퓨터가 느려서) 100 x 100은?
더 가까이?
자신있는 사람이라면 더를 외쳐 보자.
결국은 점을 하나 찍는 작업
화면에 나타내기 위해 모니터에서 필요로 하는 데이터를 주고 모니터는 그 데
이터를 이용해서 화면에 그림을 그릴 뿐.
점만 찍을 수 있다면 무엇이든지 만들 수 있다.
그림을 그릴 수 있다면 이제 움직일 차례
화면에 지속적으로 그려주는 것은 모니터가 하는 일이고 게임 프로그래머가 할
일은 모니터가 화면에 무언가를 그리기 위해 필요로 하는 데이터를 넘겨 주
는 일.
이전에 보았던 화면에서 하얀색 점이 바로 움직이는 공.
화면을 이리저리 돌아다니면서 튕긴다.
게임 로직
게임 프로그래머는 게임 로직을 작성한다.
무언가를 움직여 주는 일, 충돌 검사, 반응, 사운드, 게임 프로그래머가
작성하는 거의 모든 코드.
점 하나 찍기도 나름 어려운 작업
왜냐하면 옛날에는 하드웨어 별로 점찍는 방법이 달랐기 때문.
즉, 그래픽 카드마다 필요로 하는 데이터의 모양이 다름.
당시에는 게임 개발사에서 하드웨어 별로 코드를 다 작성.
추상화
앞서 컴퓨터란? 에서 배웠듯이 추상화를 이용해서 인류가 얼마나 많은 진보를
이루어 왔는지 알 수 있음.
게임 엔진이라는 것도 추상화의 한 단계.
자연
(Nature)
물리학
법칙
(Physics
Law)
언어
소프트웨어
시스템
게임 엔진...
게임 엔진
게임 프로그래머가 하드웨어 혹은 밑바닥 작업에 많은 시간을 들이지 않고 게임 로직 작성에 힘
을 쓸 수 있도록 해줌.
3. 게임 엔진의 종류
게임 엔진이라는 것은 원래부터 있던 것이 아니라 게임의 규모가 커짐에 따라
제작하는데 시간이 오래 걸리고 난이도가 있는 경우 해결할 수 있는 사람이
많지 않았기 때문에 해당 게임 소스를 구매하는 방식으로 시작함.
자체 엔진
보통의 게임 개발사는 대부분 자체 게임 엔진을 개발해서 제작.
제작하는 게임만을 위해서 로직을 작성하거나(확장성 없음) 도구를 제작함.
하지만 시대가 변하면서 하나 이상의 게임을 위해 로직을 확장성있게 작성하고
도구를 작성함에 따라 게임 개발사 고유의 엔진으로써 활용이 됨.
퀘이크 엔진
퀘이크 엔진은 id software에서
1996년에 제작한 Quake를 위한
게임 엔진. 소스도 GPL 라이센스
로 공개 되어 있음.
퀘이크 엔진 다운로드 및 형태
다운로드
ftp://ftp.idsoftware.com/idstuff/source/q1source.zip
전체적으로 C언어를 사용했고 AI를 위해서 QuakeC라는 언어를 개발해서 사용했다. 앞서 살펴본 그
림에서 알 수 있듯이 굉장히 많은 FPS게임들이 퀘이크에서 시작된 것을 알 수 있다. 이 대단한 업
적은 id software의 존 카멕이라는 프로그래머가 소스를 공개함으로써 이루어졌다.
그 이후에도 id software에서 출시된 여러 게임들의 소스가 공개되어 있다. 둠, 울펜스타인, 퀘이크2,
퀘이크3 등등.
3D게임 프로그래머라면 한번은 소스를 봐주어야 할 정도로 가치가 있는 자료다.
예>
퀘이크 엔진? 소스?
퀘이크 엔진은 사실상 게임 전체 소스.
이후에 소개할 언리얼 엔진, 유니티와 같은 게임 엔진 형태는 아니다.
언리얼 엔진
에픽 (Epic)에서 만든 게임 엔진으로써 언리얼 시리즈에서 사용되었던 게임 엔
진. 기어즈 오브 워(Gears of war)에서도 사용됨.
한국에서 리니지, 리니지2 모두 언리얼 엔진을 사용함.
다운로드
http://www.unrealengine.com/en/udk/
언리얼 엔진과 다르게 UDK(Unreal Development Kit)도 존재하는데 이것은 언
리얼 엔진의 부분집합 정도로 생각하면 된다.
UDK를 사용하기 위해서는 언리얼 스크립트를 사용해야 한다. 이는 에픽에서
언리얼 엔진을 위해 만든 프로그래밍 언어이다.
언리얼 엔진 특징
보통 AAA타이틀이라고 부르는 대형 게임을 개발할 때 사용되는 엔진. 거의 모
든 장르 개발이 가능하다.
하지만 개발 언어를 언리얼 스크립트 혹은 네이티브 언어(C/C++)을 사용하기
때문에 진입 장벽이 높은 편.
자료가 많지 않은 편.
렌더웨어
렌더웨어(RenderWare : RW)는 Criterion software에서 만든 렌더링 엔진.
렌더웨어를 사용해서 만든 게임들의 리스트
http://en.wikipedia.org/wiki/List_of_RenderWare_games
지원되는 플랫폼도 많았고 API가 사용하기 쉬웠기 때문에 많이 사용함.
도구라는 개념 보다는 라이브러리 개념으로 사용.
이후에 EA에 인수.
게임 브리오
300여개의 게임 회사에서 사용된 게임 렌더링 엔진. David Eberly박사가 주축
이 되어 개발 되었음. (유명한 게임으로는 wow, 엘더스크롤에서 사용 되었음)
C++언어를 사용하며 요즘 게임 엔진과 같은 통합 툴을 제공하고 있진 않음. 렌
더링 엔진이기 때문에 게임 개발에 필요한 다른 시스템들은 존재하지 않음.
(가령 메모리 관리자)
렌더웨어와 마찬가지로 라이브러리 형태로써 사용됨. 현업 게임 개발자들의 공
통된 의견은 이 엔진의 작명법이 약간은 난해하기로 유명함.
http://www.geometrictools.com/
에버리 박사가 만든 사이트. 실제로 게임브리오의 초기 버전의 코드가 그대로
공개되어 있으며 책으로도 설명을 하고 있음.
C4엔진
http://www.terathon.com/
3D 게임 프로그래밍 & 컴퓨터 그래픽을 위한 수학의 저자.
렌더링 외에도 게임 개발을 위한 여러 도구, 라이브러리
를 모두 제공하고 있음.
C4엔진을 사용한 유명한 게임은 없지만 공부하기에
좋은 엔진.
마지막으로 유니티
유니티는 최근에 들어서 인기가 급상승 하고 있는 엔진인데 사실 유니티는 꽤(?)
오래된 엔진이다. 유니티는 다른 게임 엔진과 다르게 웹 브라우저에서도 돌
아간다는 특징이 있었는데 플래시의 개발 편의성과 보급률 때문에 유니티의
장점이 드러나지 않았다. 하지만 스마트폰 시대가 열림과 동시에 크로스 플
랫폼 엔진의 장점, 유니티 엔진의 편리성 때문에 큰 인기를 얻었고 C#,
JavaScript라는 언어를 개발 언어로 채택함에 따라 누구나 쉽게 응용 프로그
램 개발이 가능했다.
유니티는 게임 개발이 가능한 언어이지만 게임을 제외한 일반 응용 프로그램도
제작이 용이한 엔진이다.

More Related Content

What's hot

Unity 3d study #1
Unity 3d study #1Unity 3d study #1
Unity 3d study #1Hyunwoo Kim
 
2D RPG 개발 이론 + 티뮤리티 개발 포스트모템
2D RPG 개발 이론 + 티뮤리티 개발 포스트모템2D RPG 개발 이론 + 티뮤리티 개발 포스트모템
2D RPG 개발 이론 + 티뮤리티 개발 포스트모템WooSung Jeon
 
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발MinGeun Park
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술MinGeun Park
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & TrickMinGeun Park
 
Unity 3d study #2
Unity 3d study #2Unity 3d study #2
Unity 3d study #2Hyunwoo Kim
 
브릿지 Unity3D 기초 스터디 1회
브릿지 Unity3D 기초 스터디 1회브릿지 Unity3D 기초 스터디 1회
브릿지 Unity3D 기초 스터디 1회BridgeGames
 
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템강 민우
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Minsu Park
 
introduce unity3D and playmaker basic
introduce unity3D and playmaker basicintroduce unity3D and playmaker basic
introduce unity3D and playmaker basicquxn6
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍NDOORS
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기MinGeun Park
 
Next 게임 실전 프로젝트 슬라이드
Next 게임 실전 프로젝트 슬라이드Next 게임 실전 프로젝트 슬라이드
Next 게임 실전 프로젝트 슬라이드Nam Hyeonuk
 
게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴MinGeun Park
 
엔진, 툴, 그리고 스크립트
엔진, 툴, 그리고 스크립트엔진, 툴, 그리고 스크립트
엔진, 툴, 그리고 스크립트Kalito Viscra
 
유니티에서 MMD 사용해보기
유니티에서 MMD 사용해보기유니티에서 MMD 사용해보기
유니티에서 MMD 사용해보기flashscope
 
브릿지 Unity3D 기초 스터디 2회
브릿지 Unity3D 기초 스터디 2회브릿지 Unity3D 기초 스터디 2회
브릿지 Unity3D 기초 스터디 2회BridgeGames
 
브릿지 Unity3D 기초 스터디 3회
브릿지 Unity3D 기초 스터디 3회브릿지 Unity3D 기초 스터디 3회
브릿지 Unity3D 기초 스터디 3회BridgeGames
 

What's hot (20)

Unity 3d study #1
Unity 3d study #1Unity 3d study #1
Unity 3d study #1
 
Unity소개
Unity소개Unity소개
Unity소개
 
2D RPG 개발 이론 + 티뮤리티 개발 포스트모템
2D RPG 개발 이론 + 티뮤리티 개발 포스트모템2D RPG 개발 이론 + 티뮤리티 개발 포스트모템
2D RPG 개발 이론 + 티뮤리티 개발 포스트모템
 
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술
 
[PandoraCube] '게임메이커'에 대해 알아보자
[PandoraCube] '게임메이커'에 대해 알아보자[PandoraCube] '게임메이커'에 대해 알아보자
[PandoraCube] '게임메이커'에 대해 알아보자
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick
 
Unity 3d study #2
Unity 3d study #2Unity 3d study #2
Unity 3d study #2
 
브릿지 Unity3D 기초 스터디 1회
브릿지 Unity3D 기초 스터디 1회브릿지 Unity3D 기초 스터디 1회
브릿지 Unity3D 기초 스터디 1회
 
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 
introduce unity3D and playmaker basic
introduce unity3D and playmaker basicintroduce unity3D and playmaker basic
introduce unity3D and playmaker basic
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
 
Next 게임 실전 프로젝트 슬라이드
Next 게임 실전 프로젝트 슬라이드Next 게임 실전 프로젝트 슬라이드
Next 게임 실전 프로젝트 슬라이드
 
게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴
 
엔진, 툴, 그리고 스크립트
엔진, 툴, 그리고 스크립트엔진, 툴, 그리고 스크립트
엔진, 툴, 그리고 스크립트
 
유니티에서 MMD 사용해보기
유니티에서 MMD 사용해보기유니티에서 MMD 사용해보기
유니티에서 MMD 사용해보기
 
브릿지 Unity3D 기초 스터디 2회
브릿지 Unity3D 기초 스터디 2회브릿지 Unity3D 기초 스터디 2회
브릿지 Unity3D 기초 스터디 2회
 
브릿지 Unity3D 기초 스터디 3회
브릿지 Unity3D 기초 스터디 3회브릿지 Unity3D 기초 스터디 3회
브릿지 Unity3D 기초 스터디 3회
 

Viewers also liked

유니티 고급 과정 -2-
유니티 고급 과정 -2-유니티 고급 과정 -2-
유니티 고급 과정 -2-Kiyoung Moon
 
유니티 고급 과정 -4-
유니티 고급 과정 -4-유니티 고급 과정 -4-
유니티 고급 과정 -4-Kiyoung Moon
 
유니티 고급 과정 -3-
유니티 고급 과정 -3-유니티 고급 과정 -3-
유니티 고급 과정 -3-Kiyoung Moon
 
해커에게 전해들은 머신러닝 #4
해커에게 전해들은 머신러닝 #4해커에게 전해들은 머신러닝 #4
해커에게 전해들은 머신러닝 #4Haesun Park
 
딥 다크 던전 그린라이트 도전기
딥 다크 던전 그린라이트 도전기딥 다크 던전 그린라이트 도전기
딥 다크 던전 그린라이트 도전기Jungsoo Park
 
IEnumerator란 무엇인가?
IEnumerator란 무엇인가?IEnumerator란 무엇인가?
IEnumerator란 무엇인가?Jungsoo Park
 
48시간, 복셀로 표현하기
48시간, 복셀로 표현하기48시간, 복셀로 표현하기
48시간, 복셀로 표현하기Jungsoo Park
 
셰이더 만들기 실습
셰이더 만들기 실습셰이더 만들기 실습
셰이더 만들기 실습Jungsoo Park
 
유니티로 2D게임개발
유니티로 2D게임개발유니티로 2D게임개발
유니티로 2D게임개발GukHwan Ji
 
Laporan program bantuan langsung tunai
Laporan program bantuan langsung tunaiLaporan program bantuan langsung tunai
Laporan program bantuan langsung tunaiwardhanadany
 
Михаил Пьяных "Портал развития и продвижения профессиональных сообществ треть...
Михаил Пьяных "Портал развития и продвижения профессиональных сообществ треть...Михаил Пьяных "Портал развития и продвижения профессиональных сообществ треть...
Михаил Пьяных "Портал развития и продвижения профессиональных сообществ треть...Варвара Разумовская
 

Viewers also liked (20)

유니티 고급 과정 -2-
유니티 고급 과정 -2-유니티 고급 과정 -2-
유니티 고급 과정 -2-
 
유니티 고급 과정 -4-
유니티 고급 과정 -4-유니티 고급 과정 -4-
유니티 고급 과정 -4-
 
유니티 고급 과정 -3-
유니티 고급 과정 -3-유니티 고급 과정 -3-
유니티 고급 과정 -3-
 
해커에게 전해들은 머신러닝 #4
해커에게 전해들은 머신러닝 #4해커에게 전해들은 머신러닝 #4
해커에게 전해들은 머신러닝 #4
 
딥 다크 던전 그린라이트 도전기
딥 다크 던전 그린라이트 도전기딥 다크 던전 그린라이트 도전기
딥 다크 던전 그린라이트 도전기
 
IEnumerator란 무엇인가?
IEnumerator란 무엇인가?IEnumerator란 무엇인가?
IEnumerator란 무엇인가?
 
48시간, 복셀로 표현하기
48시간, 복셀로 표현하기48시간, 복셀로 표현하기
48시간, 복셀로 표현하기
 
셰이더 만들기 실습
셰이더 만들기 실습셰이더 만들기 실습
셰이더 만들기 실습
 
유니티로 2D게임개발
유니티로 2D게임개발유니티로 2D게임개발
유니티로 2D게임개발
 
Laporan program bantuan langsung tunai
Laporan program bantuan langsung tunaiLaporan program bantuan langsung tunai
Laporan program bantuan langsung tunai
 
Twish
TwishTwish
Twish
 
Anita rosiyanti
Anita rosiyantiAnita rosiyanti
Anita rosiyanti
 
Steve Jobs
Steve JobsSteve Jobs
Steve Jobs
 
Foda Cv
Foda CvFoda Cv
Foda Cv
 
Tolios
ToliosTolios
Tolios
 
Kowshikaa consultancy
Kowshikaa consultancyKowshikaa consultancy
Kowshikaa consultancy
 
Hello everyone
Hello everyoneHello everyone
Hello everyone
 
Михаил Пьяных "Портал развития и продвижения профессиональных сообществ треть...
Михаил Пьяных "Портал развития и продвижения профессиональных сообществ треть...Михаил Пьяных "Портал развития и продвижения профессиональных сообществ треть...
Михаил Пьяных "Портал развития и продвижения профессиональных сообществ треть...
 
Историја физике
Историја физикеИсторија физике
Историја физике
 
B-Line from Arcticom LLC
B-Line from Arcticom LLCB-Line from Arcticom LLC
B-Line from Arcticom LLC
 

Similar to 유니티 고급 과정 -1-

온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기Seungjae Lee
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법Chris Ohk
 
Age Of Empires II : Age Of Kings Postmotem
Age Of Empires II : Age Of Kings PostmotemAge Of Empires II : Age Of Kings Postmotem
Age Of Empires II : Age Of Kings PostmotemNam Hyeonuk
 
내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료SeungMin Yang
 
Engines, Tools, and Scripts
Engines, Tools, and ScriptsEngines, Tools, and Scripts
Engines, Tools, and ScriptsKalito Viscra
 
아이폰게임 인피니트블레이드
아이폰게임 인피니트블레이드아이폰게임 인피니트블레이드
아이폰게임 인피니트블레이드sketchout
 
Gamebryo LightSpeed (Korean)
Gamebryo LightSpeed (Korean)Gamebryo LightSpeed (Korean)
Gamebryo LightSpeed (Korean)Gamebryo
 
The스프라이트
The스프라이트The스프라이트
The스프라이트Hong-Gi Joe
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정funmeate
 
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for UnrealKyu-sung Choi
 
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여Dong Chan Shin
 
Igc2016 Technical Artist가 뭐하는 사람이에요?
Igc2016 Technical Artist가 뭐하는 사람이에요?Igc2016 Technical Artist가 뭐하는 사람이에요?
Igc2016 Technical Artist가 뭐하는 사람이에요?SangYun Yi
 
에코노베이션 3차 세미나 교안 1st Edition.~
에코노베이션 3차 세미나 교안 1st Edition.~에코노베이션 3차 세미나 교안 1st Edition.~
에코노베이션 3차 세미나 교안 1st Edition.~Lee Jungpyo
 
에코노베이션 3차 세미나 교안
에코노베이션 3차 세미나 교안에코노베이션 3차 세미나 교안
에코노베이션 3차 세미나 교안Lee Jungpyo
 
(NEMO-UX) 미래 컴퓨팅 환경
(NEMO-UX) 미래 컴퓨팅 환경(NEMO-UX) 미래 컴퓨팅 환경
(NEMO-UX) 미래 컴퓨팅 환경nemoux
 
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발흥배 최
 
넌프로그래머를 위한 서버/네트워크
넌프로그래머를 위한 서버/네트워크 넌프로그래머를 위한 서버/네트워크
넌프로그래머를 위한 서버/네트워크 Rhea Strike
 
피지컬 컴퓨팅 도구
피지컬 컴퓨팅 도구피지컬 컴퓨팅 도구
피지컬 컴퓨팅 도구Kisoon Eom
 

Similar to 유니티 고급 과정 -1- (20)

[PandoraCube] 게임 프로그래머로 성장하기
[PandoraCube] 게임 프로그래머로 성장하기[PandoraCube] 게임 프로그래머로 성장하기
[PandoraCube] 게임 프로그래머로 성장하기
 
이호민
이호민이호민
이호민
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법
 
Age Of Empires II : Age Of Kings Postmotem
Age Of Empires II : Age Of Kings PostmotemAge Of Empires II : Age Of Kings Postmotem
Age Of Empires II : Age Of Kings Postmotem
 
내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료
 
Engines, Tools, and Scripts
Engines, Tools, and ScriptsEngines, Tools, and Scripts
Engines, Tools, and Scripts
 
아이폰게임 인피니트블레이드
아이폰게임 인피니트블레이드아이폰게임 인피니트블레이드
아이폰게임 인피니트블레이드
 
Gamebryo LightSpeed (Korean)
Gamebryo LightSpeed (Korean)Gamebryo LightSpeed (Korean)
Gamebryo LightSpeed (Korean)
 
The스프라이트
The스프라이트The스프라이트
The스프라이트
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
 
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for Unreal
 
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
 
Igc2016 Technical Artist가 뭐하는 사람이에요?
Igc2016 Technical Artist가 뭐하는 사람이에요?Igc2016 Technical Artist가 뭐하는 사람이에요?
Igc2016 Technical Artist가 뭐하는 사람이에요?
 
에코노베이션 3차 세미나 교안 1st Edition.~
에코노베이션 3차 세미나 교안 1st Edition.~에코노베이션 3차 세미나 교안 1st Edition.~
에코노베이션 3차 세미나 교안 1st Edition.~
 
에코노베이션 3차 세미나 교안
에코노베이션 3차 세미나 교안에코노베이션 3차 세미나 교안
에코노베이션 3차 세미나 교안
 
(NEMO-UX) 미래 컴퓨팅 환경
(NEMO-UX) 미래 컴퓨팅 환경(NEMO-UX) 미래 컴퓨팅 환경
(NEMO-UX) 미래 컴퓨팅 환경
 
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
 
넌프로그래머를 위한 서버/네트워크
넌프로그래머를 위한 서버/네트워크 넌프로그래머를 위한 서버/네트워크
넌프로그래머를 위한 서버/네트워크
 
피지컬 컴퓨팅 도구
피지컬 컴퓨팅 도구피지컬 컴퓨팅 도구
피지컬 컴퓨팅 도구
 

More from Kiyoung Moon

Image generation compression using genetic algorithm
Image generation compression using genetic algorithmImage generation compression using genetic algorithm
Image generation compression using genetic algorithmKiyoung Moon
 
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기Kiyoung Moon
 
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅Kiyoung Moon
 
Cross-Platform Game Engine
Cross-Platform Game EngineCross-Platform Game Engine
Cross-Platform Game EngineKiyoung Moon
 
코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법Kiyoung Moon
 
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법Kiyoung Moon
 
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제Kiyoung Moon
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑Kiyoung Moon
 

More from Kiyoung Moon (8)

Image generation compression using genetic algorithm
Image generation compression using genetic algorithmImage generation compression using genetic algorithm
Image generation compression using genetic algorithm
 
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
 
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
 
Cross-Platform Game Engine
Cross-Platform Game EngineCross-Platform Game Engine
Cross-Platform Game Engine
 
코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법
 
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
 
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑
 

유니티 고급 과정 -1-

  • 1. 유니티 고급 과정 1. 컴퓨터란? 2. 게임 프로그램이란? 2. 게임 엔진의 종류 Morph Interactive, Inc. Kiyoung Moon(문기영)
  • 2. 1. 컴퓨터란? 컴퓨터(computer)는 수식이나 논리적 언어로 표현된 계산을 수행하거나 작업 을 통제하는 기계다. 컴퓨터(computer)라는 명칭의 유래는 ‘계산하다’라는 뜻의 라틴어 ‘Computare’ 에서 시작되었다. 컴퓨터는 태생 자체가 계산을 위해서 태어났고 그렇기 때 문에 수학과 밀접한 관련이 있다.
  • 3. 컴퓨터는 어디에서 시작했는가? 자연(Nature) 원래 존재했고 우리는 측정을 통해 이러한 존재가 있다는 것을 알 수 있다. 예를 들어 전압이 존재하고 이것들을 측정하는 것. 물리학 법칙(Physics Law) 측정을 통해 추상화를 시도하고 그로 인해서 어떠한 법칙을 발견한다. 예를 들 어 V = RI (전압 = 저항 * 전류)
  • 4. 집중 회로 추상화(Lumped Circuit Abstraction) 추상화를 통해 다이어그램으로 표현.
  • 6. 아날로그, 디지털 세계 디지털 세계 인버터, AND, OR Gate 등등 아날로그 세계는 생략.
  • 7. 조합 논리 논리 회로들의 조합으로 얻을 수 있는 논리 회로. 한 개 이상의 입력, 논리 회로들의 조합으로 결과(output)을 얻는다. 예를 들어 4bit adder
  • 8. 조합 논리 실제 4비트 전가산기의 모습
  • 14. 우리는 어디에 있는가? 자연 (Nature) 물리학 법칙 (Physics Law) 회로 추 상화 디지털 세계 아날로그 세계 조합 논 리 명령어 집합 언어 소프트웨 어 시스 템
  • 15. 게임 프로그램이란? 게임은 컴퓨터에서 돌아가는 응용 프로그램의 한 종류다.
  • 17. 게임 프로그래머는 어느 영역에서 일하는가? 소프트웨어하드웨어 컴퓨터 디스플레이 장치 입력 장치 사운드 출력 장치 게임 로직 미디어 데이 터
  • 18. 2. 게임 프로그래밍이란? 1. 화면에 무언가를 그려주는 하드웨어는 무엇인가? - 화면에 무언가를 그려주는 하드웨어에게 어떤 명령을 내려주면 될까? - 그러한 명령어를 작성하면 화면에 어떤 결과가 나올까?
  • 19. 모니터를 구현해 보자. 물론 여기서 하드웨어를 직접 만들 순 없기 때문에 소프트웨어를 이용해 보자. 강연자가 만들어본 간단한 5x4짜리 모니터를 보도록 하자. 강연자가 만들어본 모니터는 가로 5칸, 세로 4칸으로 이 루어져 있는 모니터이다. 색상은 검정색, 하얀색 2가지 만 존재한다. 왼쪽 그림보다 더 이해하기 쉽게 하기 위 해 픽셀 마다 여유 공간을 주면 더 쉽게 이해 할 수 있다.
  • 20.
  • 21. 모니터를 확장 해볼까? 물론 1280 x 768같은 사이즈는 힘들다. (컴퓨터가 느려서) 100 x 100은?
  • 24. 결국은 점을 하나 찍는 작업 화면에 나타내기 위해 모니터에서 필요로 하는 데이터를 주고 모니터는 그 데 이터를 이용해서 화면에 그림을 그릴 뿐. 점만 찍을 수 있다면 무엇이든지 만들 수 있다.
  • 25. 그림을 그릴 수 있다면 이제 움직일 차례 화면에 지속적으로 그려주는 것은 모니터가 하는 일이고 게임 프로그래머가 할 일은 모니터가 화면에 무언가를 그리기 위해 필요로 하는 데이터를 넘겨 주 는 일. 이전에 보았던 화면에서 하얀색 점이 바로 움직이는 공. 화면을 이리저리 돌아다니면서 튕긴다.
  • 26. 게임 로직 게임 프로그래머는 게임 로직을 작성한다. 무언가를 움직여 주는 일, 충돌 검사, 반응, 사운드, 게임 프로그래머가 작성하는 거의 모든 코드.
  • 27. 점 하나 찍기도 나름 어려운 작업 왜냐하면 옛날에는 하드웨어 별로 점찍는 방법이 달랐기 때문. 즉, 그래픽 카드마다 필요로 하는 데이터의 모양이 다름. 당시에는 게임 개발사에서 하드웨어 별로 코드를 다 작성.
  • 28. 추상화 앞서 컴퓨터란? 에서 배웠듯이 추상화를 이용해서 인류가 얼마나 많은 진보를 이루어 왔는지 알 수 있음. 게임 엔진이라는 것도 추상화의 한 단계.
  • 30. 게임 엔진 게임 프로그래머가 하드웨어 혹은 밑바닥 작업에 많은 시간을 들이지 않고 게임 로직 작성에 힘 을 쓸 수 있도록 해줌.
  • 31. 3. 게임 엔진의 종류 게임 엔진이라는 것은 원래부터 있던 것이 아니라 게임의 규모가 커짐에 따라 제작하는데 시간이 오래 걸리고 난이도가 있는 경우 해결할 수 있는 사람이 많지 않았기 때문에 해당 게임 소스를 구매하는 방식으로 시작함.
  • 32. 자체 엔진 보통의 게임 개발사는 대부분 자체 게임 엔진을 개발해서 제작. 제작하는 게임만을 위해서 로직을 작성하거나(확장성 없음) 도구를 제작함. 하지만 시대가 변하면서 하나 이상의 게임을 위해 로직을 확장성있게 작성하고 도구를 작성함에 따라 게임 개발사 고유의 엔진으로써 활용이 됨.
  • 33. 퀘이크 엔진 퀘이크 엔진은 id software에서 1996년에 제작한 Quake를 위한 게임 엔진. 소스도 GPL 라이센스 로 공개 되어 있음.
  • 34. 퀘이크 엔진 다운로드 및 형태 다운로드 ftp://ftp.idsoftware.com/idstuff/source/q1source.zip 전체적으로 C언어를 사용했고 AI를 위해서 QuakeC라는 언어를 개발해서 사용했다. 앞서 살펴본 그 림에서 알 수 있듯이 굉장히 많은 FPS게임들이 퀘이크에서 시작된 것을 알 수 있다. 이 대단한 업 적은 id software의 존 카멕이라는 프로그래머가 소스를 공개함으로써 이루어졌다. 그 이후에도 id software에서 출시된 여러 게임들의 소스가 공개되어 있다. 둠, 울펜스타인, 퀘이크2, 퀘이크3 등등. 3D게임 프로그래머라면 한번은 소스를 봐주어야 할 정도로 가치가 있는 자료다.
  • 35. 예>
  • 36. 퀘이크 엔진? 소스? 퀘이크 엔진은 사실상 게임 전체 소스. 이후에 소개할 언리얼 엔진, 유니티와 같은 게임 엔진 형태는 아니다.
  • 37. 언리얼 엔진 에픽 (Epic)에서 만든 게임 엔진으로써 언리얼 시리즈에서 사용되었던 게임 엔 진. 기어즈 오브 워(Gears of war)에서도 사용됨. 한국에서 리니지, 리니지2 모두 언리얼 엔진을 사용함.
  • 38. 다운로드 http://www.unrealengine.com/en/udk/ 언리얼 엔진과 다르게 UDK(Unreal Development Kit)도 존재하는데 이것은 언 리얼 엔진의 부분집합 정도로 생각하면 된다. UDK를 사용하기 위해서는 언리얼 스크립트를 사용해야 한다. 이는 에픽에서 언리얼 엔진을 위해 만든 프로그래밍 언어이다.
  • 39.
  • 40. 언리얼 엔진 특징 보통 AAA타이틀이라고 부르는 대형 게임을 개발할 때 사용되는 엔진. 거의 모 든 장르 개발이 가능하다. 하지만 개발 언어를 언리얼 스크립트 혹은 네이티브 언어(C/C++)을 사용하기 때문에 진입 장벽이 높은 편. 자료가 많지 않은 편.
  • 41. 렌더웨어 렌더웨어(RenderWare : RW)는 Criterion software에서 만든 렌더링 엔진. 렌더웨어를 사용해서 만든 게임들의 리스트 http://en.wikipedia.org/wiki/List_of_RenderWare_games 지원되는 플랫폼도 많았고 API가 사용하기 쉬웠기 때문에 많이 사용함. 도구라는 개념 보다는 라이브러리 개념으로 사용. 이후에 EA에 인수.
  • 42. 게임 브리오 300여개의 게임 회사에서 사용된 게임 렌더링 엔진. David Eberly박사가 주축 이 되어 개발 되었음. (유명한 게임으로는 wow, 엘더스크롤에서 사용 되었음) C++언어를 사용하며 요즘 게임 엔진과 같은 통합 툴을 제공하고 있진 않음. 렌 더링 엔진이기 때문에 게임 개발에 필요한 다른 시스템들은 존재하지 않음. (가령 메모리 관리자) 렌더웨어와 마찬가지로 라이브러리 형태로써 사용됨. 현업 게임 개발자들의 공 통된 의견은 이 엔진의 작명법이 약간은 난해하기로 유명함.
  • 43. http://www.geometrictools.com/ 에버리 박사가 만든 사이트. 실제로 게임브리오의 초기 버전의 코드가 그대로 공개되어 있으며 책으로도 설명을 하고 있음.
  • 44. C4엔진 http://www.terathon.com/ 3D 게임 프로그래밍 & 컴퓨터 그래픽을 위한 수학의 저자. 렌더링 외에도 게임 개발을 위한 여러 도구, 라이브러리 를 모두 제공하고 있음. C4엔진을 사용한 유명한 게임은 없지만 공부하기에 좋은 엔진.
  • 45. 마지막으로 유니티 유니티는 최근에 들어서 인기가 급상승 하고 있는 엔진인데 사실 유니티는 꽤(?) 오래된 엔진이다. 유니티는 다른 게임 엔진과 다르게 웹 브라우저에서도 돌 아간다는 특징이 있었는데 플래시의 개발 편의성과 보급률 때문에 유니티의 장점이 드러나지 않았다. 하지만 스마트폰 시대가 열림과 동시에 크로스 플 랫폼 엔진의 장점, 유니티 엔진의 편리성 때문에 큰 인기를 얻었고 C#, JavaScript라는 언어를 개발 언어로 채택함에 따라 누구나 쉽게 응용 프로그 램 개발이 가능했다. 유니티는 게임 개발이 가능한 언어이지만 게임을 제외한 일반 응용 프로그램도 제작이 용이한 엔진이다.