制約とロードマップ

現行コードで使える機能と将来の候補を分けます。SPECは長期設計、API資料は現行契約、性能資料は測定済み範囲を担当します。

実装済み

  • 有限Tilemap:Grid/行列のコピー、SpriteSheet、レイヤー配置、表示範囲カリング、セル変更。

  • TileGeometry/GeometryTilemap:四角形・三角形・六角形2方向の単色描画、座標変換、選択、隣接、動的更新。画像の多角形切り抜きや多角形Collisionは対象外。

  • 任意の地形衝突:ID既定・セル上書き、TileContact専用イベント、既存CollisionWorldによる局所判定と位置補正。

  • DOM非依存Core、固定入力による明示ステップ、seed付き乱数。

  • Sceneの所有権・同期ライフサイクル、Webの非同期準備・キャンセル。

  • Actor/Component、依存関係診断、無効化、型付きイベントと所有者付きタイマー。

  • Character、Motion、キーボード、独立入力元、タッチ用HoldButton、ポーズ。

  • 矩形・円・Character・Triangle・画像描画、表示制御・深度、単一Camera/Viewport、座標変換・追従。

  • 円・回転矩形、layer/mask、Trigger/Solid、接触イベント・問い合わせ、逆質量による位置補正。

  • SpriteSheetのグリッド/矩形/名前付き参照、SpriteAnimationのシミュレーション時間による再生と画像共有。

  • Webサンプル(Blockfall・Prism Raid・Sprite garden・Tile trail・Tile geometry labを含む)、Headless実行例、CLI、型検査・単体・ブラウザ・本番ビルド検証。

  • 日本語中心の静的ドキュメントとサンプルの統合ビルド、GitHub Pages向けActions。

衝突と実行時の制約

位置補正は本格的な剛体シミュレーションではありません。反発・摩擦・重力・角応答・CCD・動く床からの速度伝達はありません。高速移動のすり抜け、密集・狭い隙間の残留貫通や振動があり得ます。1Actorに1Colliderです。

更新エラーは状態を巻き戻しません。Actor/Componentの削除は破棄であり、プール再利用・Scene再活性化は提供していません。スナップショットは独自ComponentデータやGPU状態の保存・復元形式ではありません。

未実装・未検証

項目 状態
公開npm SDK・自動アップグレード コンパイル済みSDKを準備済み。npm公開は未確認。配布アーカイブは利用可能
Windows/Electron portable 未実装。Web配信のみ
音声・無限マップ 未実装
複数Camera/Viewport 未実装
アセットmanifest・font管理 未実装。通常のVite/ブラウザ機能を使用
通信・対戦・保存データ形式 未実装
Colliderの自動近似・複合形状 将来候補。今回追加しない
Safari/Firefox・実機全般 自動検証対象外
WebGL context復旧 未対応/未検証
複数時間の実機メモリ・GPU追跡 未実施

性能の読み方

ソフトウェア描画環境のSignal Runでは通常のフレーム間隔は約33ms、描画なしのループは約16.7msでした。シミュレーションCPUのp95は0.1〜0.2ms程度です。これは当該環境の観測であり、GPU実行時間を分離した測定や実機の保証ではありません。

1,000個のグリッド状Triggerのp50は拡張前約0.71msから約1.68msへ増えています。5分の実時間測定で強制GC後のJS heapは約3.36→4.60MBとなり、リークがないとは断定していません。生データ・条件・ソースの版は性能資料へ記録しています。

次の改善候補

  1. 制御された実GPU環境・実機モバイルで描画、入力、コンテキスト喪失を検証する。
  2. 動的画像を含む長時間運転とheap snapshotで残留資源を追跡する。
  3. 次の具体的なゲームに必要な音声等を選び、先に用途とテストを定義する。
  4. APIの安定化と配布方式を検討し、その後に別パッケージとして安全なWindowsホストを追加する。

英語ロードマップも参照してください。

Canvas UIの範囲

CanvasはRow/Column中心のFlex部分仕様と矩形clipを提供します。min/maxと文字の自動折り返しに対応します。CSSの完全再現、完全なUnicode禁則組版、複数行・リッチテキスト編集、Canvas文書全体のスクリーンリーダー対応はありません。標準Select・TextInput・NumberInputはHost内部のネイティブ要素を使い、選択・文字編集・IME連携を提供します。実OSの日本語IME候補UI、物理モバイルキーボード、各種ブラウザ・支援技術への適合性は未検証です。Tab/Enter/Spaceと部品の名前・状態をネイティブ要素で提供します。変更時はルート全体のレイアウト、ヒットテストは可視ノード数に比例する走査です。仕様と測定の制約を参照してください。