Code-first · TypeScript · 2D

ゲームのしくみを、
理解できるコードで。

Simpludifyは、TypeScriptを中心に2Dゲームをつくる実験的なゲームエンジンです。ActorとComponentを組み合わせ、必要なときにイベントを使い、通常のコードとブラウザの道具で開発できます。

Experimental v0.1.0のnpm SDKを準備中です。配布アーカイブ・npm導入ガイドで独立プロジェクトを構築できます。レジストリ公開は未確認です。APIは変更される可能性があります。Windows版やネットワーク機能は未実装です。

組み合わせてつくる

Characterの既定値から始め、Transform・Renderable・Motionや独自Componentへ段階的に進めます。イベント駆動は必須ではありません。

見える部分と、動く部分を分ける

DOM非依存のCoreでシミュレーションを実行。Webが描画・入力・非同期準備・DOM UIを担当します。

接触をゲームのルールへ

円と回転矩形、TriggerとSolid、接触通知と問い合わせ。軽量な位置補正を必要なSceneだけに追加できます。

静的ファイルで配信する

シングルプレイのサンプルはゲームサーバーなしで動作します。サブパス配信と独自ドメイン用のビルドに対応します。

小さく始める

import {
  Action,
  ActionController,
  Character,
  defineActions,
  Game,
  KeyboardBindings,
} from "@simpludify/web";

const game = new Game();
const Actions = defineActions({ Move: Action.axis2D() });
const controls = new ActionController(Actions, {
  scene: game.engine.scene,
  input: game.engine.input,
  bindings: { Move: KeyboardBindings.WASD },
});
game.add(Character({ movement: controls.reader(Actions.Move) }));
await game.run();

ゲーム領域へフォーカスしてWASDで移動します。ページには高さが必要です。実行可能なHTMLとセットアップは導入を参照してください。

試してから、仕組みを読む

サンプルギャラリーでは実行例を試せます。最小のCharacter、UI / Scenes、Beacon Field、30秒の収集ゲームSignal Run、落ち物パズルBlockfall、シューティングPrism Raid、画像アニメーションのSprite garden、地形配置のTile trail、Canvas UIと入力を統合したCanvas trail、数値・Actor・UI演出のTween lab、三角形・六角形のTile geometry labから選べます。Signal Run・Blockfall・Prism Raid・Canvas trailはスマートフォンのタッチ操作に対応します。

基本概念 → 入力 → SceneとUI → 衝突判定の順に読むと、サンプルを自分のゲームへ展開できます。

設計と検証を公開する

短さだけでAPIを選びません。所有権・更新順序・エラー時の状態を明確にし、ヘッドレステストとブラウザテストで検証します。AIによる生成・解析も、同じ型・コード・CLIを利用できます。ゲーム実行時にAIサービスは不要です。

設計思想、現在の制約、英語の詳細APIもあわせて確認してください。