Как потратить 7 лет на разработку бета-версии.

Dmitry Kulbeda
NOP::Nuances of Programming
6 min readAug 10, 2018

Перевод статьи Ben Porter: How to take 7 years to ship a beta.

Прошло почти 7 лет с тех пор, как я ушёл со своей последней работы. В 2011 году я был свежеиспеченным аспирантом в Мельбурне. В тот момент, когда мне исполнилось 30 лет, возрождение инди-игр шло полным ходом, поэтому, когда мой контракт закончился, я решил покинуть академию и начать свой собственный путь по созданию игры. Так я и начал работать над игрой под названием Moonman. Спустя пару долгих лет эта игра стала называться MoonQuest и она только-только появилась в Steam Early Access и на itch.io.

Итак, как вы можете потратить 7 лет на создание своей игры? Вот несколько важных советов и приемов, чтобы занять как можно больше вашего драгоценного времени.

Создайте свой собственный движок

Это, пожалуй, самая важная часть. Если вы любопытны и хотите понимать, как работает каждая мелочь в вашей игре, то этот шаг довольно прост. Просто откройте свой редактор кода, загрузите базовый редактор слоёв, например, SFML (мы не дикари и не собираемся всё делать вручную), а затем начните писать свой менеджер ресурсов, систему событий, систему анимации, физическую систему (которую вы в конечном счете выкинете и замените Box2D), менеджер сцен, графический интерфейс, фреймворк сериализации, цепочку инструментов, систему сущностей и менеджер текстур. И это лишь некоторые из компонентов. На этом этапе у вас будет полностью функционирующая недоигра.

Чтобы продлить время разработки ещё больше, не забудьте использовать тот язык программирования, который может ввести существенное обновление версии (например, C++ 11) спустя какое-то время после начала вашей разработки. А также постарайтесь не связываться с рефакторингом.

Не останавливайтесь только на создании своего собственного движка. Вы также можете создать свои собственные инструменты, например, кастомный редактор спрайтов — ведь все остальные редакторы спрайтов не делают именно то, что вам нужно.

Не имейте чёткого представления о том, как должна выглядеть игра

Перед разработкой не держите у себя в голове чёткой картинки того, какую именно игру вы хотите сделать. Это продлит как время разработки вашего движка, так и время разработки игры.

Например, скажите себе, что вы хотите создать игру с бесконечным миром, где игрок может продолжать идти в одном направлении и никогда не достигнуть конца. Вам необходимо будет создать немалое количество технологий для реализации этого. Через пару лет вы осознаете (уже с точки зрения игрового дизайна), что нет, на самом деле вам не нужен бесконечный мир. Выкиньте все те структуры данных и алгоритмы, которые вы создали. Вы потратили 3 месяца на создание динамической системы, которая работает с бесконечной сеткой? Выбросьте это! Простой массив с динамическими ячейками тоже будет работать!

Ваша идея игры не существует в вакууме, а если бы и существовала, то, скорее всего, она бы просто испарилась — настолько она бесформенна. Нашей цели (разрабатывать игру как можно дольше) это помогает следующим образом: постоянно следя за аналогичными играми, которые уже выпущены, вы можете просто менять свою игру так, чтобы она переставала быть похожей на остальные. У всех этих игр есть «песочница» в описании? Просто сделайте свою игру анти-песочницей со специфичной целью, которая, безусловно, отличит вашу игру от конкурентов на рынке. В тех играх есть моддинг? Отбросьте любые идеи моддинга и вместо этого сосредоточьтесь на предоставлении более уникального контента. Ну или что-то типо того. Все, что имеет значение — это то, что идея игры находится в движении, постоянно приспосабливаясь к рынку до такой степени, что вы больше не можете написать и абзаца, который бы объяснил, что она из себя представляет.

Запустите краудфандинговую кампанию

Неизбежно у вас закончатся деньги. Конечно, вы могли бы выпустить игру пораньше, но это полная противоположность нашей цели. Поэтому, не будет ли лучше запустить краудфандинговую кампанию?

