Почти каждый день кто-то из энтузиастов ретросистем совершает технический подвиг, который трудно себе представить. OpenStrike — из этого ряда: концептуальная переработка культовой Counter-Strike для Sony PlayStation Portable, консоли, которой уже более двадцати лет и которая, казалось бы, не должна такое тянуть.

Counter-Strike, запущенная на портативной консоли Sony PSPИсточник изображения — tomshardware.com

Автор проекта разработал собственный трёхмерный движок на Rust под названием Pocket3D, а также движок PocketJS на JavaScript для игровой логики и интерфейса. Несмотря на статус концепции, матчи с ботами на выбывание уже играбельны, хотя знаменитый этап закупки оружия пока не реализован. Полный набор из восьми оригинальных карт протестирован, и моддеры смогут без труда делать свои.

Да, это Counter Strike на PSP!Да, это DevTools, инспектирующий игровой интерфейс!Да, это PocketJS! Чисто реализованный FPS-движок, полностью открытый API для модов на JavaScript, ~12 MB оперативной памяти, 60 FPS, полностью с открытым исходным кодом. ⚡️ pic.twitter.com/OprLN3E71JJuly 10, 2026

реклама кормит Уточку 🦆

Как удалось выжать 60 кадров

Движок держит стабильные 60 FPS в родном разрешении консоли 480×272 благодаря предварительной обработке ресурсов: карты освещения запекаются прямо в цвета вершин, вместо того чтобы считаться в реальном времени или при загрузке уровня. Приём старый, но для железа такого класса — единственно возможный.

Любопытно, что автор сохранил классический метод отсечения невидимой геометрии BSP вместо более современных алгоритмов. Решение прагматичное: на статичных уровнях с фиксированной геометрией двоичное разбиение пространства до сих пор остаётся чрезвычайно дешёвым по вычислениям — принцип «не чини то, что работает» здесь оправдан полностью.

реклама кормит Уточку 🦆

Где это ещё запускается

Игра работает и на PS Vita, где эффективное разрешение вчетверо выше — 960×544, — причём с нативной отрисовкой и трёхмерной графики, и двумерных элементов, без грубого масштабирования. Проект можно собрать как обычное настольное приложение и, разумеется, запустить на популярном эмуляторе PPSSPP.

Важный юридический нюанс: для запуска потребуется собственная копия игровых ресурсов Counter-Strike — ровно как порты Doom требуют оригинальные WAD-файлы. Код открыт, а вот содержимое игры остаётся за пользователем, и именно это позволяет проекту существовать легально.

реклама кормит Уточку 🦆

Архитектура интереснее самой игры

Впечатляет именно инженерная часть. Автор вышел далеко за рамки «сделать движок, который грузит карты»: оба движка универсальны, а OpenStrike — лишь первый продукт на их основе. Код построен по схеме сервер/клиент/события, причём обработка событий (например, выстрелов) отделена от ядра отрисовки, что предотвращает резкие просадки кадров. Игру можно тестировать офлайн, и почти всё поддаётся модификации через открытый JavaScript-интерфейс.

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

Что изменилось в проекте

Разработка переехала в отдельную организацию на GitHub и обзавелась более внятной структурой: игровая логика исполняется движком на базе QuickJS, а интерфейс собран на JSX — то есть привычными веб-инструментами. Уточнились и цифры: 60 кадров держатся на консоли с частотой 333 МГц при расходе около 12 МБ оперативной памяти.

Главного пока по-прежнему нет — этап закупки оружия не работает, и именно он назван следующим шагом. Без магазина в начале раунда это остаётся демонстрацией возможностей движка, а не полноценной игрой, хотя набор классических карт, боты, отдача и трассеры уже на месте.