Без опыта почти за год сделал игру на Unity + C# в Блокноте и теперь готовлю к релизу в Steam (лонг)

Коротко о том, как я почти за год освоил Unity, не написал ни одной строчки кода и уже получил страницу игры в Steam. Все про движок, локации, механики и немного про Blender.

Да, я назвал ее Painworld. Потом поймете
Да, я назвал ее Painworld. Потом поймете

Кому лень читать — вот ссылочка на страницу в Steam. Всех обнял.

Итак, расскажу все по порядку. Я — вообще не разработчик, по профессии старший редактор ИИ в крупной финтех компании. Так уж вышло, что с детства люблю игры, лутал мирор в пое, собирал коллекции редких маунтов в WoW на протяжении 16 лет и до сих пор в среднем уделяю играм 2-3 часа в день.

Пару лет назад я зашел в Blender 3D и вышел оттуда только через 200 часов. Не скажу, что научился делать все, но какие-то базовые вещи освоил.

В прошлом году попытался сделать мобильную 2D-игру платформер на Unity, но в какой-то момент выгорел и забросил. Пару месяцев отдохнул, а потом вышел Megabonk — клон вампиров с максимально банальной low-poly графикой, но интересным геймплеем, якобы от соло инди-разработчика. Все помнят Megabonk? Я там даже смог парочку рекордов поставить после релиза.

Без опыта почти за год сделал игру на Unity + C# в Блокноте и теперь готовлю к релизу в Steam (лонг)

И в этот момент я понял: в Unity есть 3D, а 3D не всегда значит, что графика должна быть идеальной или реалистичной. Вспомнил же и про то, что у меня есть базовые навыки 3D-моделирования, а значит хоть какие-то объекты я смогу создавать сам (в итоге создавал все).

Открыл Unity, открыл Blender и начал что-то делать. Подумал, что прикольно будет стартовать в лаборатории — выбираешься из нее и попадаешь в новый биом. А потом в другой биом. А еще можно в боссов стрелять. А чем стрелять? Пулями? Как-то не интересно, да и баллистику надо рассчитывать, а я с кодом не знаком. Решил, что персонаж будет стрелять фаерболами. Откуда? Из рук, конечно. А какой персонаж? До моделирования персов в Blender я не добрался, поэтому пошел изучать инфу. Оказалось, что есть детище Adobe под названием Mixamo, откуда можно брать модельки и даже прикручивать к ним анимации.

Выбрал эту мадам, она подошла под фаерболы
Выбрал эту мадам, она подошла под фаерболы

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

«Ну все, игра готова» — подумал было я. Но, в таких случаях всегда есть но.

Дальше начался хардкор не для игроков, а лично для меня, поскольку без знаний C# сделать хоть что-то играбельное в Unity почти невозможно. Нанимать разработчика — слишком дорого для молодого парня, да и в эпоху ИИ можно попытаться сделать хоть что-то самому. Благо, в силу моей должности у меня были подписки на все возможные ИИ-инструменты, включая Gemini, ChatGPT, Perplexity и другие. Claude тогда еще не занял свою нишу, по крайней мере я не знал о том, насколько он может быть хорош. Cursor — дороговато и лимиты у него непонятные, а объединять его с Unity я вообще боялся. Из всех инструментов я выбрал ChatGPT, поскольку работал с ним больше всего.

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

Без опыта почти за год сделал игру на Unity + C# в Блокноте и теперь готовлю к релизу в Steam (лонг)

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

Если вдруг вам что-то напоминает геймплей, хотя бы по описанию, то вы, возможно, правы — я вдохновлялся I Wanna be the Boshy, легендарной игрушкой, в которую много кто играл, но мало кто проходил. Все те же биомы, ловушки, боссы, хардкор — я такое люблю.

Так вот, с первым боссом я возился почти столько же, сколько и со всей первой локацией — можете заценить финальный пролет по ней.

А вот собсна и босс-файт с великим и ужасным «Облаком Лжи». Это внатуре облако, которое стреляет в вас молниями, летает вокруг с огромной скоростью, а из под земли призывает опасные шипы.

Мерцания я в итоге пофиксил, это шейдер барахлил

Для пущего эффекта я прикрутил цифры урона при попадании, настроил их в похожем на WoW стиле и добавил боссу ХП-бар. Получилось вполне себе сносно, а босса убить с первой попытки почти невозможно. Но я этого и добивался если честно. На фоне воткнул сочный металл, чтобы вам не было скучно прыгать по арене.

Умер — появляешься у ворот с туманом и снова начинаешь файт с боссом

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

