Game Development

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

Отдыхая дома, я играл в Nintendo Switch и скачал Blossom Tales. Это инди-игра, больше похожая на Zelda: A Link To The Past, но чуть менее привлекательная. Blossom Tales напомнила мне, как хороши были олдскульные игры. Так как моё детство пришлось на конец 80-х — начало 90-х, я всегда мечтал создать видеоигру. В то время это казалось мне недостижимой целью. С чего вообще начать? Что мне для этого нужно? Без Интернета эта мечта, как и многие другие в то время, умерла, даже не родившись.

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

Никаких оправданий

У меня не было опыта в разработке игр, я не знал ни одного необходимого языка программирования, у меня нет таланта художника. Зато у меня были работа, маленький ребенок и беременная жена. Это были все необходимые ингредиенты для коктейля прокрастинации, но я был настроен серьёзно. Я понимал, что могу преодолеть или обойти эти препятствия.

Поиск идеи для моей игры

Тогда я понимал, что хочу создать игру, но четкой идеи, о чем она будет, у меня не было. К счастью, поиск идеи не занял много времени. Всё началось с того, что я нашел эту статью о том, как создать модель клейкого сыра для пиццы в 3D. Не помню, как именно я попал на эту страницу, но точно помню, что в то время я тестировал Blender 3D.

This 3d render is what made me decide that I wanted the game to be about pizza. I still don’t know why.

Может быть, я хотел есть, когда читал этот пост, но тогда я понял, что моя первая игра будет про пиццу. Я начал записывать идеи при помощи старой ручки и бумаги. “Справа у меня будет куча ингредиентов, сверху — толпа клиентов, а слева — несколько пицц, и нужно хватать ингредиенты и класть их на пиццу”, — говорил я сам себе. Надо признать, что идеи были не так уж и хороши, да и весьма запутаны, но это было только начало.

Это реальность?

Я сидел на диване и набрасывал сногсшибательные и необычные концепты видеоигр, а рядом со мной сидел мой маленький ребёнок. У него была игрушка в форме шестиугольника, к которой можно прикреплять другие магнитные грани и делать объемные фигуры. Он попросил меня помочь ему построить что-нибудь. Я отложил блокнот, и когда я взял в руки этот шестиугольник, ко мне пришло озарение. Пицца, которую я только что нарисовал, состояла из 6 кусков, и была похожа на этот шестиугольник. Я покрутил шестиугольник вокруг своей оси и подумал:”А что, если просто крутить пиццу, а ингредиенты будут падать, как в Тетрисе?”

The inspiration behind the rotating pizza

Разработка прототипа

Держа в голове концепт крутящейся пиццы, я приступил к разработке прототипа. В качестве движка для своей игры я уже выбрал Unity. Я быстро удалил свой проект “Pizza Game 3D” и начал работу над новым, под названием “Pizza Game 2D”. Мой цель была проста — как можно быстрее создать рабочий прототип. Взяв некоторые графические ассеты из Google Images, я сумел создать простейшее демо за пару дней.

Создание графики

Я хотел нарисовать свою графику, но вообще не представлял, как правильно пользоваться Illustrator. Я начал с просмотра руководств на YouTube (то, на которое я оставил ссылку, просто великолепное). Удивительно, как много бесплатных ресурсов есть в нашем распоряжении в 21 веке. В 90-х мои идеи умерли бы в зародыше. В нынешний век информации у нас есть легкий доступ ко всем инструментам, и всё ограничивается только желанием, временем и силой воли, чтобы заставить себя учиться чему-то новому. Только за январь я успел изучить C#, ознакомился с Unity и открыл для себя чудесный мир векторов в Illustrator.

Своей первый ингредиент, пепперони, я создавал примерно 5 часов. Второй занял чуть более часа. Сейчас в среднем на один ингредиент у меня уходит 15 минут, и я уже создал пару десятков.

К февралю было полностью готово это некрасивое демо.

