Найти в Дзене
Nuances of programming

Как я создал свою первую видеоигру

Оглавление

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

Отдыхая дома, я играл в 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.
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
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
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 часа ночью, я не хотел работать слишком много. Для этого потребовалась дисциплина и огромная поддержка со стороны любимой жены. Когда я был полон энергии, я писал код. Когда мой мозг перегревался, я переходил к графике. Когда мне надоедало и то, и другое, я отдыхал, но чаще всего отдых длился недолго и я возвращался к работе. Выходные я посвящал семье, уделяя время разработке только если больше нечего было делать.

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

-5

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

Когда я начинал работу над 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”
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
The near-final product is a lot more simple but still fun

Читайте нас в телеграмме и vk

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