본문 바로가기

취미로 하는 게임코딩_gameCodingAsHobby/유니티와 C# 개념 정리_Concept Summary

유니티와 C# 개념 정리_001_유니티의 특징과 장점

이 카테고리에서는 유니티와 게임 제작에 필요한 C# (C Sharp, 씨샵) 스크립트에 관한 개념들을 정리한다.

 

먼저 유니티에 대한 특징 및 장점을 간단히 정리한다. 

 

1. 유니티는 게임 엔진이다.

게임 엔진은 게임 제작을 도와주는 프로그램이다.

유니티와 함께 Unreal(언리얼) 엔진이 대표적이다.

유명한 게임의 경우 독자적인 게임 엔진을 가지고 있다.

 

내가 대학교에 입학 할 즈음에 퍼스털 컴퓨터라고 하는 개인용 컴퓨터가 처음 나오기 시작했다.

현재의 컴퓨터 공학과에 해당하는 전산학과 학생들은 시커먼 화면에서 프로그래밍 코드만으로 게임을 만들곤 했다.

 

유니티는 코드만으로 만들던 게임을 그래픽 화면을 보면서 만들 수 있게 해 준다.

뿐만 아니라 전문가가 아니면 구현할 수 없는 각종 물리 역학, 3D, 애니메이션과 같은 기능을 단추 몇 개 눌러서 작동할 수 있도록 미리 만들어져 있다. 

 

2. 유니티는 편리하다.

 

유니티를 보면 알겠지만 프로그램 화면 구성이 잘 짜여져 있다는 느낌을 받는다.

일반적인 프로그램을 자주 다뤄본 사람이라면 전문적인 지식이 없어도 조금만 사용해보면 쉽게 접근할 수 있다.

이런 면은 일반인들이 사용하기에 그 만큼 부담이 없다는 것이므로 다른 장점들도 많겠지만 유니티가 큰 인기를 얻은 또 하나의 이유이기도 할 것이다.

 

3. 유니티는 멀티플랫폼을 지원한다.

유니티는 처음에 Mac 전용 3D 개발 도구로 시작했다고 한다.

그 후 2D, AR, VR 용 프로젝트도 만들 수 있게 되었다.

 

유니티는 멀티플랫폼을 지원한다.

즉, 윈도우즈나 MacOS(맥 오에스) 뿐만 아니라 웹, 앱, 콘솔(엑스박스, 플레이스테이션)에서 작동하는 프로젝트도 만들 수 있고 지원 영역을 계속 확장하고 있다.

 

유니티 만큼 많은 기기에 배포할 수 있는 게임 제작 엔진은 거의 없다고 한다.

이런 면이 유니티의 대표적인 장점이다.

게다가 개인적으로만 사용할 때는 무료로 사용할 수 있다.

나 같은 어른들의 취미 또는 장난감으로도 그 가치는 충분하다고 생각한다.

 

4. 유니티는 모듈형이다.

 

유니티로 게임 등을 제작할 때 마치 레고 블록으로 조립하듯이 각 부분을 조립하는 형태이다.

각 부분을 Game Object(게임 오브젝트)라고 부른다.

 

이 게임오브젝트에 어떤 기능을 부여하려면 Component(컴퍼넌트; 구성요소)라는 모듈 단위를 게임오브젝트에 연결하면 된다.

 

예를 들면 게임오브젝트에 물리 작용을 적용하고 싶으면 물리 컴퍼넌트를, 폭발하는 형태를 만들고 싶으면 Particle(파티클) 컴퍼넌트를, 소리가 나오게 하려면 사운드 컴퍼넌트를 연결하면 된다. 그리고 좀 더 세부적인 기능이 가능하게 하려면 C#(씨샵)이라는 프로그래밍 언어로 스크립트 코드를 작성해서 연결하면 된다. 이 스크립트도 역시 컴퍼넌트로 취급한다.

 

물리 기능, 사운드 기능, 입력 기능 등 어렵고 중요한 핵심 기능들은 유니티 엔진에 모두 만들어져 있고 알아서 기능하겠끔 만들어져 있기 때문에 우리는 신경 쓸 필요 별로 없고 연결만 잘 하면 된다.

 

이렇게 게임오브젝트에 연결되는 모든 것이 Component(컴퍼넌트)이며 이것들이 조화를 잘 이루면 게임이 제대로 작동할 것이다.

 

참고로 실제 게임이 작동하는 과정은 일반적인 프로그램이 내부적으로 실행되는 과정과 거의 유사하다.

그러므로 프로그래밍에 대한 지식이 있으면 그 만큼 유리할 것이다.

 

끝.

Wraven...