Возрождение проекта с помощью 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, подключив платежный шлюз.
Следующий рубеж — мультиязычность. Я давно мечтал внедрить универсальный механизм локализации, но раньше откладывал эту задачу: ручной перевод отнял бы месяцы, а бороться за англоязычную аудиторию казалось бесперспективным. В прошлом я даже отклонил предложение одного из игроков бесплатно перевести игру на немецкий.
Сейчас же процесс интеграции занял менее трех дней. Английская версия полностью функционирует, на очереди немецкий язык, а следом — воплощение концепции мультивселенной.
Единый мир в разных измерениях
Одному игроку близок космический антураж: бескрайние просторы Вселенной, планетарные бомбардировки и силовые экраны дредноутов, разрезающие астероиды, словно нагретый клинок масло.
Другой грезит средневековым фэнтези: стрелы, летящие во вражеские полчища, сокрушительный натиск закованной в латы конницы, приятный холод меча в руке и верный боевой скакун рядом.
Третий видит себя прожженным морским адмиралом, командующим субмаринами, линкорами и авианосными группировками, способным безошибочно определять дистанцию до цели по эхолокационному следу глубинной бомбы.
А теперь представьте архитектуру, в которой любители космических баталий, фанаты фэнтези и виртуальные флотоводцы играют на общем сервере по единым математическим законам, но каждый воспринимает этот мир через индивидуальный визуальный сеттинг. Это не просто локализация текста, а смысловой «перевод» всего окружения — именно к реализации этой механики я сейчас подошел.
Окажется ли концепция коммерчески успешной? Не столь важно: сама возможность соединить столь разные вселенные в едином игровом пространстве увлекает меня куда сильнее.
Появились первые отзывы игроков о Silent Hill Townfall с оценкой производительности на различных устройствах
Бывший сценарист The Witcher 3 назвал главным условием идеального квеста момент, когда игрок откладывает геймпад
Разработчики Stellar Blade едва не отменили игру до того, как PlayStation поддержала корейский проект
Microsoft уволила нарративного директора Gears of War: E-Day спустя четыре дня после ухода игры на золото
Из Steam удаляют бюджетный аналог Rocket League, который временно раздают бесплатно
Режиссер кинематографических сцен Halo Studios попал под сокращения сразу после повышения
Аналитики подсчитали, что продажи Star Wars Zero Company превысили миллион копий
Weta Workshop открыла предзаказ на статую Бильбо Бэггинса из фильма Хоббит Нежданное путешествие