確定性優先
帶狀態隨機數、固定時間步和穩定命令順序,使問題可復現、比賽可回放。
01 / DEFINITION
KineticGrid 來自持續執行的《炸彈人大作戰》生產專案。它把地圖、實體、移動、碰撞、炸彈、爆炸、傷害、拾取、時間和同步重新組織為獨立的純邏輯核心。
核心不訪問 DOM、不建立 Canvas、不載入圖片,也不規定 WebSocket 協議。表現層、輸入、網路和賬號系統透過事件與快照接入,因此同一規則能在客戶端、伺服器、測試和 AI 訓練環境中執行。
02 / LIVE CORE
下方棋盤是基於公開行為契約製作的網站視覺化:展示固定步長、移動、炸彈、火焰、磚塊破壞和事件流。核心實現只儲存在獨立本地工程中。
初始化規則視覺化…
03 / ARCHITECTURE
命令向內流動,事件與快照向外流動。渲染器永遠不擁有規則狀態。
帶狀態隨機數、固定時間步和穩定命令順序,使問題可復現、比賽可回放。
實體採用資料組合,完整世界可寫入版本化 JSON 快照並確定性恢復。
穿磚、穿內牆等規則透過 traits 表達,外邊界始終保持不可穿越。
爆炸、傷害、拾取等事件驅動聲音、計分和特效,不反向汙染核心。
04 / CAPABILITIES
05 / PUBLIC API
核心採用標準 ESM。瀏覽器和 Node.js 使用同一個構建產物,執行時依賴為零。
world.step() 是唯一時間推進邊界world.events 連線表現和業務系統world.snapshot() 輸出完整版本化狀態import {
FixedStepRunner,
createBomberBattleWorld
} from "@open-game-ai/kinetic-grid";
const { world, player } =
createBomberBattleWorld({
seed: "lesson-01",
level: 4
});
world.events.on("bombExploded",
({ cells }) => renderBlast(cells));
world.queueCommand({
type: "bomb",
entityId: player.id
});
new FixedStepRunner(world)
.advance(1 / 60);
06 / ADOPTION
新專案可以立即使用獨立包;現有《炸彈人大作戰》透過影子執行和回放對比逐層接入,避免一次性重寫。
覆蓋確定性隨機、出生安全區、邊界鎖定、穿牆特性、磚塊傳播、連鎖爆炸、固定時間步和快照恢復續跑。
07 / ROADMAP