준비하기 디자인 문서 작성 게임 완성하기 애셋 제작 출시하기 프로그래밍 시작하기 테스트하기
모든 게임이 다 독특하겠지만, 거의 모든 게임이 특정한 장르로 분류 가능하다. 어떤 게임을 만들고 싶은지 결정한 후에 비슷한 장르의 게임이 어떻게 진행되는지 알아 보자. 다음은 유명한 장르들이다.  아케이드 슈팅 게임 퍼즐 플랫폼 게임 레이싱 어드벤처 무한 달리기 RPG FPS(1인칭 슈팅) 스토리/만화 기반 JRPG 타워 디펜스 공포 격투 코미디 생존 플랫폼에 대한 결정이 게임을 결정한다. 플랫폼에 따라 조작 방법이 결정된다. 스마트폰 게임이라면 터치와 기울임이 중요할 것이고, PC 게임이라면 키보드와 마우스가, 콘솔 게임이라면 게임 패드가 중요할 것이다.  물론 예외가 있겠지만, 특정한 조작 방식을 따르는 것이 쉬울 것이다. 아이폰 게임을 만들고 싶다면, 맥을 이용해서 업로드해야 한다. 한 페이지 이상은 되어야 하며, 게임 플레이의 핵심을 기술해야 한다. 자신의 게임에 대한 기본적인 컨셉과 정말 게임으로 만들 수 있는 부분인지 확인해 보아야 한다. 철학은 게임을 끝까지 제작하는데 필요한 동기를 부여한다. 게임의 핵심이 무엇인지 적는 간단한 문장을 의미한다. 게임을 만들면서 이 기준을 항상 만족하는지 확인해 보자. 다음은 예시이다.  이 게임은 우주 정거장 운영 시뮬레이션이다. 이 게임은 진짜 자동차를 움직이는 느낌을 준다. 이 게임은 플레이어의 반응 속도를 측정한다. 이 기능들이 이제 다른 장르들과 자신의 게임을 구분해 주는 기준이다. 아이디어와 컨셉을 나열해 보자. 그리고 컨셉들을 동작으로 바꾸어 보자. 5~15개 정도면 된다. 다음은 예시이다.  컨셉: 우주 정거장 건설 기능: 자신만의 우주 정거장을 건설 및 관리한다. 컨셉: 운석으로 인한 파괴 기능: 운석, 태양풍, 혜성 등의 환경의 위협에서 살아남기 기능을 먼저 적으면, 나중에 게임 디자인 문서를 만들 때 해당 내용을 교정해서 반영할 수 있을 것이다. 처음에 기능을 적어 놓으면 프로젝트에 집중할 수 있고, 게임에 끊임없이 추가되는 것을 막을 수 있다. 정말 만들고 싶은 게임이 될 때까지 이 기능 목록을 수정하자. 초기 디자인을 서랍에 넣어 둔 후, 1, 2주 정도는 프로젝트에 대해 생각하지 말자. 나중에 새로운 관점으로 게임을 다시 보기 위함이다. 이렇게 하면 게임을 진짜 만들어야 할지, 또는 다시 처음부터 시작해야 할지 결정할 수 있다. 디자인 문서는 게임 개발의 중추가 되는 부분이다. 게임의 작동 방식, 플롯, 설정, 미적인 부분 등 모든 것을 적는 문서이다. 문서의 형식은 내용에 비해 별로 중요하지 않다.  디자인 문서는 개발자와 디자이너가 함께 일할 때 더욱 중요하다. 문서가 그들 모두를 위한 것이 되어야 한다. 고객을 위한 것이 되어서는 안 된다. 두루뭉술하게 적지 말고 게임이 어떻게 작동해야 하는지 각각에 대해 자세히 적자. 모든 게임이 디자인 문서를 가지고 있는 것이 아니며, 똑같이 생긴 디자인 문서는 존재하지 않는다. 이 글의 과정은 참고만 하고, 자신의 게임의 요구 사항에 따라서 문서를 만들어 가야 한다. 게임의 모든 부분이 목차에 들어가야 한다. 딱 하나 들어가지 않아도 되는 것이 있다면 스토리인데, 스토리가 게임의 동작에 큰 영향을 주지 않을 때에만 하는 성립하는 이야기이다.   게임 매뉴얼을 작성한다고 생각하고 목차를 작성해 보자. 우선 캐릭터 생성, 전투, 인터페이스 등부터 시작해서, 작은 부분으로 내려가자. 목차를 게임의 개요라고 생각하자. 목자의 각 항목에 대해서 더욱 자세히 설명해야 할 것이다. 목차가 완성이 되면, 게임에 대해서 자세히 적어 나가자. 각 게임 요소 및 작동 방식에 대해서는 자세히 설명되어야 한다. 구현할 때 전혀 헷갈리지 않을 정도까지 되어야 한다. 접근 방식에 따라서, 협업이 무척 중요할 수 있다. 다른 사람의 통찰력이 게임에 더욱 집중할 수 있게 만들어 주며, 생각하지 못했던 부분까지 작성할 수 있게 해 준다. 게임의 각 부분을 만들면서, 게임의 각 부분이 재미있고, 연관이 깊은지 확인하자. 어떤 영역이나 아이디어가 약하거나 구현이 잘 되지 않았다면, 교정하거나 제거하자. 스테이지, 퍼즐, 지역이 완성 되면, 처음부터 끝까지 플레이해 보면서 재미있는지 확인하자. 개발을 진행하면서 핵심 철학과 게임이 맞는지 확인해 보아야 한다. 그리고 기능을 추가하지 않는 것도 중요하다. 그래픽, 사운드, 게임 디자인을 계속 다듬어서 게임만의 특정 스타일을 갖추도록 해 주자. 어떤 그래픽 스타일을 선택했느냐에 따라서 수정되는 속도가 다를 수 있다. 프로젝트의 범위에 따라서, 그래픽 애셋 요구 사항은 달라질 것이다. 어떤 게임은 단순한 도형과 색깔만 있으면 될 것이고, 다른 게임들은 복잡한 세계관에 많은 수의 그래픽, 사운드 디자이너들이 필요할 것이다. 게임 애셋에 대한 목표를 현실적으로 잡고, 적절히 고용하자.  대다수 인디 게임은 작은 팀이나 많은 경우 한 사람에 의해 개발된다. 혼자서 프로젝트를 진행한다면, 특히 애셋들을 혼자 다 만들 경우, 엄청난 시간이 들 것을 각오해야 한다. 게임 개발 커뮤니티를 둘러 보면 무료로 사용할 수 있는 애셋들이 많이 있다. 다른 사람들의 저작권을 침해하지 않도록 주의하자. 게임의 그래픽적인 면의 느낌을 알기 위해서 그래픽 애셋들의 프로토타입을 만들어 볼 필요가 있다. 그리고 그 프로토타입을 게임에 적절히 변형해 나가는 것이다.  그래픽 스타일도 다양하다. (고전 게임스러운) 픽셀 아트가 인디 개발자들에게는 가장 인기가 많다. 픽셀 아트가 가장 만들기 쉽고 시간이 적게 들기 때문이다.   시간과 인력이 많다면, 3D 애셋을 만들어 보는 것도 좋다. 기본적인 3D 모델링은 혼자서도 가능하다. 하지만 복잡한 경우에는 훨씬 더 오래 걸릴 것이다. 3D 모델의 경우, 모델에 입힐 텍스처가 필요하다. 어떤 그래픽 애셋을 사용할지 정했다면, 이제 게임을 만들 차례이다. 만들려는 게임의 스타일에 따라서 스테이지나 플레이할 공간을 만들어야 할 수 있다. 퍼즐 게임을 만든다면, 퍼즐을 디자인해야 한다. 그래픽 스타일에 따라서 여러 가지 프로그램을 사용할 수 있다. 다음과 같은 프로그램들이 있다.  Blender - 가장 유명한 오픈 소스 3D 모델링 프로그램이다. 이 프로그램을 어떻게 사용하는지에 대한 강의가 인터넷에 널렸다. (한국어 문서는 별로 없고, 영문이 많기는 하다.) 포토샵 - 텍스처 제작 및 2D 그래픽에 필수적인 프로그램이다. 비싸기 때문에 돈이 문제라면 GIMP를 사용해 보는 것도 추천한다. Paint.net - Paint Shop Pro의 오픈 소스 대용품이다. 2D 그래픽을 공짜로 만들 수 있다. 사운드는 게임을 플레이할 때 플레이어가 몰입할 수 있게 도와 준다. 배경음, 효과음, 대화문 녹음이 있는지 없는지에 따라서 플레이어가 게임에 몰입하는 정도는 달라질 수 있다.  인터넷에서 멋지고 좋은 효과음과 음악 제작 프로그램을 무료로 구할 수 있다. 재정적인 부분이 문제라면, 이런 것들을 사용해 보자. 집에 있는 물건들을 사용해서 효과음을 만들어도 된다. 각 엔진은 특정 플랫폼을 지원하며, 각 플랫폼에 필요한 라이선스 등을 명시하고 있다. 예를 들어, Game Studio의 경우, 스탠더드 버전에서는 윈도우와 맥에서 출시 가능하지만, 모바일 버전에 출시하려면 약간의 비용을 지불해야 하며, 프로 버전을 써야 한다. 게임 출시일이 다가오면, 주의를 끌기 위해 노력하자. 스크린샷과 플레이 영상을 게임 사이트에 올리자. 게임 뉴스 사이트에 연락하고, 게임이 곧 출시될 것이라고 하자. 어떻게 다운로드 가능하며, 가격은 얼마인지, 어떤 게임인지 알리는 것을 잊지 말자. 팬들을 얻기 위해서 회사 웹사이트를 구축하자. 게임 게시판을 만들어서 플레이어들끼리 대화를 나눌 수 있게 하고, 사이트를 주기적으로 업데이트해서 주의를 끌자. 일부 개발자는 자신의 사이트에서 게임을 배포하기도 하지만, 호스팅 비용 등이 만만치 않다. PC와 맥 게임을 배포한다면, 다음과 같은 사이트를 사용해 보는 것이 좋다.  Steam Desura Humble Store GOG 모바일 게임의 경우에는 (애플 앱 스토어, 구글 플레이 스토어 같은) 앱스토어들을 사용하면 된다. 콘솔 게임들 역시 Xbox Live나 PlayStation Network 등을 이용하면 된다. 각 서비스마다 게임이 판매되었을 때 가져가는 수수료가 다르다. 조사해 보고 어떤 것이 자신과 맞는지 확인해 보자. 개발자와 직접 연락할 수 있는 담당자들이 있다. 게임이 출시되면, 재정적으로 허락하는 한도에서 버그 수정과 더 많은 컨텐츠를 추가해 주자. 디지털 배포가 가능하다는 의미이는 게임을 예전에 비해서 쉽게 업데이트 가능하다는 것이다. 사람이 많아지면 찾을 수 있는 버그들이 생길 것이다. 최대한 빨리 수정할 수 있도록 노력을 하자. 엔진이란 게임의 기반이 되는 부분이다. 엔진에는 게임 개발을 쉽게 해 주는 수많은 도구가 포함되어 있다. 현재 있는 엔진을 사용하는 것이 처음부터 다 만드는 것보다 쉽고, 덜 복잡하다. 인디 개발자를 위한 엔진은 많이 있다.  엔진은 그래픽, 사운드, AI 처리도 도와 준다. 각각의 엔진은 장단점을 가지고 있다. 어떤 엔진은 2D 게임에 더 적절하고, 어떤 엔진은 3D 게임에 더 적절하다. 어떤 엔진은 프로그래밍 지식이 많이 필요하지만, 그렇지 않은 것도 있다. 개발 지식 없이도 사용할 수 있는 엔진도 있다. 다음은 유명한 엔진들의 예이다.  GameMaker: Studio - 2D 게임을 만드는 유명한 도구이다. Unity - 사용하기 쉽고, 많은 기기를 지원하는 것으로 유명하다. RPG Maker VX - JRPG 스타일의 2D RPG 게임을 만드는데 특화된 프로그램이다. Unreal Engine(구 UDK) - 수없이 많은 곳에 사용되는 3D 엔진이다. Source - 계속 업데이트 및 수정되는 유명한 3D 엔진이다. Project Spark - 일반 사용자를 위해 최적화된 3D 엔진이다. 어떤 엔진을 골랐냐에 따라서, 프로그래밍이 많이 필요할 수 있다. 가장 간단한 엔진조차도 무엇이 가능한지 알기 위해서는 공부가 필요하다. 프로그래밍을 할 줄 모른다면, 배우거나, 사람을 고용해야 한다.  이 부분이 팀을 만들어가는 시작점이다. 프로그래밍을 할 줄 모른다면, 첫 직원은 프로그래머가 되어야 할 것이다. 그래픽과 사운드는 다음 문제이다. 프로젝트가 계속 진행되기 위해서는 우선 작동하는 프로토타입이 있어야 한다. 함께 알아 나가고 성장해 가야 할 개발자들은 많이 있다. 사람들은 다 제각기 다른 이유와 보상을 위해서 게임 프로젝트에 참여 한다. 이 때, 게임 디자인 문서가 도움이 된다. 자신의 생각을 남에게 이해시킬 수 있기 때문이다. 엔진에 익숙해졌다면, 게임의 프로토타입을 만든다. 이 프로토타입을 이용하면 게임의 기본 기능을 테스트해 볼 수 있을 것이다. 그래픽이나 사운드가 필요하지 않다. 또한 캐릭터가 아니고, 상자가 막대 같은 것으로 캐릭터를 대체한 후에 작은 공간에서 테스트 해 보면 된다.   프로토타입을 테스트하고 발전시키자. 프로토타입만으로도 재미를 느낄 수 있게 해 주자. 뭔가 이상하거나 좀 아니다 싶은 것은 적어 놓자. 그리고 해당 작동 방식을 어떻게 변경시켜야 할지 고민해 보자. 프로토타입도 재미 없다면, 최종 게임도 재미가 없을 것이다. 쉬워 보였던 기능이 직접 만들려고 달려들면 어렵거나 불가능한 경우가 있다. 무엇이 되고, 안 되는지 알아가면서 프로토타입은 계속 바뀔 것이라는 것을 알아 두자. 게임의 가장 기본적인 기능은 플레이어가 게임과 여러 가지 입력을 통해 상호작용한다는 것이다. 프로토타입을 이용해 조작 방법이 완벽한지 확인해 보자. 조작이 제대로 되지 않는 게임은 답답하다. 플레이어에게 게임 플레이에 대한 보상을 하는 가장 좋은 방법은 조작을 정확하게 할 수 있게 해 주는 것이다. 처음부터 끝까지 작동하는 게임을 만들었다면, 게임을 망가뜨릴 방법을 찾아야 한다. 버그를 찾고, 제거하는 것은 많은 사람들이 게임을 재미있게 하는데 필수적인 조건이다. 플레이어가 게임에 해 볼만한 어떤 동작이든 해 보자. 게임의 규칙에서 어긋나는 행동을 해 보고, 어떤 일이 일어나는지 관찰하자. 버그 테스트는 엄청난 시간이 걸린다. 게임 만드는 것보다 더 걸릴 수도 있다. 더 많은 사람이 테스트에 참여할수록 더 많은 문제를 찾을 수 있고, 고칠 수 있다. 긴 버그 목록을 가지고 있고, 수정하는데 필요한 시간이 적다면, 심각하고, 게임을 망가뜨리는 버그부터 우선 수정하자. 예를 들어서, 점수를 얻는 게임에서 플레이어가 말도 안 되는 점수를 얻을 수 있는 꼼수가 존재한다면, 그 버그는 바로 제거해야 할 것이다. 친구들에게 부탁해서 게임을 해 보라고 이야기하자. 그들이 어떻게 게임에 접근하는지, 어떻게 게임과 상호작용하는지 알아 보자. 그들은 전혀 생각하지 못했던 방식으로 게임을 플레이 할 수도 있다.
장르를 결정한다. 플랫폼을 결정한다. 초기 디자인을 해 보자. 핵심 철학에서 시작한다. 기능을 적자. 잠깐 쉬자. 상세한 부분에 대해 생각을 해 보자. 목차를 만들자. 문서의 각 항목을 채워 넣는다. 다른 사람의 도움을 받자. 자신의 게임을 최대한 많이 플레이 해 보자. 핵심 철학에 집중하자. 다듬고, 다듬고, 또 다듬자. 프로젝트의 요구 사항을 고려해 보자. 일부 애셋들에 대해서 초안을 작성해 보자. 게임의 세계, 구조를 디자인한다. 그래픽 애셋을 만들자. 사운드를 녹음하자. 엔진의 규칙을 확인하자. 홍보하자. 배포 서비스를 선택하자. 게임을 지원하자. 엔진 결정하기. 엔진에 대해 공부하거나 아는 사람을 구한다. 프로토타입을 만든다. 게임 조작을 수정하자. 버그를 찾자. 많이 안 해 볼 것 같은 것을 해 보자. 버그 수정의 우선 순위를 정하자. 다른 사람들이 플레이하는 것을 관찰하자.
https://www.wikihow.com/Make-Your-Own-Video-Game https://www.wikihow.com/Make-Your-Own-Video-Game https://www.wikihow.com/Make-Your-Own-Video-Game https://www.wikihow.com/Make-Your-Own-Video-Game https://www.wikihow.com/Make-Your-Own-Video-Game https://www.wikihow.com/Make-Your-Own-Video-Game https://www.wikihow.com/Make-Your-Own-Video-Game
Laying the Foundations Writing the Design Document Putting it All Together Creating Assets Releasing Your Work Starting to Program Testing the Game