Сложности разработки игр

 



"Game Development" by qubodup is licensed under CC BY 2.0


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

Жизнь преподносит и новые тоже. Но эти повторяются регулярно.

Когда был молод и писал сам - то просто начинал и писал код движка и игры за раз.

Получалось хорошо, но приходилось многое самому делать. И это было интересно.

И тут была проблема только в доступе к компу. В те времена (90е) компьютер был роскошью. И приходилось часто на бумаге многое делать, чтобы потом на компе разрабатывать.

А то и конфликтовать из-за него с другими людьми.

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

В то время это были эксперименты с 3д моделями на паскале.


Позже, когда появились движки возникла проблема выбора. И она стоит достаточно остро и по сей день.

Изучил много движков, ознакомился с ещё большим количеством и понял: чем больше вариантов выбора – тем легче создать проект, но сам выбор для тебя уже будет чем-то очень непростым.

Возьмём пример: делаю 2д игры и для этого подходят сразу несколько движков.

1200px-Unity_Technologies_logo.svg

Unity – шикарный и мощный, но с подпиской и до 2020 без тёмной темы (и странным окошком – Made with Unity). И оплата только за год (было $250 стало $350). В общем – дороговато просто для того, чтобы не было этого окошка с надписью и просто тёмной темы.

images

Godot – бесплатный с открытым исходным кодом. Но язык оказался не таким простым как они описывали. А куча нодов для изучения – это отдельная песня.

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

1 d5U0BQ6TZh5Gy2wPeBfQpw

Defold – бесплатный и простой движок на lua. Всё вроде хорошо, но при работе с ним столкнулся с тем, что графическую часть (размер экрана и прочее) надо делать самому, поскольку он заточен под мобилки с их разрешением. Было даже так, что на экране компа спрайты вылезали за рамки, или растягивались при изменении размера экрана.

И самое сложное – это система имён. Движок построен на сообщениях. И для статических игр имена чётко задаются в мире. Но для процедурно генерируемых приходится придумывать костыли.

index

GameMaker – описывается как простой движок для разработки. Но к его методу разработки и событийности надо тоже привыкнуть и подстроить игру под неё. И динамический язык, похожий на С надо понять. В нём оказались сложности с пониманием с кем ты работаешь и то, что текущий объект передаётся как контекст в скрипт тоже нигде написано не было.

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

Фабрика форматовimages

Construct Classic – простой и интересный движок на основе событий и расширяемый питоном. И форум шикарный с кучей самописных дополнений. С открытым кодом. Поддерживается комьюнити.

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

У меня опыта такого масштаба не было, но после 1000 событий бывало очень непросто разобраться в коде. И отладка становилась нетривиальной.

И ты заперт внутри Windows, но это по мне больше плюс. Движок сильно проще использовать, чем мультиплатформенные варианты.


Construct 2/3 – продолжение Construct Classic, но заточен под веб (весь написан на Electron, и приложения тоже в Js). Более удобный (а 3я версия вообще в браузере работает). Но медленный из-за выбора языка. На мобилках часто надо плясать с бубном, чтобы код работал быстрее.

Вторая версия стоила $100, а 3я стала подписочной за $100/год. И это меня удивило. Подписочная модель – самая сложная для пользователя, поскольку решиться постоянно отдавать денег, когда у тебя и так все вокруг вытягивают (и банки, и коммунальные службы, и другие подписки – музыка, видео) сложно.

Но можно относиться к этому как к инвестиции. Да и хобби в основном достаточно дорогое занятие.

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

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


***

index1

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

И с этим надо что-то делать, поскольку тратя энергию на выбор – теряешь время и ритм. А потом уставший (и потерявший стартовый запал) уже не так радостно приступаешь к разработке.

Поэтому надо выбрать себе пару движков и прицепиться к ним.

Джонатан Блоу вообще противник движков. Говорит – что надо бы писать самому. Ничего сложного в этом нет. Тут с ним не согласен – не все гении программисты. А для написания движка надо знать сильно больше как в математическом, так и программерском искусстве, чем средний разработчик игр.

Или нанимать программиста – что достаточно дорогое занятие.

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

Игры – вообще итеративное творчество. И с движками это проще сделать, поскольку свой движок будешь делать достаточно долго, пока увидишь обратную связь. Не все могут пройти через это море, “слушая песнь уключин” (Фёдор Конюхов).


