私は、extjs をフロントエンドとして使用して webmud のようなゲームを実行する人事プロジェクトにゆっくりと取り組んでいます。私が行った設計上の選択の 1 つは、ゲーム ロジック用にユーザーが生成した評価済みコードを許可することでした。そのため、プレーヤーが新しい「部屋」に入ると、「プレーヤーは以前ここにいたことがありますか、ここにいるはずですか、x 個のインベントリ アイテムを持っていますか」という行に沿って多数の状態スクリプトが呼び出され、それに応じて応答します。さらに、基本的な部屋の「アクション」はハードコーディングされますが ( go N/S/E/W )、高度なアクションは同じユーザー生成の評価済みスクリプトとして利用できます。
もともと私は怠け者で、このロジックに評価済みの PHP を使用するつもりでしたが、偏執狂的な感覚が働いています。そのため、私が見つけた 2 つの代替手段は runkit_sandbox ですが、プライマリ スレッドとサンドボックス間のオブジェクトの交換はサポートされていません。 (単純なデータ型と配列のみ) または、私のゲーム ロジックとして ecmascript を使用http://ejohn.org/blog/spicing-up-embedded-javascript/ .
この 2 つの長所と短所は、runkit を使用すると、スクリプトを非常に高速にロックダウンできますが、ecma インタープリターを使用すると、変数、関数、および場合によってはオブジェクトを javascript 実行空間に選択的にバインドできますが、まだベータ版の状態で、どれだけうまく動作するかまだわかりません。
これらはオプションのためのものですか、それとも私が知らない他の何かがより良い選択かもしれませんか? 環境: Linux、PHP-CGI 5.3、または Google アプリ エンジンとして。