Дойти до замка нужно по такому симпотному леску

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

Вот и поднимайся по лестнице после такого

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

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

Тут скорость х2, если что

Пройдя весь замок, вы наконец окажетесь у нового тумана. Сказать, что следующий босс сложный — ничего не сказать. Я сам не ожидал, что он получится таким адовым, но что есть, то есть. По сути это просто летающая каменюка, но неожиданно она кидает в вас топоры и стреляет лазерами. Больше всего мои друзья говорили, что моя игра в целом это «Сны при температуре 39», но я и не против, пусть это будет киллер-фича. Как-то я даже задумался, что так и стоило ее назвать, но остановился на Painworld.

А вот и сам босс:

Иногда приходилось файтиться с ним несколько раз ради пары секунд футажей

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

Со светом в финальной версии я еще плотно поработал, чтобы небо так не слепило

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

На музыку не обращайте внимания, я ее заменил потом на техно

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

Без опыта почти за год сделал игру на Unity + C# в Блокноте и теперь готовлю к релизу в Steam (лонг)

А потом так:

Без опыта почти за год сделал игру на Unity + C# в Блокноте и теперь готовлю к релизу в Steam (лонг)

В итоге я понял, что «так» мне не нравится и пошел ва-банк: создал нормальную локацию, убрал персонажа, заменил страшнющие кнопки. Параллельно узнал, что все это добро надо будет переводить на несколько языков, если я хочу хоть что-то продать, а значит просто png-кнопки мне не подходят. Примерно неделю я потратил на новое меню с хотя бы какими-то настроками и красивыми анимациями.

Вот собсна лока под меню.
Вот собсна лока под меню.

И в итоге получил это:

Ну, вроде получилось лучше, чем «так». Заодно перевел все на 5 языков, включая великий и могучий, плюс инглиш, спаниш, франциш и дойч.

Вот так, кстати, выглядит финальная карта со всеми биомами, если выпилить туман:

Заценили сверху купол? Ниже расскажу про него
Заценили сверху купол? Ниже расскажу про него

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

А теперь про купол в верхней части карты — это еще один лес. Но лес максимально непростой, а с доброй сотней порталов. Чтобы игроки страдали (любя, конечно) я сделал так, что каждый из этих порталов ведет в какой-то другой портал. В этом жутком лесу вам нужно найти один единственный портал, который перенесет в финальную локу. Вот такое вот чилловое испытание.

К этому моменту я уже научился делать красивые деревья
К этому моменту я уже научился делать красивые деревья

Ускоренный процесс создания этой локи я закидывал на YouTube. Грузанул бы сюда, да пдф не позволяет, сори!

Подведу итоги

  • У игры уже есть одобренная страница в Steam, я максимально постарался красиво ее оформить
  • Все 3D я делал сам, никакие ассеты не украл, взял только персонажа с анимациями с Mixamo, но Adobe это разрешает
  • Прекрасно провел каждый вечер за последние полгода, получил просто невероятный опыт и, если вдруг буду делать еще игру, уверен, что она получится в сотню раз красивее и интереснее
  • Начал понимать C# на довольно хорошем уровне, легко читаю код, могу понять, где проблема, но написать ничего не могу
  • Регнул игру на фестиваль «Играм быть» в июне, получил одобрение
  • Сейчас имею 83 вишлиста только за счет того, что Steam иногда пропускает трафик на мою игру в разделе «Инди»
  • Смонитровал прикольный трейлер и выложил на YouTube, хоть там его никто и не смотрит
  • В планах есть залететь в VK Play и попробовать продавать игру там, но нужно быть самозанятым, а мне впадлу оформляться
  • Поставил на игру ценник по покупной способности, в РФ будет стоить около 100 рублей, а если захотите взять за деревянные, то примерно $5. Это не значит, что я оцениваю почти весь свой год разработки в 100 рублей, но детишки тоже хотят играть. Думаю, с карманных быстро накопят

Ловите трейлер уже наконец, а то я устал печатать.

Вот сижу теперь, когда игра готова, прошла все проверки и когда-то выйдет в релиз, и вспоминаю, как в детстве в редакторе Warcraft 3 создавал карты с разным ландшафтом, что-то там строил, крутил и вертел, мечтал о том, что когда-то смогу создать полноценную игру. Сам, с нуля, без чьей-то помощи. Вот так и получилось.

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

С вами был ваш покорный слуга, известный в виртуальных мирах как Kaledan, увидимся на просторах Painworld (если вы не боитесь хардкорных игр). Всем бобра

63
13
7
3
3
2
1
50 комментариев