***

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

Как говорил Джон Блоу: “Надо выбирать среду с наименьшим трением”

У нас ограниченный запас энергии и тратить её надо с умом.

Любая идея, которая слишком масштабная или сложная для разработки будет тебя мучать слишком долго, и в конце по капле выпьет всю радость разработки.

И будет настолько трудно продолжать дальше, что только волей сможешь продвигаться. Но это будет очень медленно.

И очень демотивирует столкновение с глюками движка, когда ты не можешь сам решить эту проблему, и приходится искать обходы и городить костыли.

Так у меня было с Unity/Box2d – стек из башен не стоял, а рассыпался. Смотря на Neon Abyss вижу, что эта проблема так и не решена. В первых версиях в игре ящики расползались сами.

Решил добавив пару скриптов и сенсор потери опоры, который включал и выключал кинематичность объекта.


***

Но технические проблемы меркнут перед человеческим фактором. Как интроверт – мне куда проще работать с компом и системами, чем с людьми. И люди часто оказываются очень сложной составляющей для разработки.

Они ускоряют разработку, дают энергию, но могут также и затормозить разработку и вынуть всю радость жизни и разработки.

Когда начал писать игру – показывал друзьям и сотрудникам. Игра нравилась и было интересно. Запал рос (получал удовольствие от общения) и было интересно.

Партнёры в других проектах как раз были не очень. Их леность сильно било по мотивации. Как говорили: “Выбирай только тех в партнёры, у кого ген работы развит хорошо”. Поскольку визионеров много, а работящих найти не так просто.

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

Один раз даже на полгода отпало желание общаться и делал очень медленно (драйв есть, но сильно на запале после трудного общения)


***

Баланс между жизнью, работой и игростроем.

Эта часть одна из сложных. Можно сказать очень сложных. Когда у тебя жена, дети и надо кормить ипотеку или кредиты. И при этом драйв, чтобы делать игры.

И всё это надо балансировать.

Нужно время и внимание семье (жена требует участия, дети – поиграть). При этом у тебя есть работа (и очень трудно, когда она удалённая и ты дома с семьёй). И надо энергию разделять.

Один из советов зашёл хорошо: “Если ты спёкся, то всё. Надо делать с утра”

И когда начал делать игры и писать дневник с утра – и пошло. Все спят, а ты делаешь, а после активируется семья и ты уже уделяешь им время.

Потом начинается работа. И забирает 8 часов жизни.

В таком ритме работать сложно, но 2 года получалось.

После стал думать про коворкинг и офис. И оказалась хорошая идея.

Одно могу сказать – сложности формируют характер. После – мелкие проблемы даже не воспринимаются.

Когда входишь в этот ритм становится легче. Только запасы энергии исчерпываются быстрее.

Поэтому нужны прогулки и фитнесс в том или ином виде.


***

Издательство и самиздат.

Хоть и пугали самиздатом – он оказался достаточно простым. Только требовал времени и терпения. И обновлять на всех платформах, где ты зарегистрировал было муторно. Надо было проявлять терпение.

Общение с издателями как раз проще – пишешь письма, общаешься в скайпе. Только надо смириться с тем, что многие будут отказываться от твоей игры.

Как говорится: “Ничего личного – только бизнес”.

Если твоя игра не подходит под их модель бизнеса или портфель игр – получишь отказ.

Также они смотрят на команду и активность в соц. сетях (и вообще в медийном пространстве).

С издателями происходит очень сложная модель общения. Когда у тебя успех и продажи – они приходят и выстраиваются в очередь.

И много мошенников начинает крутиться вокруг, пытаясь завлечь и за копейки получить доступ к твоему пирогу.

Поэтому надо держать ухо востро.


***

Путь по пустыне.

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

Продолжая ползти (или как марафонец – неспеша бежать) то можешь в конце концов дойти.

Но надо помнить правило альпинистов: “Помни о своей вершине, но смотри на пять шагов вперёд”

Это позволяет двигаться дальше, даже когда уже не хочешь и отвлекаешься. Работа превращается в рутину, но её надо сделать.

Местами прорываются интересные вещи и дают прирост к мотивации.

И ты идёшь дальше.

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

Иначе выгоришь и полгода будешь восстанавливаться.


***

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

Это достаточно редкое явление – поэтому особенно радостное.




Комментарии

Популярные сообщения