Оживление покойника
Примерно в 1997 году, когда мне было 12 лет, у меня появился мой первый компьютер 80386SX. В 1993 году появились первые Pentium-ы, но а у нас хватило денег только на это "старьё". По тем временам этот компьютер считался уже устаревшим, так как 80386SX вышел в 1988.
Одна из первых игр, которую я прошёл от и до с большим удовольствием на моём первом ПК - это игра 1995 года под названием Tyrian:



Кадры из игры Tyrian
Tyrian - это аркадный вертикальный скроллер, разработанный компанией Eclipse Productions под DOS. Игра, кстати, была выпущена издателем Epic Megagames, который в будущем переименовался в Epic Games и наверняка многие знают эту компанию сегодня. В 1999 году игра была переиздана как Tyrian 2000. А позже появился опенсорсный порт OpenTyrian, который я несколько раз перепрошёл на современном ПК и даже на макбуке с огромным удовольствием.
Игра приносит удовольствие благодаря своей простоте и возможности перед каждым уровнем прокачивать 3 вида оружия, корабль, генератор и щит. Буквально после каждой пройденной миссии ты можешь вдоволь поиграться с ползунками прокачки своих орудий и подобрать оптимальное сочетание разброса и мощи под следующих противников. А ещё после каждого уровня появляются новые виды девайсов, коих в игре огромное множество.



Меню прокачки оружия и брони
Однако 2 вещи меня расстраивали в этой игре на протяжении 30+ лет.
1. В ней нет возможности выбора языка и никто никогда не выпускал локализаций для этой игры. А в игре есть что-то типа кат-сцен иногда и сообщений (писем), которые приходят каждый уровень. Мне всегда было интересно знать смысл истории, но скудные знания английского не позволяли отчётливо понимать литературный английский текст.
2. Я так и не смог поиграть в сетевой режим (Modem/Network Game). В 1997 году у меня ещё не было модема. А когда появился Pentium 166 и модем - уже была эра Windows 98. Друзья играли в более современные игры под Windows и найти союзника с модемом и желанием играть в это старьё - не удалось. А в текущих реалиях это стало невозможным, так как игра поддерживает только игру по модему, serial кабелю и протоколу IPX, который давно мёртв. Его вытеснил более современный TCP/IP.
Поскольку я являюсь программистом со стажем 20+ лет профессиональным вайбкодером, а не так давно вышла обновлённая нейросеть Grok 4.5 от xAI, заточенная под задачи, связанные с разработкой, я подумал - чёрт возьми, Илон Маск! Ты должен осуществить мою мечту, твой выход!
Я решил немного оживить легендарную игру и добавить следующие возможности:
Возможность играть в неё в браузере, в том числе с мобильных устройств (к слову, такая возможность была и раньше, через DOSBox). Но без адаптации под мобильные экраны и тач управление.
Добавить поддержку мультиязычности, чтобы в настройках можно было выбирать язык.
Сделать русский перевод всей игры.
Добавить возможность играть по сети, через интернет. Функцию создания комнат, в которые другой игрок может заходить.
И за пару дней мне удалось это сделать на платной подписке Cursor с Grok 4.5!


Tyrian 2000, русский язык
Так я узнал, что главного героя игры зовут Трент. И что ему периодически пишет Мама, помимо прочего :D
Ну и периодически можно найти полезные предупреждения касательно следующей миссии
Сложность перевода заключалась в том, что шрифт в игре - это по сути "спрайты", а не реальный шрифт с поддержкой символов всех языков, как сейчас. То есть чтобы добавить новый язык в игру - нужно ещё и перерисовать изображения каждой буквы алфавита. Нейронка отлично справилась с этой задачей. Вручную процесс бы занял дни/недели.
Литературный перевод местами хромает. Для качественного перевода было бы лучше использовать специализированные для этого нейросети, типа DeepL или живого человека. Но у меня была цель - протестировать Grok 4.5, поэтому весь скоуп задач был отдан ему.
Также я добавил возможность играть не только в полноэкранном/оконном режиме, но и на легендарном мониторе Samsung SyncMaster 3, который выпускался в те годы. Особенно это удобно на больших мониторах, от 27 дюймов. Так как нативное разрешение игры всего 320х200 точек. И в полноэкранном режиме при такой диагонали это сильно бьёт по глазам устаревшей графикой.
Идея создать полноценный работающий сетевой режим, через интернет, да ещё и через браузер - изначально вообще казалась призрачной. Но я подумал: в браузерах есть WebSocket. Значит нужен какой-то транслятор из старого протокола в WebSocket. И какая-то внешняя надстройка, позволяющая создавать комнаты и заходить в них. Было решено сделать обычное Web окно поверх игры и результат превзошёл мои ожидания:


Игра по сети
Удалось создать многокомнатный сетевой режим! Кинул ссылку своему другу и впервые за 30 лет я смог поиграть в русскую Tyrian по сети! Моей радости не было предела, ведь сбылась моя давняя мечта!
Я, кстати, нашёл OpenTyrian в Google Play на Android. Но увы: Это приложение недоступно для ваших устройств. Но мне стало интересно почитать отзывы, и вот что я там нашёл:
Некоторые игроки жаловались на неудобное управление и движение корабля с инерцией. Я тоже замечал, что при движении мыши корабль двигается с инерцией, как желе. Это немного портило впечатления от игры. Поэтому я решил исправить и этот момент. И теперь в настройках можно выбирать тип управления: Точное либо Классика (по умолчанию стоит Точное):
Наверное, данный пост следовало разместить на Хабре, а не здесь, скажете вы. Но он, всё-таки, больше про вайб 90х и несбывшуюся мечту. Технические детали я упомянул тоже, для тех, кому это интересно.
Я выложил игру на свой слабенький сервер (VDS на 2 ядрах):
чтобы все, кто её пропустили 30 лет назад или никогда не играл - мог поиграть и насладиться прекрасным геймплеем и великолепной MIDI музыкой. Теперь ещё и на русском языке и с возможностью поиграть в пати с другом в аркадный режим.
Несмотря на ОЧЕНЬ старую графику - игра, я уверен, понравится многим. А ещё она проходится за пару-тройку часов.
P.S. Для IT-шников:
Потрачено 10% от подписки Cursor за 60$, то есть примерно 6$. Но сейчас на Grok 4.5 скидка 50% в Cursor. Поэтому реальные затраты на подобную доработку обошлись бы порядка 12$.
По бенчмаркам модель приближается к Claude Opus 4.8. В реальности ощущается всё же слабее, но незначительно. Получается, что чуть слабее чем Opus, но точно умнее чем Composer 2.5. Composer не смог сделать корректный перевод в техническом плане с нескольких попыток. Возникали сложности с генерацией спрайтов шрифтов и их внедрением. Из существенных плюсов - Grok 4.5 входит в "First-party models" в Cursor и расходуется по отдельным лимитам (раньше туда входил Composer 2.5 и Auto только, теперь ещё и Grok 4.5).
Фронт написан на html+css+js без фреймворков. Бэк на Go (Clean Architecture). Доработки в игре - на чистом C. Портирование в браузер через WASM.
Извиняюсь за длиннотекст и спасибо, что дочитали!
Goodwin85, 41 годик.
















