🎮 Pyxel-Rust

Rust WebAssembly wasm-bindgen Canvas 2D SDL2

Pyxel にインスパイアされた Rust 製 2D ゲームライブラリ。
wasm-bindgen を使ってブラウザ上でも動作します(Emscripten 不使用)。

GitHub リポジトリを見る (oosawak/pyxel-rust)
⚠️ 開発中 — API・仕様は予告なく変更される可能性があります。

🏗️ バックエンド構成

用途に応じて3つのバックエンドを切り替えられます:

バックエンド 対象 使用ライブラリ feature フラグ
pyxel-core-backend デスクトップ(デフォルト) pyxel-core (SDL2) pyxel-core-backend
wgpu-backend デスクトップ(代替) pixels + winit wgpu-backend
wasm-backend ブラウザ wasm-bindgen + web-sys (Canvas 2D) wasm-backend

※ ブラウザ版は wasm32-unknown-unknown ターゲットで wasm-pack を使ってビルドします。Emscripten は使用していません。

✨ 特徴

🎯 デモ・サンプル

🗺️ Arisa Quest

GPS 連動 RPG デモ。現実の地図上でモンスターと戦う。

▶ 遊ぶ

📦 Cubeboy

プラットフォーマーデモ。

▶ 遊ぶ

📏 Lineboy

ラインアクションデモ。

▶ 遊ぶ

🎨 Sprite Studio

スプライトシート確認・クロマキー編集・フレームキャプチャ・エクスポートツール。

🖊 開く

→ サンプル一覧

🎬 暗号化動画配信システム(video-server)

ローカル i9 マシンで動作する動画配信サーバーです。
動画を AES-256-CTR で暗号化・fMP4セグメント分割し、WebSocket でブラウザへ配信します。
ブラウザ側では WASM で復号しながら MSE(Media Source Extensions) で早期再生(全受信待ち不要)します。

項目内容
サーバーNode.js + Express + WebSocket(ws パッケージ)
暗号化AES-256-CTR(チャンクごと独立)
動画形式fMP4(FFmpeg 変換)
配信WebSocket バイナリストリーミング
再生WASM 復号 → MSE appendBuffer(2チャンク目で再生開始)
起動pm2 start video-server/server.js --name video-server
ポート3700(LAN 内 http://i9:3700/)

アリサクエストの地図マーカーから window.open で動画プレイヤーを起動し、 GPS 撮影地点と動画を紐づけて再生します。

📄 詳細ドキュメント(VIDEO_SERVER.md) / ▶ 動画プレイヤー(LAN接続時のみ)

📚 リンク

📝 プロジェクト情報

バージョン: 0.1.0

言語: Rust(エンジンコア)/ Python(CLI ツール)

レンダリング: pyxel-core/SDL2(デスクトップ)/ Canvas 2D・web-sys(WASM)

WASM ビルド: wasm-pack + wasm-bindgen(wasm32-unknown-unknown)

API 参考: Pyxel

ライセンス: MIT