Repo-lab
開発ツール

OpenStrike とは?RustとJSでCS風FPSをPSP・PS Vitaで動かすゲームエンジン

⭐ 239 stars GitHub →

OpenStrike とは?RustとJSでCS風FPSをPSP・PS Vitaで動かすゲームエンジン

OpenStrikeはRustのゲームエンジン「Pocket3D」とJavaScriptゲームロジックを組み合わせてCounter-Strike風FPSをデスクトップ・PSP・PS Vita・Nokia E7で動かすオープンソースプロジェクトです。PSP(333MHz・32MB RAM)で60FPS動作を実現した技術的快挙として注目されています。

GitHubで急上昇中の pocket-stack/open-strike をご紹介します。 スター数 239★ を獲得し、DevTool分野で注目されているツールです。


OpenStrike とは?RustゲームエンジンでCS風FPSを動かすプロジェクト

OpenStrikeは単一のRustコアからデスクトップ・Sony PSP・PS Vita・Nokia E7向けビルドを生成するCS風FPSゲームです。ゲームエンジン「Pocket3D」がレンダリングとシミュレーションを担当し、ラウンドルール・武器テーブル・HUDはJavaScriptで実装されています。

注目点: 333MHzのCPUと32MBのRAMしか持たない2004年発売のSony PSP実機で60FPS動作を達成。Tom's Hardware・VideoCardzなど海外メディアにも取り上げられ、レトロハードウェアへのRustゲーム移植例として世界的な注目を集めました。

こんな人におすすめ:

  • エンジニア向け: Rustのゲームエンジン開発・クロスプラットフォームゲーム移植・レトロハードウェアプログラミングに興味があるゲームエンジニア・システムプログラマーに最適です
  • 非エンジニア向け: プログラミング知識が必要なため、エンジニア専用ツールです

OpenStrike PSP 使い方 ビルド方法 — 環境構築からビルドまで

必要な環境

- Rust(最新安定版)
- bun(JavaScriptランタイム)
- PSP向けビルドにはPSP SDK(自動セットアップあり)

ビルド手順

git clone --recursive https://github.com/pocket-stack/open-strike
cd open-strike
bun run setup      # 依存関係インストール
bun run bootstrap  # PSPツールチェーンをキャッシュに導入
bun run check:platforms
bun run build:ui   # デスクトップビルド

デスクトップ版のみビルドする場合はcargo build --releaseでも実行可能です。PSPビルドは自動でツールチェーンをキャッシュに導入するため、bootstrap実行後にbun scripts/psp.tsで実行可能なEBOOT.PBPが生成されます。

MODの作成

game/rules.ts を変更するだけでゲームルールのMODが作成できます。ベースゲーム自体がMODとして実装されており、開発者と同じ権限でゲームロジックを変更できます。


主な機能・特徴

クロスプラットフォームアーキテクチャ

Rustコア(openstrike-core)を全ターゲットで共有し、以下のプラットフォーム向けにビルドを生成します:

プラットフォーム レンダラ 解像度
デスクトップ (Windows/macOS/Linux) wgpu 可変
Sony PSP sceGu 480×272
Sony PS Vita vita2d/GXM 960×544
Nokia E7 OpenGL ES 2 640×360〜360×640

ホスト/ゲスト分離アーキテクチャ

シミュレーションとゲームロジックを明確に分離した設計を採用:

  • Rustコア(ホスト): 物理演算・衝突判定・レンダリング
  • JavaScript(ゲスト): ラウンドルール・武器バランス・HUD

状態はRustからJSへ一方向に流れ、コマンドはJSからRustへ送られます。ゲストがシミュレーションをブロックしない設計です。

BSPマップ対応

Counter-Strikeの古典マップ(de_dust2・de_inferno・cs_office等)をそのまま使用可能。ビルド時クッカーがBSP/WADマップをGPU向けバイナリ(.p3d)に変換し、頂点カラーへのライトベイク・16bit整数への位置量子化・8bitパレット形式へのテクスチャ変換でメモリを最適化します。


Rust ゲーム開発 PSP レトロ 無料 — なぜ今このプロジェクトか

既存のゲームエンジンとの違い

UnityやUnreal Engineなどの商用エンジンとOpenStrikeの最大の違いはレトロハードウェアへの徹底した最適化です。

観点 OpenStrike / Pocket3D Unity / Unreal
PSP/Vitaサポート ✅ネイティブ対応 ❌非対応
メモリ効率 32MB RAM内で動作 数GBのRAMを推奨
ゲームロジック言語 JavaScript(MOD可) C# / Blueprint
ライセンス MIT(商用利用可) 商用利用時収益シェア
ビルドシステム bun + Cargo 独自IDE必須

Godotと比較するとOpenStrikeはより低レベルで、PSP・Vita・Nokia E7という現代のエンジンが見捨てたプラットフォームへの対応を優先しています。


こんな人に向いている

ゲームエンジニア・システムプログラマー

RustによるBSPレンダリングの実装、JavaScriptとRustの境界設計(ホスト/ゲスト分離)、PSPの制約(333MHz・32MB)に対応したメモリ最適化手法を学べるリファレンス実装として活用できます。

具体的な活用シナリオ: ゲームエンジニアがRustによるBSPレンダリングの実装手法やJSとRustの境界設計(ホスト/ゲスト分離)を学習するリファレンス実装として活用できる。

組み込み・レトロハードウェア開発者

PSPへのRustビルド環境構築手順をOpenStrikeのビルドシステムから学べます。PSP・PS Vita・Nokia E7など特殊プラットフォームへのRustコード移植を検討している組み込みエンジニアに最適です。

具体的な活用シナリオ: 組み込み・レトロハードウェア開発者がPSPへのRustビルド環境構築手順をOpenStrikeのビルドシステムから学べる。


使う前に知っておきたいこと

プラットフォームと要件

  • デスクトップ: Windows・macOS・Linux(wgpu対応GPU)
  • PSP: 実機またはエミュレータ(PPSSPP等)が必要
  • PS Vita: Vitaへのhomebrew導入が必要
  • Nokia E7: Qt環境とSymbianビルドチェーン

ライセンスと制限

MITライセンスのもとで公開されています。なおCounter-Strike自体のゲームアセット(マップデータ)は含まれておらず、プレイにはCSのBSP/WADファイルを別途用意する必要があります。

既知の制限・注意点

  • ゲームとしての完成度: ボット戦のみ対応。購入フェーズ未実装。マルチプレイヤー非対応
  • E7タッチ操作: タッチエイミング未実装(2026年9月現在)
  • ビルドの複雑さ: PSPビルドにはツールチェーンの自動ダウンロード(約300MB)が必要
  • 開発初期段階: コントリビューター1名のプロジェクト

関連ツール・おすすめサービス

  • DigitalOcean — ゲームサーバー・CI/CD環境の構築に活用できるクラウドプラットフォーム
  • さくらVPS — 国内VPSでゲームサーバー・開発環境のセルフホスト

まとめ

OpenStrikeはRustによるクロスプラットフォームゲームエンジン開発の最先端実装例として、ゲームエンジニア・システムプログラマーに学習価値が高いプロジェクトです。PSP・PS VitaへのRust移植の実例として、レトロハードウェア開発に興味があるすべての開発者に強く推奨します。

GitHub でチェックする →


この技術を学ぶ

DevToolに興味を持った方には、UdemyのオンラインコースもおすすめRust・ゲーム開発コースです。

毎日更新のGitHubツール情報

LINEで受け取って最新情報をキャッチアップしよう

友達追加する(無料)

関連記事

この記事が役に立ったらシェアしてください