An early prototype of Pizza The Pie. Frame rate has been reduced for GIF purposes

Через 50 дней у меня была бесконечная игра-головоломка, которую я мог назвать готовой и закинуть её в AppStore за 99 центов. Но она ещё не была доведена до идеала, и я не хотел, чтобы моя первая игра выглядела недоделанной, ведь у вас есть только один шанс произвести первое впечатление. Оглядываясь назад, мне всё равно стоило запустить его в AppStore. Также у игры сменилось название на Pizza The Pie (R.I.P Pizza Game 2D).

Работа несмотря на ограничения

Ранее я уже упоминал о нехватке времени, и мне нужно было найти способ, как решить эту проблему. Необходимо было составить расписание. Я просыпался, отводил ребёнка в садик, шел на работу, проводил там 8 часов, возвращался домой и помогал по хозяйству (приготовить ужин, помыть посуду и уложить сына спать). Когда всё это было сделано, на часах уже было 21:30 и наступало время работы над моей игрой. Обычно я работал 1–2 часа ночью, я не хотел работать слишком много. Для этого потребовалась дисциплина и огромная поддержка со стороны любимой жены. Когда я был полон энергии, я писал код. Когда мой мозг перегревался, я переходил к графике. Когда мне надоедало и то, и другое, я отдыхал, но чаще всего отдых длился недолго и я возвращался к работе. Выходные я посвящал семье, уделяя время разработке только если больше нечего было делать.

Тогда я понял, что, действительно, время — деньги. В то время я очень хотел бы купить больше времени.

Урок выучен — нельзя давать границам проекта расползаться

Когда я начинал работу над Pizza The Pie, проект задумывался очень простым. Это должна была быть просто бесконечная игра-головоломка, и всё. После нескольких недель работы проект всё рос и рос, появлялись всё новые идеи. Я начал добавлять много нового. Конечно, я хотел добавить мультиплеер, игру по сети и режим истории с кат-сценами, различные темы и игру против компьютера. И, конечно, я хотел всё это сделать сам, включая всю музыку и изображения на фоне. К счастью, я не был настолько глуп, чтобы пробовать выполнить два последних пункта.

В марте 2018 года Pizza The Pie была готова на 85%. В июле из-за добавления всех этих фишек процент готовности упал до 40%. Моя панель Trello стала просто огромной. Я всё больше уставал от того, что, много работая, я всё ещё мало что могу показать, и понимал, что нужно от чего-то отказываться. Я решил всё упростить и вернуться к тому, с чего начинал. Это было невероятно сложное, но очень важное решение. Я уже написал код для мультиплеера и далеко продвинулся в режиме истории.

When scope creep gets the better of you. The multiplayer mode of a “simple single player game”

Ещё месяц ушел на то, чтобы вернуться к версии проекта с более реальным набором задач.

Теперь Pizza The Pie была гораздо проще. Я не выбросил из игры всё, а оставил только два игровых режима. Оригинальный бесконечный режим (в котором теперь было 4 отдельных опции) и режим приключения (с несколькими десятками уровней, да, я знаю ,что это много). Также я решил, что игра выйдет только для iPhone, и только после запуска на iOS я подумаю о других платформах. Никаких консолей и ничего, что может отвлечь.

Финишная черта

Хотя Pizza The Pie ещё не закончена, эта статья появилась только потому , что финишная черта в пределах досягаемости. Панель Trello сейчас почти пуста. Я начал уделять больше внимания маркетингу и создал небольшой сайт, чтобы продвигать игру. Я не хочу объявлять конкретную дату релиза, но хочу уверить вас, что до запуска не буду больше ничего добавлять в игру. Кто знает, возможно когда-нибудь я воскрешу мультиплеер.

The near-final product is a lot more simple but still fun

Перевод статьи Terry KaravouliasHow I built my first videogame

Предыдущая статьяJava для начинающих: часть 2 из 4
Следующая статья4 лучших современных текстовых редактора с открытым исходным кодом для программирования в Linux