Жизнь инди-девелопера — или как балансировать семейную жизнь, работу, фриланс и двигать свой проект
***
Вот уже 4 года продолжаю разработку своей игры с переменным успехом.
Когда начинал — было два клиента с которыми работал. Они платили за консультации и поддержку их систем автоматизации.
В свободное время (когда настраивал систему — его не было, потом — стало больше) стал делать игру.
Первый движок — Unity очень интересный оказался. Достаточно простой для работы. Использует C# и компонентную модель.
Много ассетов.
Но потом оказалось, что у него много подводных камней.
И пока деньги шли от других проектов — разработка шла активно.
Но потом у клиентов случилась пертурбация власти (сначала у одного, через пару лет у другого) и пришлось искать работу.
Параллельно ещё занимался фрилансом. И день был разделён на несколько кусков по 3-4 часа. В общей сложности работал 10-12 часов в день против 8-10 в обычном режиме.
И разработка игры замедлилась. Прибавились нервы при поиске работы и настройке на рабочем месте.
Потом оказалось, что удалённая работа не так проста как кажется — ты постоянно дома один. Как в тюрьме. И некоторые ведущие программисты звонят даже не спрашивая. И предъявляют претензии: «Где ты находишься?» даже если ты отошёл по нужде.
В общем — весьма странные бывают рабочие отношения.
Плюс, постоянное сидение дома сказывается на здоровье и общем ментальном состоянии.
При этом надо поддерживать отношения с семьёй.
А когда ты эмоционально выгорел и начинаешь уже болеть (из-за гиподинамии и психосоматики) — то по семье уже наносится серьёзный удар.
Сделал вывод — просто надо каждый день гулять и заниматься гимнастикой. Причём заставлять себя это делать.
Потому что стоит пропустить один-два дня и уже очень непросто заставить себя встать и попрыгать и заняться фитнесом.
Всё же мы в биологическом теле пока и приходится о нём заботиться, чтобы была энергия как на работу, так и на увлечения — в виде геймдева и прочего.
Помню момент — когда стал заниматься столярничеством, стало легче.
Всё время сидишь на работе, а чтобы крафтить из дерева — приходится стоять.
Получается — очень дополняющая профессия.
Только надо иметь либо свой дом, либо снять в аренду гараж. Иначе тёща найдёт тебя в дальнем углу общего дома и будет претензиями кормить: «Что так шумно? Что поздно?»
И при этом ещё пытаешься создавать фирму — ищешь партнёров, помощников. Нанимаешь фрилансеров.
Опыта с наёмными у меня не было. Но как вижу по знакомым и друзьям — это тоже непростое занятие.
Многим сотрудникам надо, чтобы ты был им папочкой и мамочкой в одном лице.
С профи работать проще, но они обычно перегружены, так что надо постоянно их спрашивать о прогрессе.
Некоторые сами отчитываются. Но такого уровня ответственности встречал не так часто.
И так двигаясь от проблемы к проблеме, от клиента к клиенту, и разрабатывая игру параллельно — чувствуешь себя жонглёром.
И иногда шарики падают. И надо начинать всё сначала.
После нескольких лет работы и достижения определённого уровня проблемы Unity переросли всё терпение (плюс постоянное обновление с новыми фичами — а все мы люди, и постоянно ищем оптимальный путь для выполнения задачи).
И пошёл исследовать разные движки. GameFromScratch — очень помогает в этом. Описывает движки и фреймворки.
Даже стал думать, что стоит самому написать на SFML/SDL/MonoGame игру. И скорее всего так и надо было сделать.
Джонотан Блоу описывает это как трение. То есть инструмент не должен обладать излишним трением.
И советовал создавать игру с нуля, чем учиться обходить проблемы движка Unity (на конференции 2018 года в Китае)
У Unity в начале трения почти нет. Но как только код переходит определённую черту сложности. И количество ассетов и плагинов зашкаливает за 5Гиб (причём — видать, некоторые ассеты глючные и юнити крашится сама по себе — и отсылка отчёта даже с проектом ничего не решает) начинаются танцы с бубном.
Когда работал в Nekki — там над Unity построили свой движок игровой. И как-то добились стабильности, несмотря на то, что их ассетов было на 16ГиБ. У меня пока не получилось такой стабильности достичь.
После нескольких лет поисков и экспериментов остановился на трёх движках: Godot, Defold, GameMaker: Studio.
Использовал и фреймворки MonoGame, go/pixel, raylib, sdl/freepascal, sdl/C#, SFML/C# — но пока это лишь игрушки.
Сам начинал с простых игр под простые языки и по идее фреймворки должны помогать в этом.
Только AppGameKit пока справляется с определением «простой».
MonoGame с его расширениями оказался сложным в освоении. Просто использовал его спрайтовые и шейдерные функции чтобы можно было выводить графику.
Godot — оказался интересным. И сейчас даже есть 3 книги по нему. Прочёл их, но философия пока не дошла. Писать на питоне (gdscript) не очень приятное занятие.
Плюс — надо понимать как работают сигналы и строится дерево ассетов.
Defold — шикарный движок. Билд всего 1.5МиБ под мобилки (против 17МиБ для Unity и 20 для GameMaker). Но оказался «оверинжинирид» — систему сообщений и общую структуру движка вокруг очередей сообщений (и урлов для индикации позиции в сцене или мире) трудно понять.
Мало книг. А базовая документация — хоть и очень хорошая, но не рассматривает некоторые вещи.
Но форум замечательный.
Когда возникла проблема с изменением разрешения (всё же движок мобильный и там разрешений мало) — пришлось дописывать скрипт рендерера, чтобы выводил с ограниченным разрешением сторон.
В общем — многообещающий движок.
В своё время долго плевался на GameMaker: Studiо. Но потом купил его 2ю версию и оказался достаточно удобный движок.
Простой и заточенный под 2д игры.
Пока подводных камней не достиг.
***
После нашёл книгу Сенеки «Письма к Луцилию».
И он там пишет, что скакание по городам и книгам — это показатель беспокойства души.
Присмотрелся — и да жизнь бурлит, и много нервов потребляет. Поэтому и приходится как то отдушину искать.
Вот по движкам и прыгал.
Плюс с партнёром по разработке разошлись не очень хорошо.
И стал задумываться, а как же самые мощные и узнаваемые разработчики делали.
И оказалось, что они просто уходили в разработку — своего рода эскапизм.
Так автор StarDew:Valley сначала пилил её без доходов, но потом пошёл на полставки работать.
Undertale — пишущий композитор — который тоже делал проект мечты.
Iconoclasts и Owl-boy — авторы по 10 лет (буквально) пилили свою игру и выпустили.
Многие инди-разработчики находят другой выход (и про него тоже подумал) — надо накопить на 1-2 года жизни и полностью посвятить себя проекту.
Сделать его за год и, возможно (как автор Yandere Simulator) выходят на ранний доступ или кикстартер.
Тот же Torn Adams (Dwarf Fortress) — живёт на поддержке его сообщества. И просто пилит игру уже 16 лет.
Но сообщество надо создать (тот же Торн Адамс вышел через 4 года работы над игрой в интернет с альфой 12 — и людям понравилось).
И вот постоянные перипетии жизни, напоминающий выживач — приводят к росту как личности, так и характера.
Посмотрите на Нотча (Маркуса Персона) — он работал на фирме по онлайн продажам, и параллельно пилил свой Minecraft.
И после начала продаж — ушёл в свободный полёт.
И вот этот старт оказывается самым сложным.
Чтобы у тебя хватило энергии (и иногда — денег), чтобы прокормить семью, твоё достаточно дорогое хобби (пока денег не приносит — это хобби) по созданию игр.
И при этом балансировать свою энергию и здоровье, чтобы остаться в здравом уме и теле.
Одно могу сказать — что приключение того стоило. И сейчас иду по нему с удовольствием.
Уже знаешь — «где живут драконы», и как перейти реку фич, чтобы не утонуть (не всегда получается — знаменитая асфальтовая топь программирования (Брукс «Мифический человекомесяц») часто утягивает проекты).
И встречаешь много интересных людей.
Вот это самое важное — то что мы — инди разработчики поддерживаем друг друга.
Встречаются не очень развитые личности, которые критикуют тебя как личность, а не твои творения с конструктивной стороны.
Но мимо таких проходишь, не оставляя им шанса зацепить тебя.
И идёшь дальше.
Игрострой оказался очень интересным и сложным занятием. Как раз как многим из нас нравится.