기타 강좌

게임 엔진은 간단히 말해서 게임을 만들때 자주 사용하는 코드들을 모아둔 것을 말합니다.

보통은 라이브러리 형태로 제공되고, 코드를 만들어 앱을 만듭니다. 

물론 이렇게 하면 힘들기 때문에 게임 데이터 에디터가 추가 되고 다른 IDE와 비슷한 형상을 가지게 되었습니다.


그러면 게임 엔진은 뭐로 구성 되어 있을까요?

크게

1. 어플리케이션 레이어

2. 렌더링 엔진

3. 물리 엔진

4. 로직(비헤이비어, 액션 등등)

5. 리소스 관리자

6. 객체 관리자


6가지로 볼수 있습니다. 작게 나누면 백여가지 이상 세분화 할수 있고, 또 실제로도 상용 엔진들은 그렇게 되어 있습니다.


1번 어플리케이션 레이어의 역할은 간단합니다. 윈도우나 맥이나 리눅스나 플레이스테이션이나 엑스박스나 닌텐도나 아이폰이나 안드로이드나 윈도우 모바일이나 웹페이지나 어플리케이션을 실행할 곳은 다양합니다. 이쪽에서 입력을 받고, OS와의 메세지등을 받아서 게임이 돌수 있게 해줍니다. 

여러 APP Layer를 만들면 다양한 OS에서 실행 가능한 게임이 만들어지는겁니다.


2. 렌더링 엔진은 그래픽이라고 하죠. 화면에 정보를 표시해줍니다. 그림이나 메쉬, 폰트, 텍스트, 빛, 그림자, 안개, 파티클 시스템 등등 모든 보이는 무언가는 여기서 해주는겁니다.


3. 물리엔진은 물체의 움직임을 관리해줍니다. 속도, 가속도, 각속도, 각가속도, 운동량, 충격량, 충돌, 여러 제약조건 등등을 계산하고 여러가지 힘 도 시뮬레이션 해줍니다. 스프링은 어떻게 움직이는지, 부력은 어떻게 되는지, 현실의 물리 공식과 비슷한 방식으로 최대한 현실과 가깝게 표현하기 위한 엔진입니다. 


4. 로직은 게임의 논리를 말합니다. 주로 이쪽이 게임 기획과 많이 관련되어 있죠. 로직에는 AI 부터 시작해서 플레이어의 움직임, UI, UX 등등 대부분의 게임을 여기서 관리합니다. 상용게임엔진은 이 게임 로직부분만 만들면 대부분의 게임이 완성될수 있죠.


5. 리소스 관리자는 게임에 리소스를 관리합니다. 렌더링 엔진에서 그려야하는 모든것들과, 기타 사운드 이펙트, 등등까지 많은 데이터를 로딩하고 언로딩하는 역할을 합니다.


6. 객체 관리자. 게임 객체, 액터, 오브젝트, 인스턴스 등등으로 부르는 그것들을 관리해줍니다. 



게임엔진이 이렇게 구성되어 있다면 게임엔진은 어떻게 나뉠까요?


게임 엔진은 크게 DIY, MR, P&C 등으로 구분할수 있습니다.

Do It Yourself 엔진은 위 6가지중 진짜 최소한의 엔진만 주어지고, 나머지는 직접 코딩해야 하는 엔진을 말합니다.  

대부분의 경우 자체엔진이 이쪽에 속합니다.


Most Ready 엔진은 위 6가지의 대부분이 주어지고 게임 로직정도만 코딩하면 되는 정도입니다.

대부분의 상용엔진이 이쪽에 속하고 유명한걸로는 유니티엔진이랑 언리얼 엔진 등등이 있습니다.


Point & Click 엔진은 위 6가지중에 대부분을 구현시켜주고, 게임 로직마저도 제한되게 하는 경우입니다.

이쪽은 코딩의 필요성은 덜 중요하지만 그렇기 때문에 구현하기 힘든것들이 존재하죠.

알만툴이나, 유즈맵 생성기등등이 이쪽에 속합니다. 


다음 부터는 가장 간단한 게임 엔진을 만들어 보는 시간을 가지겠습니다.


List of Articles
분류 제목 글쓴이 날짜 조회 수
Vegas Pro 베가스 강좌 목록 아방스 2017.09.28 886
파이널컷X 파컷 강좌 목록 아방스 2017.06.18 757
기타 XNA로 게임만들기 - 1. 인사겸 소개 3 file 재훈군 2012.08.03 3116
기타 XNA로 게임만들기 - 2. 강의에 앞서 C#의 문법 1 file 재훈군 2012.08.03 4213
기타 XNA로 게임만들기 - 3. 자신만의 라이브러리를 만들자. 7 file 재훈군 2012.08.03 3454
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [3중문자] 1 제니스 2009.06.13 2352
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [include] 3 제니스 2009.06.13 3125
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [printf함수] file -Zennys- 2009.06.13 1878
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [scanf함수] -Zennys- 2009.06.13 2377
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [그외 입출력 함수] -Zennys- 2009.06.13 2764
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [문자열] 제니스 2009.06.13 2840
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [변수의 선언] -Zennys- 2009.06.13 2175
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [변수의 정의] 2 -Zennys- 2009.06.13 2753
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [변수의 종류] 2 -Zennys- 2009.06.13 2767
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [실수형 상수] 제니스 2009.06.13 3089
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [실수형 종류] 1 제니스 2009.06.13 3073
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [아스키(ASCII)코드] 1 제니스 2009.06.13 3643
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [열거형,정의] 제니스 2009.06.13 2558
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [정수의 길이] 1 제니스 2009.06.13 2395
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [정수의 정의] 4 제니스 2009.06.13 2664
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [정수형 상수] 제니스 2009.06.13 2989
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [컴파일러] 4 -Zennys- 2009.06.13 1980
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19