게임 엔진이란? 종류, 특징, 장점, 게임 개발에 필요한 기술에 대해 알아보자!
게임 엔진은 게임을 제작하는 데 필수적인 개발 환경이다. 즉, 게임을 구동시키는데 필요한 다양한 핵심 기능들을 담은 소프트웨어를 말한다. 게임 엔진이 게임 개발에 필요한 기능이나 프로그램, 소재 등을 정리하여 제공해 주므로 효율적이고 고품질의 게임을 제작할 수 있다.
게임 엔진에는 다양한 종류가 있으며, 상황에 따라 어떤 엔진을 선택해야 하는지가 다르다. 여기서는 게임 엔진이란 무엇인지, 게임 엔진의 종류, 게임 엔진을 사용해 개발할 때에 필요한 스킬 등에 대해 설명한다. 게임 엔진에 관한 기본적인 의문은 이 글에서 읽으면 해결될 것이다.
게임 엔진이란?
게임 엔진이란 간단히 말하면 “게임 개발에 필요한 요소가 담긴 개발 환경"을 말한다. 개발 콘솔이나 게임용 라이브러리, 소재, 기능 등이 정리되어 있다.
게임 엔진이 있으면 프로그래밍은 불필요하다는 것은 아니지만 필요한 기능이 갖추어져 있기 때문에 게임 개발을 효율적으로 진행할 수 있다.
게임 엔진의 필요성
게임 엔진이 필요한 이유는 게임 개발을 효율적으로 진행하고 고품질 게임을 개발하기 위함이다.
이미 설명했듯이, 게임 엔진은 게임 개발을 효율화하는 다양한 기능을 갖추고 있다. 플랫폼에 의존하지 않는 개발 환경이나, 그대로 게임 개발에 사용할 수 있는 부품이나 기능등을 들 수 있을 것이다.
게임을 개발할 때는 소비자 기계나 PC, 스마트폰 등 개발하고 싶은 플랫폼에 맞춰 개발할 필요가 있다. 그러나 게임 엔진이 있으면 플랫폼을 불문하고 개발이 가능하기 때문에 매우 편리하다.
또, 이미 완성되고 있는 부품이나 기능을 사용해 개발할 수 있기에, 처음부터 개발하는 것보다 개발 효율이 높아진다. 예를 들어, “3D캐릭터의 움직임” 등이 이미 완성되어 있어 가져다가 커스터마이즈를 하는 것만으로 그대로 사용할 수 있다. 게다가, 완성되어 있는 부분은 높은 품질이 보장된다. 그래서 게임 엔진을 사용하는 것이 효율적이고 고품질의 게임을 제작할 수 있다.
게임 엔진에 갖추어져 있는 기능을 처음부터 모두 모으는 것은 비용이나 번거롭지만, 게임 엔진만 있으면 필요한 것은 거의 제공을 해준다. 게임 엔진에는 유료도 있지만, 런닝 코스트가 걸려도 종합적으로 보면 코스트 퍼포먼스가 좋다고 말할 수 있다.
선택 방법 요령
다양한 게임 엔진이 있는 만큼 선택하는 방법에는 몇 가지 요령에 대해 설명한다.
비용
게임 엔진에는 비용이 전혀 들지 않는 것도 있고, 기본 기능은 무료지만 업그레이드 시 유료로 전환되는 유형도 있다. 또한, 일괄 구매형, 연 단위 등 러닝 비용이 발생하는 유형, 개발한 게임이 팔리면 수익에 따라 로열티가 발생하는 유형 등도 있다.
따라서, 어떤 유형이 좋은지, 비용이 얼마나 드는지 등을 잘 파악하는 것이 중요하다. 개인적으로 즐기고 싶은지, 게임을 팔고 싶은지, 어느 정도의 규모로 팔고 싶은지 등에 따라 적합한 유형이 달라진다. 향후 게임 엔진을 어떻게 사용할 것인지 생각해보고, 자신에게 맞는 비용의 게임 엔진을 선택해야 한다.
사용하는 프로그래밍 언어
게임 엔진에 따라 사용하는 프로그래밍 언어가 다르다. 예를 들어 Unity라면 C#, Unreal Engine이라면 C++ 등이다. 자신이 잘하는 언어나 앞으로 배우고자 하는 언어를 사용하는 게임 엔진을 선택하자.
한글 문서 및 정보량
게임 엔진은 해외에서 만든 것이 많아 한글 문서가 적은 경우가 많다. 그런 경우에는 한글 문서가 거의 없는 경우가 많아 곤란한 경우도 있을 것이다.
영어 문서를 보는데 문제가 없다면 크게 신경 쓸 필요는 없지만, 한글 문서를 원한다면 주의해야 한다. 사전에 인터넷에서 한글로 된 문서를 찾아보고, 정보량이 많은지 확인해보자.
플랫폼 지원 여부
자신이 만들고자 하는 플랫폼에 대응하는지 여부도 확인해야 한다. Windows에서 구동되는 게임을 만들고 싶은지, 스마트폰 앱 게임을 만들고 싶은지 등에 따라 적합한 게임 엔진을 선택해야 한다.
보급률
게임 엔진이 지금 얼마나 보급되고 있을지도 중요하다. 유니티와 같이 인기가 많고 사용자가 많은 게임 엔진이라면 안심할 수 있다. 하지만 사용자가 줄어드는 게임 엔진의 경우, 업데이트나 버전업 등이 거의 이루어지지 않아 불편함이 늘어날 수 있다. 현재 얼마나 보급되어 있는지, 앞으로도 계속 쓰일 것 같은지 등도 확인해야 한다.
게임 엔진의 종류와 특징
여기서는 몇 가지 게임 엔진의 특징에 대해 설명한다.
유니티(Unity)
Unity는 특히 스마트폰 앱 게임이나 인디 게임 개발에서 점유율이 높은 게임 엔진이다. 멀티 플랫폼을 지원하기 때문에 PC, 스마트폰, 콘솔 등 다양한 게임기에서의 개발이 가능하다.
구동이 가볍고 고사양의 컴퓨터가 없어도 사용할 수 있다는 점이 장점이다. 또한, 에셋 스토어에서 게임 개발에 도움이 되는 3D 모델 등의 소재나 플러그인 등의 기능을 필요에 따라 구매할 수 있는 것도 큰 장점이다. 게다가 한글 문서도 많이 제공되기 때문에 영어를 잘 못하는 사람들도 쉽게 사용할 수 있다.
이와 같이 장점이 많기 때문에 개인 개발자들에게도 널리 보급되고 있으며, 유니티에서 사용하는 프로그래밍 언어는 C# 인데, 다른 언어에 비해 비교적 쉽게 배울 수 있다. 이처럼 유니티는 장점이 매우 많으며, 치명적인 단점은 별로 찾아보기 힘들다.
유명 게임으로는 ‘포켓몬 고’, ‘슈퍼 마리오 런’ 등이 개발에 활용되었다.
요금
Unity 요금은 연간 요금으로 다음과 같다.
요금제 | PERSONAL | PRO | ENTERPRISE | INDUSTRY |
---|---|---|---|---|
요금 | 무료 | ₩2,550,000/년 | 조건에 따라 다름 | ₩6,187,500/년 |
참고: https://store.unity.com/ko/compare-plans
언리얼 엔진(Unreal Engine)
언리얼 엔진의 가장 큰 장점은 그래픽의 훌륭함이다. 아름다운 그래픽 표현이 가능하여, 개인도 웅장하고 아름다운 세계관과 캐릭터가 등장하는 게임을 개발할 수 있다. 마켓플레이스에서 3D 모델, 플러그인, 애니메이션을 구매할 수 있고, 자유롭게 커스터마이징하여 나만의 게임을 개발할 수 있다.
블루프린트 기능을 통해 프로그래밍 없이 개발이 가능한 것도 장점 중 하나다. 단, 게임 개발 내용에 따라 프로그래밍이 필요한 경우도 있는데, 이 경우 C++를 사용해야 한다. C++는 다른 언어보다 비교적 배우기가 어려운 편이다.
또 다른 단점으로는 그래픽 처리가 많기 때문에 높은 성능의 컴퓨터 사양이 요구된다는 점이다. 사양에 따라 동작이 무거워져 만족스러운 개발이 불가능할 수도 있으니, 템플릿을 실행해보고 확인해보시기 바란다.
요금
요금은 아래와 같으며, 분기별 3,000달러 이상 매출이 발생하면 3%의 로열티가 발생한다.
요금제 | 표준 라이센스 | 엔터프라이즈 프로그램 | 맞춤형 라이선스 |
---|---|---|---|
요금 | 무료 | 프로그램당 연 $1,500/년 | 조건에 따라 다름 |
참고: https://www.unrealengine.com/ko/license
GameMaker
GameMaker는 드래그 앤 드롭 등 시각적 조작으로 게임을 개발할 수 있어, 프로그래밍이 필요 없는 게임 엔진이다. 따라서 초보자도 쉽게 게임을 제작할 수 있다. 세세한 부분까지 신경 쓰고 싶다면 자체 언어인 ‘GML’을 사용해 고퀄리티의 게임을 개발하는 것도 가능하다. 2D 엔진이기 때문에 동작이 가볍고 개발하기 쉽다는 장점도 있다.
다만, 해외 게임 엔진으로 국내에서는 인지도가 높지 않아 한글 문서가 적다는 단점이 있다. 영어 문서는 충분하지만, 한글 문서를 원한다면 검색하거나 번역을 해야 한다.
요금
GameMaker의 요금은 다음과 같다.
요금제 | FREE | PROFESSIONAL | ENTERPRISE |
---|---|---|---|
요금 | 무료로 사용 | 한번 구매 US$99.9 | US$79.99/월, US$799.99/년 |
참고: https://gamemaker.io/ko-KR/get
Godot
Godot은 스팀에서 무료로 다운로드 가능한 오픈 소스 게임 엔진으로, 현재 전세계적으로 인기를 끌고 있는 게임 엔진이다. 완전 무료 오픈소스 소프트웨어이기 때문에 게임 개발에 돈을 쓰고 싶지 않은 분들에게 추천한다. 가볍고 빠른 동작으로 빠르게 개발을 진행할 수 있다. 번거로운 초기 설정이 거의 없고, 설치 후 바로 게임 개발을 시작할 수 있다.
Godot 엔진은 역시 2D, 3D 게임 제작을 지원하고 PC, 모바일 플랫폼도 지원한다. UI는 거의 한글화가 되어 있고, 공식 문서도 어느 정도는 한글 지원이 되어 공부하는데 큰 무리가 없을 것이다.
Godot은 오픈소스 소프트웨어로 MIT 라이선스로 공개되어 있다. 개인적으로 사용하는 것은 물론이고, 상업적으로 사용하는 경우에도 무료이다.
Cocos2d-x
Cocos2d-x도 Godot과 마찬가지로 완전 무료 오픈소스 소프트웨어이다. 예전에는 인기가 많아 많은 사용자가 사용했지만 지금은 사용자가 줄어드는 추세이다. 동작이 가볍고 요구되는 컴퓨터 사양도 낮기 때문에 사용하기 매우 쉽다.
유명한 게임으로는 ‘몬스터 스트라이크’, ‘LINE : 디즈니 툼툼’ 등이 개발되었다. 특히 스마트폰 앱 게임 개발에 강하고, 많은 게임이 개발되었다.
다만 한때는 인기가 많았지만, 지금은 인기가 시들해져 유니티 등에 이용자가 이동한 것으로 보인다. 2019년 12월 출시된 4.0을 마지막으로 메이저 업데이트나 기능 추가가 이뤄지지 않고 있다. 사실상 개발이 중단되었다. 그래서 앞으로 얼마나 오래 쓸 수 있을지 의문이 남는다.
Cocos2d-x는 오픈소스 소프트웨어이며, MIT 라이선스로 공개되었다. 개인적으로 사용하는 경우뿐만 아니라 상업적으로 사용하는 경우에도 무료이다.
PhyreEngine
PhyreEngine(파이어 엔진)은 Sony Computer Entertainment Europe에서 제작한 게임 엔진이다. 일반적인 게임 엔진과 달리 원래는 소니의 플레이 스테이션3용으로 게임과 그래픽을 제작하는 도구였다. 이후 Xbox360, Windows, iOS, Android, PSP, 플레이 스테이션4 등에도 지원되고 있다. 2018년경에는 닌텐도 스위치에도 지원되서 화제를 모았으며, PhyreEngine으로 제작된 게임으로는 ‘다크소울’, ‘드래곤 퀘스트 빌더즈’ 등이 있다.
PhyreEngine은 많은 게임 플랫폼에 대응하는 매우 우수한 게임 엔진이다. 다만 일반적으로 인지도가 높지 않기 때문에 유니티처럼 정보를 쉽게 얻을 수 있는 것은 아니다.
PhyreEngine은 개발하고자 하는 게임의 라이선스를 받은 개발자에게 무료로 제공된다.
게임 엔진을 사용하여 게임 개발을 할 때 필요한 기술
게임 엔진을 사용하여 게임 개발을 할 때 필요한 기술을 살펴보겠다.
게임 엔진을 다루는 기술
지금까지 설명한 바와 같이 게임 개발을 위해서는 게임 엔진의 존재가 필수적이다. 그리고 게임 엔진을 얼마나 잘 활용할 수 있느냐가 게임 개발의 핵심이 될 것이다.
게임 엔진에는 게임 개발에 필요한 모든 것이 담겨 있다. 그 기능과 소재를 활용하면 훌륭한 게임을 개발할 수 있다. 추가 부품 등을 구매하면 표현할 수 있는 게임의 세계가 더욱 넓어지지만, 어떤 것을 선택하고 어떻게 조립하느냐에 따라 게임의 완성도가 크게 달라진다.
좋은 게임을 개발하기 위해서는 게임 엔진에 대해 자세히 알고 잘 다룰 줄 알아야 한다.
프로그래밍 기술
제작하고자 하는 게임 내용에 큰 관심이 없다면, 게임 엔진의 기능만으로 게임을 개발할 수 있기 있으므로, 프로그래밍이 필요 없는 경우도 있다. 하지만 보다 고급 기능이나 정교하게 만들어진 게임을 개발할 때는 프로그래밍 기술이 필수적이다.
예를 들어, 유니티는 C#을, 언리얼 엔진은 C++를 사용한다. 게임 엔진마다 사용하는 프로그래밍 언어가 다르므로 게임 개발을 위해 프로그래밍 기술을 습득할 때는 주의해야 한다. 앞으로 프로그래밍을 배우고자 한다면, 먼저 게임 엔진을 선택한 후 언어를 선택하는 것을 추천한다.
3D 모델링 기술
3D 모델링은 3DCG(3차원 컴퓨터 그래픽)를 만들기 위해 그림과 같은 2D 데이터에서 3D 데이터를 생성하는 것으로, 3D 게임에는 많은 3D 캐릭터, 배경 등이 등장한다. 이러한 모든 3D 모델을 만들어야 하는데, 이는 3D 게임 개발에 필수적인 기술이다.
Unity 엔지니어의 경우, 업무에 대해서 소개한다!
그럼 유니티 엔지니어가 할 수 있는 다양한 일을 소개한다.
게임 개발
Unity를 사용하면 다양한 게임 개발을 할 수 있습니다. 멀티 플랫폼 대응을 하고 있기 때문에, 스마트폰 앱이나 PC, 컨슈머기 등 다양한 플랫폼에 대응한 게임을 만들 수 있습니다. 2D 게임도 3D 게임도 모든 종류의 게임도 개발할 수 있으며, 개발 중인 게임의 테스트 작업이나 수정 작업 등도 가능합니다. Unity를 잘 활용하면 게임 개발자로서 활약할 수 있는 장소가 펼쳐질 것입니다.
게임 개발
Unity를 사용하면 다양한 게임을 개발할 수 있다. 멀티 플랫폼을 지원하기 때문에 스마트폰 앱, PC, 콘솔 등 다양한 플랫폼에 대응하는 게임을 만들 수 있다. 2D 게임, 3D 게임, 모든 종류의 게임을 개발할 수 있고, 개발 중인 게임의 테스트 작업과 수정 작업도 가능하다. 게임 개발자로서 활동할 수 있는 영역이 넓어질 것이다.
클라이언트 사이드(Client Side) 개발
클라이언트 사이드 개발은 프런트 엔드(Front-End) 개발이라고도 하며, 사용자가 볼 수 있는 화면의 처리와 사용자가 조작이나 입력을 하는 부분의 처리를 개발하는 것을 말한다. 또한, 클라이언트와 서버와의 통신 처리도 개발한다.
클라이언트 사이드 개발은 사용자가 보는 부분을 개발하는 중요한 단계이다. 어떻게 하면 사용자가 이해하기 쉬운 시스템을 만들 수 있을지, 사용자의 만족도를 높이기 위해서는 어떻게 하면 좋을지 고민해야 한다.
서버 사이드(Server side) 개발
서버 사이드는 사용자 입장에서 볼 때 클라이언트 사이드보다 다른 쪽에 있는 부분이다. 백 엔드라고도 하며, 클라이언트 사이드에서 화면이나 조작 입력 등을 담당하는 반면, 서버 사이드에서는 프로그램 처리, 데이터베이스 처리, 다른 시스템과의 연동 등을 담당한다. 클라이언트 사이드에서 처리 요청이 오면 서버 사이드에서 처리하고 그 결과를 클라이언트 사이드에 돌려주는 역할을 한다.
서버 사이드 개발은 시스템의 근간을 개발하기 때문에 매우 중요한 부분이다. 시스템 설계 능력, 프로그래밍 능력 등이 요구된다.
데이터 분석
Unity 엔지니어가 개발에 필요한 데이터 분석을 하는 경우도 있다. 게임 개발에 필요한 데이터를 수집하고 분석하는 경우도 있고, 게임 외의 분야에서도 마찬가지이다.
데이터 활용이 주목받으면서 데이터 분석 업무의 중요성이 높아지고 있다. 대량의 처리 내역, 고객 정보 데이터 등을 분석하여 마케팅 전략에 활용하는 등 데이터 분석은 이제는 없어서는 안 될 필수 요소로 자리 잡았다. 앞으로도 데이터 분석 분야의 수요는 계속 늘어날 것이다.
테스트 및 수정
유니티 엔지니어는 테스트와 수정도 당연히 수행한다.
제작한 도구나 시스템의 테스트 항목을 추출하여 테스트를 진행한다. 버그가 발생하면 그 부분이나 영향을 받는 부분을 수정하고 다시 필요한 테스트를 해야 한다. 이렇듯 테스트와 수정은 소박한 일이지만, 도구 개발이나 시스템 개발에 없어서는 안 될 중요한 과정이다.
게임 이외의 개발
게임 엔진을 사용하지 않고도 게임 개발을 할 수 있을까?
게임 엔진을 사용하지 않고도 게임 개발은 가능하지만, 장점은 거의 없다고 봐도 무방하다. 게임 엔진 없이 게임을 개발하면 효율성이 떨어지고, 좋은 게임을 제작하기 어렵기 때문이다. 다만, 다음과 같은 경우에만 기존 게임엔진을 사용하지 않고 개발하는 경우도 있는 것 같다.
-
게임 엔진 자체를 회사에서 자체적으로 개발하여 대표작에 활용하는 경우
- 대기업 게임 회사처럼 기술력이나 체력이 있는 경우, 게임 엔진 자체를 개발하는 경우도 있다. 이렇게 만든 게임 엔진이 게임 개발의 차세대 표준이 되면 라이선스 비용 등으로 새로운 수익을 창출할 수 있고, 회사 자체의 기술력을 업계에 어필할 수 있다. 강점을 알리기 위한 광고탑으로, 개발한 게임 엔진만을 활용한 타이틀을 개발하는 경우도 있을 것이다.
-
기존 게임 엔진으로 표현하기 어려운 장르의 게임을 개발할 경우
- 지금의 게임 엔진으로 기초를 만들 수 없는 장르의 게임은 거의 없지만, 향후 독창적인 게임을 만들 때 기존 게임엔진으로 전혀 보완할 수 없는 경우가 발생할 가능성도 없지 않을 것이다.
게임 엔진에는 게임을 개발하기 위한 개발 콘솔, 라이브러리, 소재 등 다양한 요소가 담겨 있다. 예를 들어, ‘게임을 컨트롤러로 조작하기 위한 처리’는 라이브러리에 포함되어 있기 때문에 개발자는 그 처리 내용에 대해 고민할 필요가 없다. 그냥 ‘게임을 컨트롤러로 조작하기 위한 처리’라는 부품을 사용하면 된다. 하지만 게임 엔진이 없다면 ‘게임을 컨트롤러로 조작하기 위한 처리’를 처음부터 개발해야 한다. 기발한 조작법을 만들고 싶다면 몰라도, 그런 건 너무 비효율적이다.
억지로 게임 엔진 없이 개발할 수도 있다. 하지만 대기업과 같은 기술력과 체력이 없다면 ‘게임 엔진을 이용하면 생략할 수 있는 과정을 개발’하는 데 예산이 투입되어 게임 품질에 영향을 미칠 수 있다. 또한, 모든 부품을 처음부터 만들어야 한다는 것은 만드는 부분이 많기 때문에 버그가 발생할 가능성도 높다고 할 수 있다.
이처럼 게임 엔진 없이 게임을 만드는 것은 낭비가 많고 장점이 적기 때문에 추천할 수 없다. 게임을 개발할 때는 만들고자 하는 게임에 맞는 게임 엔진을 선택해 사용해야 한다.
요약
여기에서는 게임 엔진이란 무엇인지, 게임 엔진의 종류, 게임 엔진으로 사용하여 개발할 때 필요한 기술 등에 대해 알아보았다.
게임 엔진은 게임 개발에 필수적인 요소로, 도입하면 게임 개발을 효율적으로 진행할 수 있다. 게임 엔진에는 여러 종류가 있으며, 각각의 특징과 적합한 게임이 다르다. 자신이 어떤 게임을 개발하고 싶은지 잘 생각해보고 자신에게 맞는 게임엔진을 찾아보시기 바란다.