Сначала отложите 3 месяца на подготовку, здесь очень важно сделать всё правильно. Вы потратите значительное количество времени на создание отличного трейлера и продвижение своей кампании. Фидбек, который вы получите, будет фантастический: все будут такими хорошими и воодушевляющими. Если ваша кампания преуспеет, то вы сможете потратить эти деньги на то, чтобы ускорить разработку и закончить свою игру пораньше, но будьте осторожны! Если вы хотите потратить 7 лет на разработку бета-версии, то вам стоит потратить эти деньги не на то, чтобы сделать вашу игру раньше, а на то, чтобы сделать ее… лучше.

Дополнительное время здесь может быть получено за счёт физических краудфантинговых наград. Например, футболок. Также, в виду вашего перфекционизма, вы обязательно должны решить, что печатать их должны рядом с вашим местоположением, ведь только так вы сможете гарантировать хорошее качество. Да, именно так вы хотите поступить.

Постоянно пишите блоги о своей игре

Форумы, подобные TIGsource, могут стать отличным способом, чтобы найти друзей, получить поддержку и фидбек о вашей игре. Самостоятельная разработка игры может стать очень одиноким занятием, и, таким образом, вы сможете застать себя за ведением дневника разработчика. Хорошие новости! Это отличный способ потратить всё оставшееся свободное время. Обязательно делайте частые и подробные публикации о своей игре, чтобы выиграть награды за лучший дневник разработчика (благодаря всему тому времени, которые вы не тратите на игру). В итоге вы закончите с одним из самых больших и популярных дневников разработчика. Это определенно ваша цель.

Также, дополнительные временные очки могут быть получены с помощью публикации в Hacker News пародийных статей с ретроспективой за день до выхода вашей игры.

Протестируйте всё сами

Каждый продукт нуждается в тестировании. Каждая возможность должна быть протестирована. Вами. При любых возможных условиях. На всех платформах. Помните: если вы изменили что-то, то всё нужно протестировать заново, ведь вы могли сломать что-то.

Предупреждение: участники вашей краудфандинговой кампании и ваши друзья могут предложить вам свою кандидатуру в качестве тестировщика. Я совершил эту ошибку и в итоге сократил время разработки, но вам определенно не стоит этого повторять.

Сделайте все возможные побочные вещи!

Спустя пару лет вам, несомненно, наскучит работать над одним и тем же проектом изо дня в день. Чтобы быть уверенным в том, что вы будете работать над этим же проектом ещё многие годы, обязательно возьмите как можно больше побочных проектов.

Со всеми доступными ныне бесконечными game jam’ами, вы определенно можете провести несколько дней работая над другой игрой. Может быть, пародийная игра под названием No Mario’s Sky? Будьте осторожны, так как все эти глупые за-три-дня-сделанные игры могут вызвать больший резонанс, чем всё, что вы когда-либо сделаете на коммерческой основе.

Разработка игр включает в себя множество разных направлений, и вы обязательно должны попытаться стать мастером в каждой из них. Способ, который я предпочитаю — это найти онлайн-сообщество и вовлечь себя в соревнования и события, которые они проводят. Если это звучит слишком просто, то вы всегда можете организовать свое собственное сообщество. Может быть оно называется Pixel Dailies и теперь настолько большое, что ему требуется 2 модератора, которые бы работали полный рабочий день. У вас ведь ещё осталось свободное время?

Итог

Это лишь некоторые способы, которые разработчик может использовать, чтобы задержать свой проект. Еще несколько идей запускают “неконференцию”, выпускают игру на iOS, создают бесконечный генератор титров из звездных войн, твиттер-ботов и… ну… вы уловили суть.

Надеюсь, эта статья вдохновила вас на более разумное использование вашего драгоценного времени. Я с нетерпением жду ваших побочных проектов, дискуссий о движках, краудфангинговых кампаний, игровых блогов и постоянно меняющихся игровых идей. Вы можете твитнуть меня на eigenbom.

Ох, кстати, я уже упоминал, что моя игра MoonQuest теперь находится в Steam Early Access и на itch.io, не так ли? Я переделал всё вышеперечисленное, но, в конце концов, попал туда. А сейчас я понимаю, что если бы я вернулся в прошлое, то не стал бы ничего менять.

Но я обещаю, что следующий мой проект будет разрабатываться куда быстрее.

--

--