С перерывом в 6 лет пилю игру под названием DRAWING в жанре bullet-hell. Вот ссылка на itch.io. Играть можно прямо в браузере.
Вот вы мне не поверите, но я начал делать эту игру аж в 2016 году. В доказательство могу предъявить дату моей регистрации на DTF. У меня тогда было очень много командировок по работе, и чтобы как-то проводить время вечерами в гоcтиницах, я решил запилить игру. Да-да, я знаю, это не самое очевидное решение, как можно потратить время в незнакомом городе поздно вечером 🙂
Я довольно давно люблю играть в компьютерные игры, но почти все они за редким исключением надоедали мне довольно быстро. Так что я очень редко когда их проходил.
И тут мне пришла в голову идея: раз мне нравится играть в игры, но при этом не нравится в них играть долго, может быть мне стоит запилить свою игру? Для меня это сразу много разных видов деятельности: от кода до рисования, от звука до продвижения, не заскучаешь. К тому же я неплохо владел Photoshop ещё с института, так что норм.
После быстрого сеанса гугления выяснилось, что инди-разработчики давно уже не пилят игровые движки самостоятельно, а используют для этого специальный софт. После недолгого дополнительного гугления мой выбор пал на Unity. Честно говоря, уже не помню, на каких именно аргументах этот выбор был основан.
Я понимал, что сделать MMORPG на 100500 игроков с прекрасным нэкст-ген графоном мне явно не под силу, поэтому я сразу определился с жанром: top-down shooter. Этот жанр требует минимум кодинга и баланса. В общем, я был полон оптимизма и готов был стать вечерним инди-разработчиком.
Ну, что, Unity скачан. Поехали!
Я посмотрел первый ролик на Youtube: как сделать главгероя и привязать к нему камеру. Вроде бы, ничего сложного. Следующий шаг — сделать так, чтобы герой мог двигаться.
И тут — БАМС! Оказывается, мои навыки кодинга изрядно растаяли с момента последнего подхода к PHP. Это единственный язык, на котором я писал что-то сам в далёком-далёком 2006 году. А тут нате вам — C#!
Моя скорость работы над игрой упала буквально до нуля. Мне было непонятно буквально всё: как вставить файл в ассеты, как создать анимацию, как объявлять переменные в C#, какие вообще сущности есть в Unity и ПОЧЕМУ ЭТОТ КОД НЕ РАБОТАЕТ, Я ЖЕ ВСЁ СДЕЛАЛ, КАК В ОБУЧАЮЩЕМ РОЛИКЕ!!!
Было реально трудно, каждый новый вопрос вызывал несколько других, решение приходилось искать очень и очень долго. Постепенно моя игра расширялась, кое-что начало работать, но крайне медленно. Так прошло два-три, может четыре, месяца.
Изначально моей идеей был корридорный шутер в стиле 12 is better than 6, но я понял, что располагая всего лишь одним работником в лице самого себя, я не смогу закончить такую игру за какое-то разумное время.
Я решил снижать количество фич в игре. Но мысли, как бы ещё урезать идею до приемлимых размеров, закончились довольно быстро. И вот сижу я такой перед монитором и понимаю: мне такой объём работ не вывезти… Как раз в это время я решил сменить основную работу, потому что там было слишком много командировок.
В итоге у меня исчезло свободное вечернее время, а размеры проекта требовали невероятно много этого самого времени. А ещё, как на зло, на мониторе у ноутбука появилось чёрное пятно размером со спичечный коробок.
Ну, я и забил, как очень часто делают все начинающие инди.
Прошло примерно 6 лет, за это время я сменил работу ещё один раз, у меня родились ещё двое детей, и я переехал жить во Францию.
Однако, примерно в декабре 2021-ого года я вспомнил о своей попытке в геймдев. И решил снова попробовать. Думаю, что сильнее всего повлияло желание немного раскачать навык программирования, а делать софт совершенно неинтересно. К тому же, делать игру можно в режиме хобби, а вот как писать какой-то другой софт в таком режиме — ума не приложу.
К тому моменту у меня уже был один пет-проджект — подкаст «Планы на завтра» про будущее и долгосрочное мышление, — однако, я решил вновь заняться играми. Больше пет-проджектов хороших и разных.
Итак, файлы на старом ноуте уцелели, а новый бегает намного быстрее. Unity вновь установлена.
Окинув взглядом картину из прошлого, я смело порезал идею до top-down bullet-hell shooter, теперь я вдохновлялся скорее Crimsonland. С таким количеством работы, мне кажется, я справлюсь. За прошедшие с момента первой попытки 6 лет я вообще научился намного лучше оценивать размеры любого проекта и вообще думать в рамках проектного мышления.
Первая строчка кода в новом [старом] проекте была написана на новогодних каникулах 2021 — 2022. Вначале работа шла довольно активно, мне удалось не только реализовать все фичи с прошлого раза, но и сделать несколько других. Но я совсем не подходил к проекту с марта по сентябрь этого года, было сложно заниматься хобби в таких условиях. Но внутренняя мотивация всё равно перевесила, так что я решил доделать игру хотя бы до играбельной версии.
Что и было выполнено буквально несколько дней назад!
Сейчас я понимаю про программирование и геймдев намного больше, чем понимал буквально несколько недель назад, и уж точно больше, чем в 2016 году.
Недавно я дочитал Чистый код Роберта Мартина. В общем и целом, мой код — просто ужасный, нет, он ПРОСТО УЖАСНЫЙ.
Интерфейсов нет, классы кривые-косые, архитектура хаотичная, невероятно много повторений одного и того же кода, из хорошего — только более-менее внятные названия переменных.
Чтобы расширять возможности в игре, например, хотя бы просто добавить несколько дополнительных видов врагов, мне придётся почти полностью с нуля переписать весь код. Графоний пока останется именно таким, какой есть.
Поэтому в моих планах в ближайшее время взяться за архитектуру кода с нуля, чтобы игру можно было развивать. Когда-нибудь я допилю её до early access в Steam, но боюсь даже загадывать когда именно.
Очень прошу всех заходить на kushchin.itch.io, пробовать и комментировать!