Энтузиаст запустил клон Counter-Strike на оригинальной PSP в 60 FPS с собственным движком на Rust
Практически каждый день кто-то из разработчиков ретро-систем демонстрирует технические достижения, в которые сложно поверить.
Проект OpenStrike стал очередным подобным экспериментом, представляя собой концептуальную переработку легендарной Counter-Strike для Sony PlayStation Portable (PSP), 22-летней консоли, которая, казалось бы, совершенно не предназначена для запуска этой игры.
Порт создал Ифэн Ван (известный как doodlestrike), который написал собственный 3D-движок на Rust под названием Pocket3D. Дополнительно был разработан JavaScript-движок PocketJS для игровых правил и интерфейса. Несмотря на статус концепта, Ван утверждает, что матчи на выбывание с ботами уже играбельны, хотя стадия закупки экипировки пока не функционирует.
Все восемь оригинальных карт Counter-Strike уже прошли тестирование, а заинтересованные моддеры без труда смогут создавать собственные. Движок способен запускать игру с ботами при стабильных 60 FPS в родном разрешении PSP 480x272.
Такой результат достигается за счёт предварительной обработки графических ассетов, при которой карты освещения запекаются напрямую в цвета вершин, а не рассчитываются в реальном времени или при запуске.
Любопытно, что Ван сохранил старомодный метод рендеринга BSP (Binary Space Partitioning) для отсечения невидимых областей вместо использования более современного алгоритма, следуя принципу "не чини то, что не сломано".
Игра также работает на PS Vita, системе с эффективным разрешением 960x544, вчетверо превышающим оригинал. При этом графика выводится нативно, без масштабирования 3D-рендеринга или 2D-ассетов. Проект можно запустить и как обычную настольную игру, а также он совместим с популярным эмулятором PPSSPP.
Чтобы всё заработало, потребуется предоставить собственную копию ассетов Counter-Strike, аналогично тому, как для многочисленных портов Doom нужны оригинальные файлы.
Техническая архитектура проекта впечатляет, так как Ван вышел далеко за рамки задачи "сделать 3D-движок, загружающий карты". Оба движка, Pocket3D и 2D-движок PocketJS, универсальны, а OpenStrike стал лишь первым "продуктом", который их использует.
Код построен на архитектуре сервер-клиент-событие, а обработка событий, например стрельбы, отделена от ядра рендеринга, что предотвращает неприятные просадки FPS.
Игру можно тестировать офлайн, и практически всё легко поддаётся моддингу.
- Абсурдный баг в Battlefield 6 позволяет летать на дроне с помощью кувалды
- Геймеры используют лестницы для полетов по картам Battlefield 6 вопреки нерфу системы передвижения
- Отличная музыка и необычная анимация в музыкальном клипе заглавной песни Borderlands 4 – игра получила первые скидки в Steam