Как я не выпустил ни одной игры, но случайно стал веб-разработчиком
В конце прошлой части я остановился на том, что мои готовые игры оказались заперты на жестком диске. Apple и Google со своими сторами и политикой оплаты аккаунтов разработчика из РФ вежливо указали мне на дверь.
И тут у меня появилась идея. Если я не могу пробиться в их экосистему, чтобы показать свои проекты, почему бы не создать свою собственную площадку? Не очередной магазин приложений, а эдакую доску объявлений и витрину. Место, где такие же инди-разработчики, как я, фрилансеры и паблишеры смогут находить друг друга, собирать команды и показывать свои прототипы. Назвать всё это дело было решено DevBoard.
Снова Figma и смена курса
Так как амбиции снова ударили в голову, игровой движок Godot пришлось закрыть. Для создания полноценного веб-сервиса нужны были совершенно другие инструменты.
Я, как верный адепт визуализации, первым делом открыл свою любимую Фигму. По накатанной схеме я отрисовал интерфейсы: темная тема (не смейтесь), витрина проектов с фильтрами по жанрам и движкам, профили разработчиков и система авторизации. На картинке всё выглядело сочно, но как это заставить работать?
В качестве «мозгов» для сайта был выбран современный стек: React для визуальной части (фронтенда) и Supabase в качестве базы данных и системы регистрации (бэкенда).
Разработка и обманчивая легкость
На удивление, процесс написания логики шел бодро. React оказался довольно логичным, а Supabase брал на себя кучу рутины. Я прикрутил регистрацию пользователей, настроил публичные права доступа (RLS), чтобы любой посетитель мог видеть витрину игр, и написал фильтры.
Сначала я тестировал всё через облачный сервис Vercel. Там сайт работал как часы, правда, из-за блокировок провайдеров приходилось использовать внутренний прокси, чтобы запросы к базе данных доходили куда нужно. Потом было принято при помощи мощностей cloudflare проксировать каждый запрос. Я уже потирал руки, думая, что дело в шляпе. Но я еще никогда так не ошибался. Если вам нужен совет, не тратьте время на эти зарубежные площадки, ТПСУ Роскомнадзора блокироет их ip адреса и есть вариант что сегодня ваш сайт открывается, а завтра уже нет.
Финальный босс
Чтобы сайт работал независимо и стабильно, я арендовал виртуальный сервер, накатил на него Ubuntu.
Первым моим врагом стала командная строка винды, через которую и происходит управление виртуальным сервером (весь фнотенд написан в vs code). Когда я пытался прописать в конфигурационном файле ключи от базы данных, кнопка Backspace вместо удаления символов просто начала печатать какую-то дичь. В итоге файл .env сломался, и скомпилированный сайт, не зная адреса базы данных, начал делать запросы... сам к себе.
Я открываю свой новенький сайт по IP-адресу, пытаюсь войти в аккаунт, а мне в лицо летит красная ошибка: Unexpected token '<', "<html>... is not valid JSON". Сайт пытался прочитать HTML-страницу как базу данных.
Дальше — больше. Когда я починил ключи, вылезла следующая проблема. Код был написан хитро: он обращался к виртуальной папке /supabase-api/, а Vercel под капотом сам перекидывал это в базу данных. Но на моем голом сервере за всё отвечал Nginx. И он вообще не понимал, что от него хотят.
Началась долгая и мучительная настройка прокси-сервера. Nginx то выдавал ошибку 403 Forbidden, то 401 Unauthorized с издевательской припиской Invalid API key. Оказалось, что при перенаправлении запросов мой сервер просто «съедал» заголовки с ключами авторизации, и Supabase не пускал нас на порог.
Итог
После десятка пересборок, жестких очисток кэша в браузере и правильной настройки передачи заголовков (proxy_pass_request_headers on), магия свершилась. Красные ошибки в консоли исчезли. Игры подтянулись из базы данных. Регистрация заработала.
DevBoard ожил. Теперь у меня есть полностью функционирующая платформа собственной разработки. Я выложил туда и свою первую попытку с рыцарями, и свежеиспеченный тетрис.






Экраны сайта
И знаете что? Весь этот путь с созданием сайта, возней с серверами и базами данных показался мне настолько увлекательным, что я решил не останавливаться на достигнутом.
Но это, как говорится, уже совсем другая история.
Если вы тоже делаете игру «в стол», ищете художника, программиста или просто хотите показать свой прототип миру — залетайте на DevBoard (возможно поисковые системы нас еще не индексировали, так что адрес увидите на скриншотах выше). Буду рад видеть ваши проекты на витрине! А так же буду рад вашей обратной связи, готов обсудить фичи и фишки, которые могу сделать платформу удобной для пользователей!































