Всем привет, меня зовут Henj и я тут новенький.
Хочу рассказать о своем небольшом хобби - создании онлайн игры.
Немного о себе
Я являюсь простым работягой, деятельность которого никак не связана с созданием игр или программированием, но около 4 лет назад мне пришла в голову идея игры, в которую я бы сам с удовольствием поиграл.
Сразу отмечу - были некоторые попытки сделать рабочий билд на Unity по мануалам, но большинство тех руководств, которые я нашел были либо от очень старых версий, либо написаны явно не для тех, кто только начинает. А так же очень мало информации из сегмента онлайн.
Период блокнотика
К сожалению (или счастью), ни времени, ни желания учиться программированию у меня не было и с тех пор я начал фиксировать все, что касается игры в блокнотик. Наброски интерфейса, игровые механики, истории персонажей.
Так продолжалось достаточно долго (почти 3 года, если честно) и в какой-то момент я понял, что:
1. Материалов уже достаточно, чтобы сделать прототип
2. Блокнотик заканчивается и надо начинать что-то переносить в компьютер.
Период форумов
Как и любой человек с хорошей (на его взгляд идеей) я понимал на тот момент, что есть два основных пути реализации идеи - либо делаешь ты, либо делают за тебя.
Покопавшись немного в этих Ваших интернетах я нашел несколько тематических форумов, где, как мне казалось я могу найти заинтересованных энтузиастов, которым бы понравилась идея и они бы взялись за её разработку. Да, сейчас этот шаг выглядит забавным, но тогда мне казалось, что люди могут заинтересоваться проектом на этапе идеи.
В общем я подготовил ГДД (как смог), оформил посты, свои мысли и эскизы, опубликовал и стал ждать. И дождался.
Если пропустить весь негатив, который мне написали по поводу моей идеи - то этот блок останется пустым. Технически если конвертировать всю энергию "Корованщиков" в написание кода - игра была бы уже готова.
Поняв принцип работы форумов, я решил начать делать игру самому. Но, как я уже говорил ранее - в код я не умею и не хочу, и программистом становиться я тоже не собираюсь, а значит нужен какой-то выход. В качестве решения я попробовал нейросети. В целом было понимание, что код они пишут не великолепно, но какого-то результата от них добиться все же хотелось.
Еще немного в этом же периоде я часто задавал конкретные вопросы, мол нейрогенерирую игру, подскажите движок что попроще или решение какой-то конкретной проблемы, но, опять же, вместо выбора условного сетевого протокола получал ответы в духе "бросай все, делай 3-в-ряд". А я вот не хотел 3-в-ряд, я хотел онлайн игру.
Период раннего прототипа
Не смотря на то, что "онлайн игра" подразумевает нечто сложное, моя концепция была достаточно простая - я хотел сделать соревновательную игру 1х1, где игроки сражаются за персонажей, выбирая действия пошагово. По сравнению с играми в реальном времени сразу отпала куча проблем (с предугадыванием, пингом и т.д. до бесконечности). Все что мне нужно было - подружить пару клиентов и сделать так, чтобы игра определяла победителя по моим правилам.
Основа игры - одновременные ходы и предугадывание действий соперника. Игрок выбирает одно из 5 действий, противник делает тоже самое. Результат и вот уже базовый геймплей готов.
Первый прототип делал на PhotonPun, но столкнулся с большим количеством ошибок в логике, т.к. взаимодействие происходило на одном из клиентов, который и становился сервером. Немного помучив этот прототип и накидав графику я понял, что Pun мне не подходит и решил перебраться на java, перенеся свою игру в браузер.
Период браузерной игры
Этот период был самым коротким, но крайне значимым в разработке. Именно в этот период я стал активно вести свой девлог, делать посты на различных ресурсах, пробираясь через хейтеров нейрослопа и потихоньку собирать вокруг себя небольшое комьюнити. В основном из программистов, которым было интересно "а что это он такое делает так неправильно". Сразу скажу, что довольно много людей в этот момент (когда игра приобрела уже вид, отдаленно похожий на игру) вполне положительно реагировали, задавали вопросы, просили рассказать о процессе и концепции. В целом меня все устраивало.
Чем примечателен этот период?
В этот момент в игру добавил новые, более сложные механики - пассивные способности, которые являются основой геймплея. Именно из расчета их перезарядок и строится игровая тактика.
Именно в этот период я познакомился с людьми, которые с высоты своего опыта с радостью давали советы и обратную связь. Некоторые даже играли в игру онлайн между собой.
И, возможно, игра так и осталось бы браузерной, если бы не нейросети. Столкнулся с проблемой, с которой бы я не столкнулся, будь я более опытным или умнее, я не знаю. В общем в какой-то момент я понял, что я не могу добавить определенные фичи, ввиду ограничения клиентской версии. Во первых - код стал практически неподъемным и нейронки просто не могли дочитать даже один скрипт до конца, во вторых - очень уж тяжело нейронке доказать, что "кнопка уехала влево".
Конечно, я немного расстроился, что обменял время на опыт, но решив не затягивать этот процесс я снова вернулся в Unity.
Период Unity (клиент-сервер)
Проанализировав предыдущие ошибки я понял, что варианты с клиент-клиентом мне не подходят (уж не помню хронологию, но где-то между PUN и браузером я потрогал и Unity FGO и Mirror и еще что-то полуживое).
Тогда принял решение сделать выделенный сервер. И - невероятная удача. Это оказалось в разы проще, чем заморачиваться с "готовыми" решениями, не понимая в документацию. Тут достаточно было наклепать базу игровой логики, а потом докидывать поочередно функции, тестируя их и корректируя результат повторными обращениями к нейросети.
Теперь я начал получать еще большее удовольствие от процесса. Если раньше над самой маленькой фичей можно было страдать день-два, то тут за неделю мне удалось перенести весь Web на сервер, да еще и так, что оно работало!
Немного улучшив базовый прототип я начал улучшать и общую концепцию игры. На этом этапе я добавил еще парочку игровых персонажей, для которых сделал уникальные механики и способности
Поняв, что результат прототипа меня снова удовлетворяет в том виде, в котором он есть прямо сейчас - я начал потихонечку задумываться о визуальной составляющей.
Тут у меня возникли проблемы, как ни странно, не технические. Как оказалось у меня вообще нет вкуса в плане интерфейса. Я буквально готов играть в текстовые игры, мне вообще это не важно. И, к сожалению, это спроецировалось и на мою игру. Геймплейный интерфейс я перелопачивал довольно долго.
Дальше улучшения были буквально "по капельке". Где-то дорисовать форму, где-то переместить панель. Все варианты я уж не буду прикреплять, а то получится слайдшоу на несколько часов. Вот такая была самая долгая по продолжительности версия:
Небольшое лирическое отступление
Период всего
Я довольно много рассказал об интерфейсе, но что же еще есть в моей игре? Вот что я хотел видеть из ключевых моментов:
1. Увлекательный геймплей, где простота базовых механик умножается на глубину взаимодействия способностей персонажей
2. Сюжет каждого персонажа и мира в целом. Каждый персонаж - не просто болванчик, а личность, имеющая свою мотивацию и историю (хотя, фактически, для игры в этом не было необходимости, все-таки сессионка)
3. Голоса персонажей, сделанные живыми людьми. Я напомню, что нейросети - всего лишь средство для достижения цели, и хотя бы такие мелочи мне хотелось сделать более душевными.
4. Соревнование в чистом виде, где только от твоих действий зависит твоя победа
5. Работающий матчмейкинг, чтобы люди могли сразиться из любого места.
В целом всем этим я занимался параллельно. Генерил арты персонажей, искал энтузиастов для озвучки, писал сюжет и выкладывал его на тематических форумах.
Вот например небольшие тизеры персонажей, которые я сделал вместе с друзьями, которые решили поучаствовать:
В добавок к этому не забывал и о комьюнити - вел Devlog, а так же стримил разработку на твич. (после основной работы). Рекордная серия стримов - 100 дней без перерыва.
Период мобильной игры.
Изрядно намучившись с оптимизацией кроссплатформенной игры я принял волевое решение сделать игру сначала на мобильный телефон. Игра все еще кроссплатформенная. В нее все еще легко можно поиграть с компьютера. Просто текущая версия интерфейса - оптимизирована больше под мобильные устройства, только и всего. Это решило проблему с распылением внимания и позволило сконцентрироваться на действительно важных вещах.
Еще больше механик, больше хорошего визуала, больше работы с обратной связью комьюнити.
И вот я получил действительно прототип, который похож на прототип. Властью, данной мне, я даже назвал его Альфа-версией (хотя я все еще не понимаю эту градацию альфабетагамма версий).
Актуальное состояние геймплея примерно такое:
Суть поста
Я не могу сказать, что это мотивационный пост, или пост, где ГД рассказывает о своих успехах. Я просто поделился своим опытом и рассказал о своем хобби. Надеюсь кому-то будет интересно прочитать, а может кто-то даже заинтересуется проектом.
В любом случае - это мой первый настолько большой пост про мою игру. Не знаю будут ли еще. Возможно я что-то упустил или недорассказал.
Я продолжу делать игру, постараюсь сделать её настолько хорошей, чтобы в нее интересно было играть.
Ответы на часто задаваемые вопросы
Какая цель разработки? Что будет, если игра не станет популярной?
У самурая нет цели. Я не планирую становиться программистом, гейм-дизайнером или кем-то еще в сфере игровой индустрии. Мне нравится моя основная работа.
Так же у меня нет в планах получить доход от игры. Для меня это хобби. Я просто получаю удовольствие от процесса.
Как давно ты делаешь игру?
Первая строчка кода появилась в январе 2025 года. До этого все было в блокнотике.
Игра совершенно бесплатная и всегда будет таковой.
Как называется игра? Твоя игра уже доступна? В нее можно поиграть?
Игра называется Synthetic Eclipse. Сервер всегда онлайн. Скачать можно с RuStore и ItchIO и играть на PC или мобильном телефоне Android.
Какие нейросети используешь?
Использую более 50 нейронок. Ключевой момент - все бесплатные. Возможно когда-нибудь сделаю пост по оптимизации работы с ними.
Какой игровой цикл? В чем заключается геймплей?
Игровой цикл примерно следующий:
1. Игрок выбирает персонажа и находит себе соперника (подбором занимается матчмейкинг)
2. Игрок выбирает таланты, усиливая свои основные способности
3. Игроки одновременно выбирают основные способности
Вот небольшое видео геймплея:
Твоя игра похожа на "Бойцовский клуб" или что-то еще из браузеров 2000х
Да, но об этом я узнал уже после того, как сделал прототип. К сожалению я не застал период рассвета подобных игр и с радостью бы сказал, что я "ими вдохновлялся" если бы это было правдой.
Где можно узнать подробнее о тебе или об игре?
Всю актуальную информацию я публикую в своем телеграмм канале. Там же делаю анонсы стримов и каких-то важных новостей.
Ты продолжаешь работать над игрой?
Да, каждый день стараюсь сделать её хоть немного лучше.
Если я что-то забыл, или Вам хочется что-то узнать - я постараюсь ответить всем. Естественно почти год жизни тяжело уместить в один пост.
На этом, пожалуй, у меня все. Спасибо большое за прочтение и хорошего дня!