Без опыта почти за год сделал игру на Unity + C# в Блокноте и теперь готовлю к релизу в Steam (лонг)
Коротко о том, как я почти за год освоил Unity, не написал ни одной строчки кода и уже получил страницу игры в Steam. Все про движок, локации, механики и немного про Blender.
Кому лень читать — вот ссылочка на страницу в Steam. Всех обнял.
Итак, расскажу все по порядку. Я — вообще не разработчик, по профессии старший редактор ИИ в крупной финтех компании. Так уж вышло, что с детства люблю игры, лутал мирор в пое, собирал коллекции редких маунтов в WoW на протяжении 16 лет и до сих пор в среднем уделяю играм 2-3 часа в день.
Пару лет назад я зашел в Blender 3D и вышел оттуда только через 200 часов. Не скажу, что научился делать все, но какие-то базовые вещи освоил.
В прошлом году попытался сделать мобильную 2D-игру платформер на Unity, но в какой-то момент выгорел и забросил. Пару месяцев отдохнул, а потом вышел Megabonk — клон вампиров с максимально банальной low-poly графикой, но интересным геймплеем, якобы от соло инди-разработчика. Все помнят Megabonk? Я там даже смог парочку рекордов поставить после релиза.
И в этот момент я понял: в Unity есть 3D, а 3D не всегда значит, что графика должна быть идеальной или реалистичной. Вспомнил же и про то, что у меня есть базовые навыки 3D-моделирования, а значит хоть какие-то объекты я смогу создавать сам (в итоге создавал все).
Открыл Unity, открыл Blender и начал что-то делать. Подумал, что прикольно будет стартовать в лаборатории — выбираешься из нее и попадаешь в новый биом. А потом в другой биом. А еще можно в боссов стрелять. А чем стрелять? Пулями? Как-то не интересно, да и баллистику надо рассчитывать, а я с кодом не знаком. Решил, что персонаж будет стрелять фаерболами. Откуда? Из рук, конечно. А какой персонаж? До моделирования персов в Blender я не добрался, поэтому пошел изучать инфу. Оказалось, что есть детище Adobe под названием Mixamo, откуда можно брать модельки и даже прикручивать к ним анимации.
Так я заменил капсулу на персонажа, прицепил все как надо в аниматоре и получил играбельную болванку. Научил ее стрелять огненными шарами, поставил первые платформы и блоки-ловушки.
«Ну все, игра готова» — подумал было я. Но, в таких случаях всегда есть но.
Дальше начался хардкор не для игроков, а лично для меня, поскольку без знаний C# сделать хоть что-то играбельное в Unity почти невозможно. Нанимать разработчика — слишком дорого для молодого парня, да и в эпоху ИИ можно попытаться сделать хоть что-то самому. Благо, в силу моей должности у меня были подписки на все возможные ИИ-инструменты, включая Gemini, ChatGPT, Perplexity и другие. Claude тогда еще не занял свою нишу, по крайней мере я не знал о том, насколько он может быть хорош. Cursor — дороговато и лимиты у него непонятные, а объединять его с Unity я вообще боялся. Из всех инструментов я выбрал ChatGPT, поскольку работал с ним больше всего.
Sublime качать было впадлу, да и я не думал, что напишу много скриптов (как же я ошибался), поэтому решил делать все в блокноте. Прям максимально жестоко, без цвета синтаксиса (все равно ничего не понимаю), иногда без отступов, просто копируя из ИИ и вставляя в скрипт, созданный в Unity. Возможно, именно поэтому разработка заняла у меня столько времени.
Примерно за неделю я создал первую локацию, научил персонажа бегать, прыгать, стрелять, сохраняться, расставил платформы и ловушки. Времени ушло огромное количество. И тут я вспомнил, что хотел добавить боссов.
Если вдруг вам что-то напоминает геймплей, хотя бы по описанию, то вы, возможно, правы — я вдохновлялся I Wanna be the Boshy, легендарной игрушкой, в которую много кто играл, но мало кто проходил. Все те же биомы, ловушки, боссы, хардкор — я такое люблю.
Так вот, с первым боссом я возился почти столько же, сколько и со всей первой локацией — можете заценить финальный пролет по ней.
А вот собсна и босс-файт с великим и ужасным «Облаком Лжи». Это внатуре облако, которое стреляет в вас молниями, летает вокруг с огромной скоростью, а из под земли призывает опасные шипы.
Для пущего эффекта я прикрутил цифры урона при попадании, настроил их в похожем на WoW стиле и добавил боссу ХП-бар. Получилось вполне себе сносно, а босса убить с первой попытки почти невозможно. Но я этого и добивался если честно. На фоне воткнул сочный металл, чтобы вам не было скучно прыгать по арене.
Умер — появляешься у ворот с туманом и снова начинаешь файт с боссом
После победы над облачком исчезает одна из стен, которая открывает проход к следующему биому, или даже лучше будет сказать локации — немного криповому замку с призраками, где все объекты значительно больше персонажа.
Внутри повсюду летают топоры, которые убивают после первого попадания, иногда на голову падают валуны. Мне нужен был максимальный хардкор, поэтому я добавлял почти все, что только приходит в голову. Для погружения в эмбиент добавил мрачную музыку на фон и расставил везде факелы.
В какой-то момент вы дойдете до вершины замка и нужно будет совершить прыжок веры (почти), после чего окажетесь внизу возле портала, который переносит вас в другую часть крипового замка.
Там ситуация еще хуже, повсюду призраки, шипы, провалы в бездну. Вот вам прям смачный кусок геймплея. И не думайте, что это легко, просто каждый пиксель этой игры я тестировал сам, перепроходя по 100500 раз. Поэтому уже наловчился.
Пройдя весь замок, вы наконец окажетесь у нового тумана. Сказать, что следующий босс сложный — ничего не сказать. Я сам не ожидал, что он получится таким адовым, но что есть, то есть. По сути это просто летающая каменюка, но неожиданно она кидает в вас топоры и стреляет лазерами. Больше всего мои друзья говорили, что моя игра в целом это «Сны при температуре 39», но я и не против, пусть это будет киллер-фича. Как-то я даже задумался, что так и стоило ее назвать, но остановился на Painworld.
А вот и сам босс:
Дальше не буду спойлерить все и рассказывать про каждую локацию, но покажу некоторые элементы. Например, после Монолита вы попадаете в лес: там есть торнадо, повалены деревья, стоят пустые палатки. После леса — к затерянной во времени церкви. Пару пасхалок возле нее я тоже оставил.
Одна из локаций, которую я люблю больше всего — гравитационный уровень. Одна из механик там — буквально головокружительная (не смейтесь). По сути это головоломка, где вам нужно менять гравитацию сверху вниз и обратно. Обычного прыжка нет, нажали на пробел и полетели наверх. Нажали снова и полетели вниз. Конечно, не обошлось и без ловушек.
Ладно, хватит о геймплее, расскажу лучше про меню. Запарился я с ним ой как, потому что сначала было так:
А потом так:
В итоге я понял, что «так» мне не нравится и пошел ва-банк: создал нормальную локацию, убрал персонажа, заменил страшнющие кнопки. Параллельно узнал, что все это добро надо будет переводить на несколько языков, если я хочу хоть что-то продать, а значит просто png-кнопки мне не подходят. Примерно неделю я потратил на новое меню с хотя бы какими-то настроками и красивыми анимациями.
И в итоге получил это:
Ну, вроде получилось лучше, чем «так». Заодно перевел все на 5 языков, включая великий и могучий, плюс инглиш, спаниш, франциш и дойч.
Вот так, кстати, выглядит финальная карта со всеми биомами, если выпилить туман:
Все бесшовно, разве что меняется небо и музыка, а по мере прохождения игры вы стреляете не одним фаерболом, а двумя и даже тремя. Потому что боссы становятся жирнее, опаснее и дамажить их нужно активнее.
А теперь про купол в верхней части карты — это еще один лес. Но лес максимально непростой, а с доброй сотней порталов. Чтобы игроки страдали (любя, конечно) я сделал так, что каждый из этих порталов ведет в какой-то другой портал. В этом жутком лесу вам нужно найти один единственный портал, который перенесет в финальную локу. Вот такое вот чилловое испытание.
Ускоренный процесс создания этой локи я закидывал на YouTube. Грузанул бы сюда, да пдф не позволяет, сори!
Подведу итоги
- У игры уже есть одобренная страница в Steam, я максимально постарался красиво ее оформить
- Все 3D я делал сам, никакие ассеты не украл, взял только персонажа с анимациями с Mixamo, но Adobe это разрешает
- Прекрасно провел каждый вечер за последние полгода, получил просто невероятный опыт и, если вдруг буду делать еще игру, уверен, что она получится в сотню раз красивее и интереснее
- Начал понимать C# на довольно хорошем уровне, легко читаю код, могу понять, где проблема, но написать ничего не могу
- Регнул игру на фестиваль «Играм быть» в июне, получил одобрение
- Сейчас имею 83 вишлиста только за счет того, что Steam иногда пропускает трафик на мою игру в разделе «Инди»
- Смонитровал прикольный трейлер и выложил на YouTube, хоть там его никто и не смотрит
- В планах есть залететь в VK Play и попробовать продавать игру там, но нужно быть самозанятым, а мне впадлу оформляться
- Поставил на игру ценник по покупной способности, в РФ будет стоить около 100 рублей, а если захотите взять за деревянные, то примерно $5. Это не значит, что я оцениваю почти весь свой год разработки в 100 рублей, но детишки тоже хотят играть. Думаю, с карманных быстро накопят
Ловите трейлер уже наконец, а то я устал печатать.
Вот сижу теперь, когда игра готова, прошла все проверки и когда-то выйдет в релиз, и вспоминаю, как в детстве в редакторе Warcraft 3 создавал карты с разным ландшафтом, что-то там строил, крутил и вертел, мечтал о том, что когда-то смогу создать полноценную игру. Сам, с нуля, без чьей-то помощи. Вот так и получилось.
Я не питаю надежд стать миллиардером с этого проекта, у меня есть основная работа, а это — просто приятное вечернее хобби. Если оно принесет мне признание, хейт или богатство — так тому и быть.
С вами был ваш покорный слуга, известный в виртуальных мирах как Kaledan, увидимся на просторах Painworld (если вы не боитесь хардкорных игр). Всем бобра