制約とロードマップ
現行コードで使える機能と将来の候補を分けます。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となり、リークがないとは断定していません。生データ・条件・ソースの版は性能資料へ記録しています。
次の改善候補
- 制御された実GPU環境・実機モバイルで描画、入力、コンテキスト喪失を検証する。
- 動的画像を含む長時間運転とheap snapshotで残留資源を追跡する。
- 次の具体的なゲームに必要な音声等を選び、先に用途とテストを定義する。
- 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と部品の名前・状態をネイティブ要素で提供します。変更時はルート全体のレイアウト、ヒットテストは可視ノード数に比例する走査です。仕様と測定の制約を参照してください。