Главная Разное Крэш, взрывы и комьюнити: как энтузиасты создали вселенную crash‑игр на одном сайте

Крэш, взрывы и комьюнити: как энтузиасты создали вселенную crash‑игр на одном сайте

Автор: Владимир
Автор: Владимир | 18.01.2023, 10:53

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

Наши собеседники — программист Алексей Сердюков, дизайнерка Мария Середа и журналист Виктор Дьяченко. Вместе они создали проект Crashgamblers. Здесь собраны самые разнообразные crash‑игры: классика про енота Крэша, сумасшедшие автомобильные гонки вроде FlatOut, песочницы, в которых миры буквально разлетаются по кусочкам, и многое другое. Этот сайт стал не только энциклопедией и гидом по теме разрушений, но и местом для обсуждений свежих новостей и воспоминаний.

Мы решили расспросить команду, как появился такой проект, с какими трудностями они сталкивались и каким видят будущее своего сайта.

Алексей, с чего началась техническая часть проекта? Какую архитектуру ты выбрал?

Алексей: Если честно, все началось довольно просто. Я тогда работал из дома и чтобы не «перегореть», потихоньку собирал ссылки на свои любимые игры, связанные с Крэшем. Сначала это был обычный список на GitHub Pages. Потом добавил примитивную базу данных на SQLite, чтобы можно было делиться с друзьями.

Когда стало понятно, что людей приходит больше, чем я ожидал, пришлось всерьез задуматься о более серьезной архитектуре. Мне всегда нравился подход с модульностью, чтобы легко было добавлять новые «разделы игр» или виды контента. Все строилось вокруг REST API, это облегчило масштабирование и интеграцию с фронтендом на Vue. Такой подход еще хорошо работает, когда позже появляются новые функции или идеи от Марии, которая постоянно подкидывает новые фишки для визуализации уровней разрушения или достижений.

Помню, как однажды прочитал цитату из «Крестного отца»: «Ведь всё личное — профессиональное». Вот и тут получилось, что личная коллекция игр вылилась в достаточно интересную инженерную задачу.

Были ли моменты, когда ты жалел, что ввязался в это? Что оказалось самым сложным?

Алексей: Мне кажется, любой человек, который берется за что-то долгое и немного безумное, рано или поздно ловит себя на мысли: «Зачем я это начал?» Особенно, когда ночами ищешь баг, который появляется только по воскресеньям, или твои почтовые уведомления забиваются странными обращениями через форму обратной связи.

Самое сложное, пожалуй, было после того, как на сайт пришла первая «волна» фанатов FlatOut. Они захотели больше интерактивности, обсуждений, а я еще не продумал ничего для форумов и комментариев. Был забавный случай: кто-то предложил сделать функцию «взрыва страницы» — типа, чтобы вся страница разлеталась, когда пользователь нажимает кнопку. Мы долго смеялись и даже чуть было не реализовали такое в пасхалке. Но потом поняли, что лучше сосредоточиться на стабильности.

Главное, что помогает — это поддержка Марии и Виктора. Они всегда знали, когда нужно принести кофе или мем про багов в стиле «It’s not a bug, it’s a feature».

Как устроен бэкенд сайта? Используются ли какие-то автоматизации или агрегаторы?

Алексей: Бэкенд — это такая штука, которую пользователи обычно не видят, но именно он позволяет всему работать плавно. У нас ядро на Python с использованием FastAPI. Я выбрал эту связку, потому что она хорошо масштабируется, и потом легко интегрировать разные инструменты — например, парсеры новостей или агрегаторы рецензий из Steam.

Из автоматизаций больше всего нравится скрипт, который ежедневно «собирает» новые релизы игр, связанных с crash‑темой. У нас есть маленький бот, который мониторит обновления на форумах и даже в Twitter. Иногда весело смотреть, как он путает кроссоверы Mario Kart DS с настоящими гонками на выживание. Но с годами мы его подучили. Агрегировать новости помогает Google Feed API, но ручная модерация всё равно важна — так мы фильтруем неуместные материалы.

Автоматизация еще помогает с загрузкой медиа. Например, у нас есть очередь на сжатие изображений, чтобы страницы грузились быстро даже на мобильных сетях.

Какие технологии тебе ближе: классика вроде PHP и JS или что-то модное, типа Svelte и Go?

Алексей: Я точно из той «олдскульной» гвардии, которая росла с PHP и JavaScript, когда jQuery казался магией. До сих пор вспоминаю, как пытался засунуть в браузер мини-игру про TNT-коробки на чистом JS. Сейчас многие инструменты настолько удобны, что иногда даже кажется, будто программирование стало как сборка конструктора LEGO.

С другой стороны, мне нравится смотреть на свежие решения. Например, Svelte впечатлил меня своей простотой и скоростью. Go тоже интересен — для фоновых сервисов и сканеров на нем работать просто кайф. Тем не менее, в основе crashgamblers.ru я выбрал проверенные временем технологии, чтобы команда без проблем могла подключиться хоть завтра. Но тестировать новую фичу иногда веселее на чём-то максимально новом, как это делают известные стартапы из Кремниевой долины.

Как вы решаете проблему веса — ведь на сайте полно скриншотов, видео, ссылок?

Мария: Я всегда говорю, что «красота требует жертв», но для сайта главное — быстрая загрузка. Даже если пользователь подключён через мобильный интернет на даче. Мы постоянно следим за размером изображений. Все скриншоты проходят оптимизацию через специальные сервисы, чтобы занимать минимум места без потери качества.

Для видео мы чаще используем внешние платформы: YouTube или Rutube. На сайте обычно идёт только превью, а само видео загружается уже по клику. Ещё стараемся не хранить большие архивы на своём сервере, чтобы не рисковать скоростью сайта. Иногда, когда появляется уникальный контент, делаем отдельную ветку для обсуждений с возможностью загрузки картинок через сторонние сервисы.

Помимо очевидного, мы пробуем внедрять современные форматы изображений — типа WebP. Они позволяют сохранить насыщенность и детализацию, при этом экономя место примерно в 2-3 раза. Даже Виктор однажды сказал: «Вот бы можно было так же экономить память у себя в голове после марафона новостей».

Планируете ли мобильную версию или даже нативное приложение?

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

У Марии уже есть несколько концептов для приложения — с «разрушаемыми» меню и анимациями, которые будут напоминать старые интро из FlatOut. Но тут важен баланс между красивыми штуками и удобством. Нам не хочется, чтобы на старых устройствах всё тормозило.

Мы собираем отзывы посетителей. Многие писали, что приложение помогло бы быстро делиться обзорами и фото своих «эпичных» побед. Так что в будущем вероятно появится и мобильное приложение. Мы хотим, чтобы сообщество могло оставаться на связи всегда, где бы ни находились его участники. Как сказал бы Крэш: «Whoo-hoo! Let’s keep smashing!»

 

Вам может понравиться