Возрождение проекта с помощью Cursor
В далеком 2010 году я решил попробовать свои силы в геймдеве: ниша браузерных космических стратегий тогда переживала явный застой. Знаменитый Starquake на полноценную стратегию не тянул, а в сети безраздельно господствовал OGame вместе с чередой бесконечных клонов. Однако примитивная модель развития колоний и всего три вида ресурсов напрочь убивали ощущение реализма. Изучив чужие наработки на GitHub, я принял решение создавать проект с чистого листа.
Технологический стек того времени был классическим: клиентская часть на Flash и связка PHP + MySQL на бэкенде. Программировал я в одиночку, хотя для визуального оформления привлек художника и дизайнера, которым до сих пор безмерно благодарен. Проект прошел типичную эволюцию: от разработки на личном ноутбуке и запуска на скромном VPS до переезда на мощный выделенный сервер в Hetzner (славные были времена) с внушительным запасом ядер, памяти и дискового пространства.
Именно эта игра подарила мне боевое крещение настоящим HighLoad. До сих пор на технических собеседованиях я удивляю коллег показателями в 5 000 RPS и 30 000 обращений к базе данных за секунду! Причем работало это на стандартном PHP и MySQL, без привлечения модных C++ или NoSQL. Архитектурное решение было нетривиальным: вся СУБД целиком удерживалась в оперативной памяти, а синхронная слейв-реплика занималась дампом на диск и резервным копированием. Пул воркеров php-fpm масштабировался динамически, доходя на пиках нагрузки до пятисот процессов. При этом на том же сервере без малейших сбоев соседствовали и другие проекты.
В золотые времена постоянный онлайн составлял 100–150 активных пользователей. Постепенно финансовая отдача начала угасать, и когда доходы перестали покрывать аренду мощностей, я выждал пару лет и окончательно свернул серверы, осознав, что проект себя исчерпал.
В 2019 году исходники отправились в открытый доступ на GitHub. Главная загвоздка заключалась в утрате базы данных: уцелела лишь полупустая архивная копия за 2012 год, где не хватало значительной части контента.
Искусственный интеллект спешит на помощь
Около месяца назад меня осенило: почему бы не поручить восстановление базы ИИ-ассистенту Cursor? Сможет ли нейросеть проанализировать кодовую базу и воссоздать правильную архитектуру? Результат превзошел ожидания. Мы тщательно прошерстили все исходные файлы и по цепочкам SQL-запросов заново сгенерировали структуру таблиц. Самое забавное, что недостающие игровые сущности удалось спасти благодаря архитектурному антипаттерну — в коде прямым текстом были захардкожены идентификаторы уникальных кораблей, чертежи и их спецификации. Так базу удалось вернуть в исходное рабочее состояние.
Мы подготовили компактную конфигурацию docker-compose — и проект успешно ожил!
Дальше процесс захватил с головой: мы декомпилировали Flash-исходники и полностью переписали клиент, осовременили спрайты флота и сооружений, отполировали анимации, сохранив аутентичный геймплей. Пришлось переработать и экономику: первоначальные 60 видов сырья и 50 химических элементов были явным перебором. Заодно выправили баланс планетарных баз и боевых единиц…
Когда игра окончательно вернулась к жизни, я из любопытства проверил доступность оригинального адреса. И он оказался свободен!
https://21noon.com/ — сразу после закрытия проекта адрес забрали киберсквоттеры, но к текущему моменту они его наконец освободили.
В итоге масштабный рефакторинг и воскрешение заняли чуть более двух недель. На знакомый домен тут же потянулись старые игроки. На этом этапе я снова скрыл репозиторий на GitHub, подключив платежный шлюз.
Следующий рубеж — мультиязычность. Я давно мечтал внедрить универсальный механизм локализации, но раньше откладывал эту задачу: ручной перевод отнял бы месяцы, а бороться за англоязычную аудиторию казалось бесперспективным. В прошлом я даже отклонил предложение одного из игроков бесплатно перевести игру на немецкий.
Сейчас же процесс интеграции занял менее трех дней. Английская версия полностью функционирует, на очереди немецкий язык, а следом — воплощение концепции мультивселенной.
Единый мир в разных измерениях
Одному игроку близок космический антураж: бескрайние просторы Вселенной, планетарные бомбардировки и силовые экраны дредноутов, разрезающие астероиды, словно нагретый клинок масло.
Другой грезит средневековым фэнтези: стрелы, летящие во вражеские полчища, сокрушительный натиск закованной в латы конницы, приятный холод меча в руке и верный боевой скакун рядом.
Третий видит себя прожженным морским адмиралом, командующим субмаринами, линкорами и авианосными группировками, способным безошибочно определять дистанцию до цели по эхолокационному следу глубинной бомбы.
А теперь представьте архитектуру, в которой любители космических баталий, фанаты фэнтези и виртуальные флотоводцы играют на общем сервере по единым математическим законам, но каждый воспринимает этот мир через индивидуальный визуальный сеттинг. Это не просто локализация текста, а смысловой «перевод» всего окружения — именно к реализации этой механики я сейчас подошел.
Окажется ли концепция коммерчески успешной? Не столь важно: сама возможность соединить столь разные вселенные в едином игровом пространстве увлекает меня куда сильнее.
Разработчики Red Dead Redemption подозревали саботаж хакеров из-за обилия багов в мультиплеере
Крику падальщика из Gothic исполнилось почти 80 лет
СМИ: до покупки студии компанией Sony Bungie работала над пятью новыми играми
Вышел трейлер LEGO-спецвыпуска «One Piece. Большой куш», в котором Усопп перепишет историю
Премьера сериала «Фонари» стала самой успешной среди проектов DC Studios на HBO Max
Prime 1 Studio открыла предзаказы на статую по фильму «Годзилла против Кинга Гидоры»
Netflix представил свежий постер новой адаптации One Piece от WIT Studio
Хакеры начали распространять опасные файлы под видом слитого ПК-билда GTA VI