[기획연재 : 나도 게임 만들래! 1탄] 요즘 공무원 준비 보다 낫다는 인디게임 개발
바야흐로 인디게임 만들기 열풍이 불기 시작하고 있습니다
요즈음 많은 분들이 직접 게임을 만들어 보려고 하시는거 같습니다
그래서 준비한 [ 나도 게임 만들래 1탄]
게임은 어떻게 만들어 지는지 과연 나도 게임을 만들수 있는지 친절히 설명해드리고
그 방법도 상세히 안내해드리는 코너입니다
1. 게임의 수익
: 게임을 개발해서 수익을 낸다는것은 정말로 어려운 일입니다 , 게임을 만드는것 보다 더요
인디게임으로 수익을 낸다는것은 저도 공무원 준비를 해보았고, 고시공부를 해보았지만 그것과 비슷한정도의 난이도입니다 (주관적 의견)
하지만 게임시장은 어마어마하게 큰 시장입니다 , 그많큼 가능성도 무궁무진 하지요
또한 개발해서 출시 했을 때 다른사람이 내가직접 만든 게임을 플레이 할때의 기쁨도 맛볼수 있습니다
때때로 팬덤이 형성되기도 하구요
2. 게임개발
2.1 게임 엔진
게임을 개발하려면 가장 먼저 알아야 할것이 게임 엔진입니다
Unity [유니티] vs UDK [유디케이]
이 2개가 현재 게임엔진의 양대산맥 입니다
게임을 개발하시려면 게임엔진에대해 반드시 알고 가셔야 합니다
UDK는 언리얼 엔진이라고 합니다 , 그래픽이 화려하고 퍼포먼스(빠르다는 얘기)가 뛰어납니다
Unity 는 배우기 쉽고 가벼우며(빠르다는 얘기) UDK보다 더 많은 사람들이 사용하고 있습니다
이 2개의 게임 엔진중에 선택의 기로에 서게 되실 겁니다
두개 다 하면 안되느냐? 고 하실수 있겠지만 어찌되었든 1개의 게임은 1개의 게임엔진으로 만들수 밖에 없습니다
국내의 인디게임 개발환경이 결국 모바일 게임을 개발할수 밖에 없고
모바일 환경에 좀더 최적화된 Unity 로 많은 분들이 시작하시지만
Unity로 게임을 개발하다 보면 UDK의 장점들이 눈에 들어오기 시작합니다
화려한 그래픽, 같은 게임을 UDK로 개발했다면 좀더 퀄리티가 나아지지 않았을까 하는 생각도 하게됩니다
두 엔진 모두 훌륭한 엔진 입니다 , 끝에가면 게임엔진은 결국 개념이 같기 때문에
어느 엔진을 선택하더라도 한가지를 잘하면 다른것도 배우기 쉽지요 그러니 두가지를 동시에 하려고 하지 마시고
한가지 게임엔진을 선택해서 집중적으로 공부하시기를 권해드립니다
2.2 게임 제작 공정
기획 , 개발 , 마케팅, 운영 및 유지보수
기획은 어떤 게임을 만들지 계획하는 단계라고 할수 있습니다, 처음에 머릿속으로 이런이런 게임은 어떨까 하고 생각해보는 단계부터 시작하지요
기업에서는 전문적인 기획자가 게임의 개발 마케팅 운영과 수익및 투자자 확보까지 생각하고 게임의 전반적인 내용을 기획합니다
하지만 그냥 아이디어를 떠올리고 게임의 전체적인 구성을 구상하는것도 기획이죠 , 아주 중요하고 복잡한 과정이지만
시작이 반이다 라는 말이 있듯 너무 복잡하게 생각하지 마시고 이런 이런 게임을 만들고 싶다라고 생각하시면 그것이 기획이라고 할수 있습니다
다만 문서화 시키는것이 좋습니다 간단한 메모라도요
개발은 직접적으로 게임을 만드는 단계입니다 게임에 필요한 리소스를 제작하고 프로그래밍하고 게임을 돌려보고 잘못된점을 고치고 하는 과정입니다
마케팅은 게임을 만들고 난 후 또는 만드는 과정중에라도 다른사람들에게 게임을 알리는것입니다
운영 및 유지보수, 게임을 다 만들고 알리고 다한 후에도 앞으로 할일이 이제까지 한것많큼 남아있게 됩니다
게임의 제작공정에 대해 정말 간단히 설명했는데요
이 제작공정을 담당할 사람 즉 파트가 나눠지게 됩니다
기획자, 개발자, 아티스트, 마케터 , 운영 및 유지보수 담당자
만약 혼자서 게임을 개발하려고 하신다면 저 모든일을 혼자서 하셔야 합니다 , 그것도 모든파트를 아주 잘하셔야됩니다
그러니 팀을 구성하시는것을 추천합니다 , 루피가 밀짚모자 해적단을 만들듯, 유비가 관우 장비 조운 제갈량을 모으듯이요
팀을 모을때는 나중에 생길수 있는 이익분배에 대해 명확히 하세요, 팀분열의 소지가 될수 있으니까요
혼자하시는것도 추천은 못하지만 하실수 있습니다 , 백지장도 맞들면 낫듯이 게임을 만드는 과정을 정말로 힘든과정이기 때문에
혼자하시면 그 고통이 배가 됩니다 , 뜻이 맞는 친구가 있고 같이 할수 있다면 같이하시고 그렇지 못하고 게임을 만드시려고
지인이 아닌 사람들로 팀원을 구성하시려면 그에따른 보수를 지급하시는것을 추천합니다 , 흔히 말하는 열정페이나 나중에 생길 이득에 대한 지분으로
팀원을 모으려고 하신다면 이미 게임을 개발하고 있는 사람들 사이에서 이에대한 부정적인 시각이 퍼져있기 때문에
차라리 자금을 투자해줄 투자자를 찾아서 일정한 보수를 지급하시고 팀을 구성하시기 바랍니다
정말 여의치 못해 팀을 구성할수 없고, 혼자할수 밖에 없다면 ( 사실 많은 분이 여기에 해당...) 게임의 규모를 아주 작게 잡으셔야 합니다
혼자하면서도 게임의 규모를 크게 잡을수 있을정도의 개발력이 있으신 분이라면, 지금 이글을 읽고 있을리 없으니까요
2.3 게임의 제작
게임의 규모
게임의 규모를 작게 잡는다는것이 무었일까요?
간단한 게임? , 그래픽이 최소화된 게임?, 재미 없는 게임? , 선으로만 구성된 게임?
하지만 간단한 게임이란 없습니다, 게임을 만들다보면 복잡해지고 , 재미있게 만들려고 하면 할수록 잘 만들려고 하면 할수록 규모가 커지게 됩니다
그래서 이러한 문제를 피할수 있는 방법은 아이디어로 승부하는 게임을 만드는 것입니다
단순히 이런 생각 어때 , 괜찮을거 같은데는 아이디어라고 할수 없습니다
게임을 만들어서 실행되고 나서도 괜찮은 아이디어네 해야 좋은 아이디어 입니다
또한 아이디어는 게임을 만드는 도중에 변하기도 추가되기도 하며 처음의 방향성을 잃게되기도 합니다
학습
이제 본격적으로 게임을 개발하신다면 필요하게 되는게 학습입니다
모르는것은 부끄러운것이 아닙니다, 모르면 배우면 되는것이지요
게임개발에 대해 배울수 있는 가장 좋은것은 학원이나 대학강의보다도 유튜브 입니다
특히 영어로된 해외 동영상이 설명이 잘되어 있고 자신들의 노하우를 쿨하게, 잘 공개하고 있습니다
유튜브 또는 인터넷을 통한 학습
이것을 하는데도 방법이 필요합니다, 일단을 영어를 알아들을수 있어야하고, 최소한 읽고 해석할줄 알아야합니다
그렇지 못하시다면 영어를 공부하는 과정이 선행되어야 하겠지요, 그마저도 여의치 않다면 한글로된 자료를 찾아보세요
다음 중요한것은 키워드 입니다 자신이 모르는것에대한 키워드를 알고 계셔야 합니다
여기서 키워드란 많은사람들이 특정한 게임 개발 단계의 일부분 일컷는 공통적인 단어입니다 , 대부분 영어 한단어 또는 몇단어로 이루워져 있습니다
결국 학습을 많이하다보면 그 키워드들을 많이 알게되고 하나 하나 쌓여가면서 개발의 전반적인 내용을 알게되는 것이지요
그러니까 게임 개발 도중 몰라서 배울일이 생간다면 자신이 모르는것에 대한 키워드를 먼저 아셔야 합니다
예를 들어보겠습니다
게임을 개발하다보니까 이런 아이디어가 떠올랐습니다
가까운 물체는 자세히볼수 있고 멀리 있는 물체는 그 잔상만 보이는데 이것을 똑같이 만들어서 게임에 넣는것보다
따로따로 가까이 있는것은 디테일하게 , 멀리있는것은 단순하게 만들어서 바꿔치기하면 게임의 실행속도를 높일수 있지 않을까?
이런 기가 막힌 아이디어가 떠올랐지만 이미 뛰어난분들이 먼저 생각해서 만들어 놓으셨지요
키워드로 LOD 입니다 Level of Detail 의 약자입니다
구글 과 유튜브에 검색해보겠습니다
친절하게 동영상과 글로 설명이 나옵니다, 한글로도 나오구요... 상관없는 내용도 나오니까 구분방법도 숙지하셔야 합니다
그러니까 어떠한 궁금한점이 생기셨다면 내가 모르는 이런내용의 키워드는 무었인지부터 먼저 알아내셔야합니다
마치 전화번호 인명부를 거꾸로 찾는 과정이지만 이러한 과정을 통해 키워드를 학습하시거나
그렇지 않다면 모든 키워드의 뜻을 미리 훝어 보시거나, 아니면 다른사람에게 질문을 해야겠지요
내가 이러이러한 내용을 모르는데 키워드가 무었인지 즉 이런 내용을 전문용어로 뭐라 하는지 물어보시면 됩니다
SF 복장 제작과정
프로그래밍
게임을 제작하는데 있어 만나게되는 큰 걸림돌중 하나가 프로그래밍 언어 입니다
팀을 구성해서 팀내에 프로그래머가 있다고 해도 프로그래밍에 대해 어느정도 아셔야
게임에대해 이해하실수 있습니다
c, c++, java, javascript, c# .... 프로그래밍 언어는 많고 많은데 그중에 무었을 어떻게 배워야 할까요
프로그래밍 자체만으로 해도 거대한 분야이고 그중 하나를 익히고 습득하는데도 많은 시간이 필요합니다
보통 UDK 에서는 C, C++ 을 Unity 에서는 C# [씨샵] 을 추천합니다
하지만 저 수많은 프로그래밍 언어를 관통하는 하나의 개념은
순차문, 반복문 , 조건문 입니다
자신이 생각하는 게임의 실행순서 같은것을 저 세가지로 조합해서 표현할줄 알면
복잡한 언어들을 익히는데 조금은 도움이 되실것입니다
그다음
함수 와 클래스 개념에 대해서 아셔야 압니다
순차, 반복, 조건 , 함수, 클래스 이런 단어들도 앞에서 설명드린 프로그래밍이란 범주에서의 키워드라고 할수 있습니다
저러한 키워드를 통해 인터넷 검색이나 서적 강의 등을 통해 알게되었다고 하더라도
그것을 사용하는것은 또 다른 문제입니다
배우는것과 배운것을 써먹는것은 엄연히 다른것이니까요
즉 프로그래밍을 실제로 해서 무언가를 만드는 연습을 하셔야 합니다 , 아주 간단한 것부터 시작하세요
리소스
게임을 만드는 행위를 밥짓는 행위에 비유한다면
프로그래밍은 밥을 하는 행위에 비유할수 있습니다
밥을 하는데는 쌀이 필요하듯이, 게임을 만드는데는 리소스가 필요합니다
게임의 리소스를 만드는 수많은 전문 분야가 있지만 대표적으로
3D 모델링 아티스트, 2D 아티스트, 사운드 아티스트, 음악가, 작곡가, 연주가, 다이렉터, 2D 애니메이터, 3D 애니메이터
이펙트 아티스트, 레벨 디자이너, 배경 원화가, 스토리 텔링 작가, 만화가, 안무가, 모션캡쳐 전문가, 모션 캡쳐 배우, 성우
등이 있습니다
너무 범위가 커지는데요 , 조금 좁혀봅시다
게임을 만드는데 있어 먼저 3D게임을 만들지 , 2D게임을 만들지 선택하시는게 좋습니다
리소스의 범위를 줄일수 있으니까요
쉬어가는 코너에서 보셨던 영상은 3D게임의 리소스를 제작하는 과정입니다
앞서서 게임을 만들때 규모를 작게잡으라는 말씀을 드렸었는데요
그중 방법중 한가지가 2D를 선택하는것입니다
상대적으로 3D 보다 2D가 필요한 리소스양이 적기 때문입니다
하지만 수많은 2D 리소스를 제작하는것 역시 수많은 그림을 그리고 수정하고 하는 만만치 않은 작업입니다
그 노력을 줄여줄만한 방법을 소개해드리겠습니다
Spine Tool [스파인 툴]
그림을 딱한장 그려서 그것에 움직임을 줘 수많은 리소스를 뽑아낼수 있는 도구입니다
스파인 툴로 리소스를 만들고 그것을 UDK, Unity 등의 엔진에서 사용하실수 있습니다
스파인 툴은 유료이고 1카피 구매시 2명이 사용가능합니다
쉬어가는 코너 : 멋진 스파인 애니메이션
에셋스토어, 마켓플레이스
에셋 스토어라, 혹은 마켓플레이스라 함은 게임에 필요한 이러한 게임의 리소스들을 미리 만들어 파는 곳을 말합니다
에셋 스토어 나 마켓플레이스에서 리소스를 구입하여 게임을 제작하는것도 게임의 리소스를 만드는 수고를 덜어줍니다
위에서 설명드린 게임의 리소스를 에셋 (asset : 자원) 이리고 합니다
UDK, Unity 모두 에셋 스토어 또는 마켓플레이스가 존재합니다, 괜찮은 에셋들도 많구요
해당 엔진에서 구입한 에셋은 해당 엔진에서만 상업적 사용이 가능합니다
이러한 스토어에서 에셋을 구매하여 게임을 만드실때는
어떤 에셋을 사용할지 미리 잘 알아보신후에 게임의 기획단계부터 해당 에셋을 사용할 계획을 세우셔야 합니다
다시말해서 자신이 구상한 게임과 딱 맞는 에셋을 찾기가 어렵다는 것이지요
게임을 만들다보면 내가 만들고 있는 게임의 컨셉과 딱 맞는 고퀄리티의 에셋을 찾게 되는데요
그러한 에셋이 많은 게임에서 사용되는 공통된 요소가 아니라면
찾기가 쉽지 않을 뿐더러 , 그러한 에셋이 없다면 해당 에셋을 제작할수 있는 전문가가 필요해지고
여기서부터는 게임의 규모가 기하급수적으로 커집니다
또한 어떠한 에셋이 처음 봤을때 괜찮아서 그 에셋을 이용해 게임을 제작하다보면
자신이 원하던 방향의 게임과 다르다거나, 실제 만들어보니 원래 가지고 있던 아이디어를 구현하기 어려운 경우가 발생할수 있습니다
그러니 어떤 에셋을 사용하시고자 할때는 미리 충분히 알아보시고 심사숙고 후에 선택하시기 바랍니다
글이 너무 길어져서 1편을 여기에서 마치도록 하겠습니다
제 글이 뭔가 조금은 도움이 되었으면 하는 바램입니다
혹시나 2편을 기대하신다면 밑의 추천을 한번씩 눌러주시면 감사하겠습니다