본문 바로가기

학교 수업/게임프로그래밍

게임프로그래밍 2주차

게임엔진이란?

  • 게임 엔진은 종합적인 컴퓨터 소프트웨어 시스템을 보다 손쉽게 개발할 수 있도록 도와주는 개발 툴
  • 게임엔진의 구성요소는 3D 그래픽을 위한 렌더링 시스템, 공간상의 충돌 감지, 현실적인 물리 효과를위한 물리 시스템, 정해진 절차를 지시하기 위한 스크립트 에디터, 게임의 가상공간을 만들기 위한 맵 에디터, 각종 개발 도구

 

게임엔진의 역할

  • 게임 제작을 위해서 필요한 핵심적인 성능을 발휘해 주도록 모아진 라이브러리의 모음
  • 게임 세계의 데이터를 관리하고 그 데이터를 화면에 렌더링 하는 일
  • 라이브러리 이외에도 개발을 지원하기 위한 여러 가지 툴과 스크립트 등을 내장

 

게임 엔진의 기능

  • 렌더링
  • 가시성 관리
  • 실세계 시뮬레이션(충돌처리, 물리)
  • 캐릭터 지원(모습, 움직임, 행위 및 의사 결정

 

게임 엔진의 구성

  • 렌더링
  • 물리
  • 인공지능
  • 사운드
  • 맵 에디터, 씬 그래프 에디터와 같은 툴

 


렌더링이란?

3차원상의 물체에 대한 기하학적 정보를 이용하여, 이를 2차원 스크린상의 이미지로 변환하는 것

 

렌더링 엔진이란?

렌더링 과정을 효과적으로 처리할 수 있는 엔진

 

렌더링 엔진의 구성

OpenGL또는 Direct3D와 같은 Low-Level 3D API를 이용하여 렌더링 엔징이 구성됨

 

렌더링 엔진의 필요성

일반인이 그래픽 API를 이용하는 것은 상당히 어렵다

따라서 Scene graph API라고 불리는 High-Level API를 통해 일반 사용자들이 비교적 쉽게 렌더링 할 수 있다.

 


 

유니티 인터페이스

유니티는 비주얼 툴이므로 프로그래밍 못지 않게 틀을 능숙하게 다루어야 함

 

Project뷰

Project Browser라고도 한다.

게임을 만들 때 필요한 모든 에셋을 모아 두는 곳

 

※에셋이란?

3D 모델링 오브젝트, 이미지 파일, C#파일, 사운드등의 리소스

 

Scene뷰

씬 뷰는 3차원 모델링등을 배치하여 스테이지를 디자인 하는 장소이다.

 

Hierarchy뷰

씬 뷰에 배치한 모든 객체들을 계층 구조로 나열해서 보여준다.

 

Inspector뷰

Scene뷰 또는 Hierarchy뷰에 선택된 게임 오브젝트의 속성을 보여주는 뷰

 

Game뷰

개발 진행 중에 게임을 실행해 미리 볼 수 있다.

Scene뷰에 설치된 메인 카메라의 시야로 렌더링 해서 보여준다.

 

Console뷰

디버깅 시 로그를 출력하는 뷰로서, 정보, 경고, 오류로 분류하여 메세지를 필터링 해서 보여준다.