생초보인데 인디게임 만들고 싶어요
1. 목표를 정해라
어떤 종류의 게임을 만들고 싶은지 정해라. 2D인지 3D인지 정하고, 어떤 플랫폼(PC, 모바일, 콘솔), 어떤 장르(런게임, RPG, 퍼즐 등)인지 정해라. 그리고 예로 들 수 있는 비슷한 종류의 유명한 게임이라도 찾아라(플래피 버드, 2048 등)
그냥 게임 개발하고 싶다고 질문글 올리는 것보다, 구체적인 목표를 적어서 질문글을 올리면 제대로 된 답변이 달릴 확률이 높아진다. 그리고 인터넷을 검색할때도 필요한 정보 찾기가 쉬워진다.
그리고 왠만하면 처음 목표는 낮게 잡는게 좋다. 처음부터 스토리가 좋고 플레이타임이 긴 RPG를 만드는 것보다 습작으로 간단한 런게임이나 퍼즐게임을 만들어서 실력을 쌓고 규모가 좀 더 큰 게임 개발을 시작하는게 좋다.
2. 게임을 만들기 위해서는 사람이 몇 명 필요한가?
만들려고 하는 게임의 종류에 따라서 다르다. 위에서 정했던 목표와 비슷한 종류의 유명한 게임을 몇 명이 만들었는지 인터넷에 검색해보면 도움이 된다(아니면 게임 크래딧을 보거나)
예를 들면 위쳐3(스토리가 좋고 플레이타임이 긴 RPG)는 인터넷에 검색해보니까 “위쳐3는 전문가들로 구성된 개발팀이 3.5년 동안 개발했다. 240명의 내부 직원을 비롯해 전 세계적으로 1천500명의 사람들이 위쳐3 제작에 참여했다.” 라고 나온다.
플래피버드 같은 게임은 게임엔진 튜토리얼에서 만드는 방법을 설명할 정도로 단순해서 1명만 있어도 만들 수 있다.
3. 프로그래밍, 그래픽, 기획, 사운드
게임 개발에 필요한 역할을 큰 분류로 나누면 이렇게 4개가 있다.
1인 개발이라면 이것을 전부 혼자서 해야하고, 인디팀이라면 1개만 할 줄 알아도 충분할 수 있다(물론 팀 상황에 따라서 다르다. 소규모 인디팀에서 기획밖에 할 줄 모른다면 힘들다)
1인 개발이 목표인지, 인디팀을 만들거나 들어가서 게임 개발이 목표인지 정하고 필요한 것을 찾아서 공부하자.
4. 프로그래밍
프로그래밍에 대해서 아는게 하나도 없다고? 옛날에 비해서 지금은 게임 프로그래밍 입문하기가 엄청 쉬워졌다. 걱정 할 필요 없다.
게임 프로그래밍을 공부하겠다면 크게 2가지 방법이 있다.
1. 프로그래밍 언어부터 시작해서 기초를 튼튼하게 공부한다.
2. 그냥 게임엔진부터 공부하고, 막히면 필요한 것 배운다.
사람마다 의견이 다르지만 나는 목표가 큰 게임회사에 프로그래머로 취업이라면 1번이 좋고, 취미로 인디 게임 만들고 싶다면 2번이 좋다고 생각한다. 다른 경우라면 공부해야 하는 사람이 직접 생각해보고 자신한테 맞는 것 고르는게 좋고.
왜냐하면 1번은 게임 개발까지 시간이 너무 많이 걸리기 때문에 취미로 하는 것이라면 게임 개발 하기 전에 흥미가 떨어질 수 있거든.
어쨌든 이 갤러리에서 이 글 보는 사람은 대부분 취미로 인디 게임 만들려고 하는 사람일 것 같으니까 2번으로 설명한다.
5. 게임 엔진
게임을 만들기 위해서는 라이브러리, 게임 프레임워크, 게임 엔진, 게임 툴 같은 것을 사용한다. 그런데 프로그래밍 하나도 모르는 초보자라면 그냥 게임 엔진 고르자. 그게 편하다.
라이브러리, 게임 프레임워크는 프로그래밍 모르는 초보자가 사용하기에는 너무 힘들다. 게임 툴은 특정 종류의 게임 개발에 특화되어 있기 때문에, 그런 게임 안 만들면 힘들다.
게임 엔진을 선택한다면
1. 유명하고, 사용자가 많고, 관련 커뮤니티도 많고, 관련 자료도 많다.
2. 2D/3D를 지원하고 다양한 플랫폼(모바일, PC, 콘솔 등)을 지원한다.
3. 무료거나 가격이 저렴하다.
4. 내가 목표로 하는 게임이나 비슷한 게임을 개발하는데 사용한 엔진이다.
이런 조건에 맞는게 초보자한테 적절하다. 그리고 이 조건에 다 맞는게 바로 유니티(Unity)이다.
6. 유니티
유니티는 위에서 말한 1~3번 조건을 다 만족하는 엔진이다. 그리고 모바일 게임 개발이 목표라면 4번도 만족할 확률이 높다.
그래서 나는 유니티가 인디게임 개발을 시작하려고 하는 초보에게 제일 적합한 엔진이라고 생각한다.
그리고 게임 엔진은 게임 개발하는데 사용하는 도구이기 때문에, 도구 사용해보고 마음에 안 들면 다른 도구 고르면 된다. 그러니까 일단 유니티 설치하고 간단한 튜토리얼 따라 해보고 마음에 안 들면 다른 엔진을 찾자.
유니티 공부하기 전에 알면 좋은 잡다한 상식
유니티의 예전 이름은 Unity3D였는데 지금은 3D는 빼고 Unity만 이름으로 사용하고 있다.
유니티가 지원하는 스크립트 언어는 예전에는 C#, JavaScript(자바가 아니고 자바스크립트다), Boo 이렇게 3가지였다. 하지만 Boo는 사용자수가 너무 적어서 지금은 지원 안 하고, JavaScript도 유니티에서 사용하는 사람이 별로 없다. 그러니까 유니티는 C#만 사용한다고 생각하는게 편하다.
유니티의 현재 최신버전은 Unity2017.3이고, 2017이전 버전은 Unity5이다.
7. Unity 공부 시작
https://unity3d.com/kr
유니티 공식 홈페이지에 들어가서 회원 가입하고 유니티를 다운받자.
유니티는 퍼스널/플러스/프로 3가지 버전이 있다. 각 버전의 차이는 유니티 공홈에 자세히 적혀 있다. 퍼스널이랑 플러스는 연간 수익이 10만달러/20만달러가 넘지 않으면 사용 가능하다. 퍼스널 버전은 무료지만 유니티의 대부분의 기능을 사용할 수 있기 때문에 연간 수익이 10만달러 넘는게 아니라면 그냥 퍼스널 버전 쓰는게 좋다.
유니티를 다운 받고 설치했다면 간단한 튜토리얼을 따라하자. 일단 유니티 공홈에 있는 튜토리얼을 따라하자.
https://unity3d.com/kr/learn/tutorials
여기서 프로젝트에 있는 “Roll-a-ball tutorial”이나 “2D UFO Tutorial”이 유니티 막 시작하는 초보자가 따라하기 좋은 튜토리얼이다. 그리고 주제에 있는 “Interface & Essentials”나 “Scripting” 보는 것도 좋다.
책이 좋은가? 인터넷 동영상이 좋은가?
솔직히 한글로 된 유니티 책 중에서 쓸만한 것은 거의 없다. 최신버전 2017인데 2017 다루는 책은 거의 없다. 그리고 유니티의 기능들을 수박 겉핥기 수준으로 설명만 하거나, 예제 몇 개 따라하고 끝이라서 인터넷 동영상보다 안 좋은 책이 대부분이다.
그래도 게임 개발이 처음인 초보라면 동영상으로 시작하면 따라하기가 어렵기 때문에 그냥 유니티 책 1권 사서 간단하게 기본 개념 익히고 동영상으로 공부하는 것을 추천한다.
내가 추천하는 책은 “유니티 5로 만드는 3D/2D 스마트폰 게임 개발” 이거다. 유니티 5가 구버전이기는 하지만 유니티 2017로 따라하는데 문제가 없다. 그리고 내용도 초보자가 따라하기 좋아서 간단한 개념 익히기 용으로 좋다.
유튜브 동영상 채널
구글에서 적당히 Unity + 만들려고 하는 장르 + tutorial 같은 걸로 검색해서 조회수 높고, 최근에 올라온 튜토리얼 보면 된다. 찾는 것도 귀찮은 사람을 위해서 갤에 언급되는 채널 2개 적는다.
retr0(한글) https://www.youtube.com/channel/UCRWq4MPqifkmT2GyL2d2ZAQ
Brackeys(영어) https://www.youtube.com/channel/UCYbK_tjZ2OrIZFBvU6CCMiA
8. Unity말고 다른 엔진?
1. Unreal Engine
https://www.unrealengine.com
3D 게임 개발이 목표이고, Unity로 충분하지 않다면 언리얼이 좋은 선택이다.
실제로 Unity로 개발하고 있다가 충분하지 않아서 언리얼로 바꾸는 경우도 꽤 있다.
(예 : 리틀 데빌 인사이드)
2. Game Maker
https://www.yoyogames.com/gamemaker
2D 게임 개발이 목표이고, Unity를 사용해봤는데 어렵다면 게임메이커를 체험 해보는 것도 좋다.
게임메이커는 Unity가 무료화되기 전부터 저렴한 가격 덕분에 인디개발자들이 많이 사용했다.
그리고 게임메이커는 한번 구매하면 추가 지출이 안 나가기 때문에, 연수익이 10만 달러가 넘는다면 유니티보다 저렴해진다.
그런데 난 예전부터 게임메이커 사용했던 사람이 아니라면 굳이 Unity 놔두고 게임메이커 사용할 이유는 없다고 생각한다.
3. RPG Maker(알만툴, 쯔꾸르)
이건 게임엔진이 아니고 게임툴이다. 흔히 알만툴 게임이라고 부르는 종류의 게임을 개발한다면 알만툴이 기본적으로 제공하는 기능으로 충분하기 때문에 쉽게 만들 수 있다.
최신 버전은 RPG Maker MV인데 자바스크립트 사용한다. 그 전 버전들은 루비 사용한다고 하고.
물론 알만툴이 제공 안 하는 기능이 필요하다면 고생이 시작될거고.
그래서 알만툴로 게임 만들다가 유니티로 바꾸는 경우도 있다.
4. Ren’py
https://www.renpy.org/
렌파이는 파이썬이라는 프로그래밍 언어를 사용하는 비주얼 노벨 엔진이다.
비주얼 노벨은 화면에 배경, 캐릭터 그림, 대사 나오고 선택지 고르는 방식의 게임이다.
비주얼 노벨 만드는 것이라면 렌파이가 기본적으로 제공하는 기능만으로 충분해서 쉽다.
https://www.renpy.org/doc/html/thequestion.html
이건 렌파이 기본 예제 게임 코드인데 이 코드와 그림 파일, 음악 파일만 있으면 간단한 비주얼 게임이 완성된다.
프로그래밍을 약간만 알면 이게 얼마나 간단한 것인지 알 수 있다. 유니티로 저 예제 게임 만들려고 하면 저것보다 힘들다.
그리고 렌파이는 pygame이라는 게임프레임워크를 기반으로 만들어진 것이라서 알만툴보다는 추가 기능 구현하기가 상대적으로 쉽다.
즉, 간단한 비주얼 노벨 게임을 만들거나 비주얼 노벨에 약간의 기능을 추가한 게임을 만든다면 렌파이가 좋을 선택이 될 수 있다. 하지만 만들려고 하는 게임이 비주얼 노벨과 비슷한 종류가 아니면 그냥 다른 것 사용하자.
5. 나머지
여기서 언급 안 한 나머지들은 안 유명하거나, 초보자들한테 적절하지 않다.
예를 들어서 Cocos2d-x. 이건 유니티가 무료 버전 없고 2D 기능도 부실하던 시절에 모바일 2D 게임 개발에 많이 사용하던 것이라서 저 시절에 2D 게임 개발할때 뭐로 하냐고 질문글이 올라온다면 추천 많이 해주던 것이다.
지금은? 유니티도 무료 버전 생겼고, 2D 관련 기능도 많이 추가되었다. 그리고 Cocos2d-x는 게임 엔진이 아니라 게임 프레임워크라서 C++에 익숙하지 않은 초보자한테는 적절하지 않다.
9. 그래픽
그래픽 관련 내용은 다음글에 이어 적는다.
https://gall.dcinside.com/m/game_dev/14403
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.