Продолжение истории о создании игры, с первым постом можно ознакомиться выше
Этап 3: Как происходил процесс создания
В этом пункте полностью распишу о том, как проходило создание игры (Занимался этим с утра до ночи, увлекся):
• 16–17 января - Непосредственное создание
Написал все свои хотелки в GPT и он сформировал огромный промт на английском языке (Так Cursor тратит меньше токенов), и работа пошла. Первые версии были абсолютно неиграбельными, поэтому пришлось пройти через бесконечные циклы правок, исправлений ошибок и доработок
Когда скелет игры был готов, началась интеграция "блокчейн технологий", Cursor написал смарт-контракты, я их задеплоил и интегрировал в приложение (Интегрировал = вставил нужную информацию в заранее подготовленное место)
• 18–19 января - Публикация первой версии и работа над защитой
Прежде всего нужно было разобраться, как вообще опубликовать игру в свет, т.к. до этого времени мой максимум - это был запуск бота на собственном ПК, а тут требовался полноценный релиз в интернет. Благо нейросети и тут подсобили, но в любом случае сделать это с полного нуля заняло какое-то время. Наборчик получился такой:
1. Бэкенд: Railway (Бесплатно на месяц, далее 5$ в месяц)
2. Фронтенд: Vercel (бесплатно)
3. Домен: куплен на Cloudflare (~15$ в год)
Сразу после публикации несколько знакомых программистов взломали игру десятками разных способов. Я начал работу над защитой, перепробовал кучу вариантов, но по итогу любая защита на стороне клиента легко обходилась, на этом же клиенте
Единственное стопроцентное решение, которое мне подсказали - перенести игровую логику полностью на сервер через вебсокеты. Считерить стало невозможно, но, к сожалению, игра также стала неиграбельной из-за постоянного пинга и задержек
• 20 января - Интеграция в Base App
В итоге, как бы я не старался сделать не лагающую игру на сервере - у меня не получилось. Я принял решение вернуть всё на клиент, но слелать доступ только через мобильное приложение base.app. В целом интеграция в это приложение, была одна из изначальных целей, просто теперь игра стала эксклюзивчиком
На этом этапе я застрял больше чем на день, так как ебучий курсор ни в какую не хотел прописывать авторизацию через встроенный кошелек приложения. После кучи неудачных попыток я попытался подключать Android-смартфон, чтобы вытянуть логи ошибок, но ничего не вышло. В итоге просто накодил дебаг-панель прямо на сайте, выводил логи туда, копировал и отправлял себе на комп. Спустя 10 таких кругов проблему удалось решить и я подумал что это победа, пока не наступил следующий день...
• 21 января - Интеграция авторизации через Farcaster
Для тех, кто не в курсе: base.app использует Farcaster как социальный профиль. Для авторизации используется их SDK и для реализации этой авторизации я настрадался знатно. Убил просто целую кучу времени, ничего не работает, я присылаю эти логи ошибок курсору в 15 раз, оскорбляю его (Когда делал авторизацию, помогало), короче был злой как собака
В итоге оказалось, что я всё это время пытался тестировать авторизацию во встроенном браузере приложения base.app (Так как мое приложение не отображалось в поиске). Оказывается, эта самая авторизация в браузере совсем не работает, а нужно было просто проиндексировать приложение (запостить ссылку на него в своем профиле) и перейти по этой ссылке и тогда всё заработает (И приложение также можно будет найти в поиске)
Вы бы видели моё лицо в тот момент... Короче, если захотите делать приложение под Farcaster - чтобы оно появилось в поиске и корректно работало, просто опубликуйте ссылку на него в профиле, так пройдет индексация
Продолжение следует...
Alpha Berkut | Telegram | YouTube