私は、C# と XNA で RPG エンジンのチームと協力しています。Windows と Windows Phone 7 をターゲットにすることを計画していますが、カットシーン中の AI インタラクションとプレイヤー アクションの制御で問題が発生しています。ほとんどの場合、すべてが MVC デザイン パターンを使用して抽出されますが、すべてのロジックと動きをコントローラーに抽象化すると、後で問題が発生する可能性があります。したがって、IScriptObject を受け取り、それに応じてマップ モデルのデータを更新するインターフェイス (IScriptEngine) を用意するという考え方です。スクリプトを XML 形式の構文に入れることを考えていました。
<Script Name="MoveNPC_1">
<Action Command="MoveToTile" Target="NPC_1" Value="10,2"/>
</Script>
それに応じて IScriptEngine に解析させます。巨大な switch ステートメントでの解析が良い考えであるとは非常に思えませんが、それは私が取り組んできたことです。
switch(Action.Command)
{
case "MoveToTile":
{
doMovement(Action.Value, Action.Target);
break;
}
}
高校でのプログラミングの経験でさえ、これは悪い考えだと言っていますが、それ以外の方法は考えられません。
編集:これをどうにかしてマップファイルに埋め込みたいと思います。マップ XML ファイルには、複数のタグを含む に指定されたエリアがあります。次に、NPC がマップ上のどこにいるか、使用するリソースとスクリプトを指定するセクションがあります。次に、すべての戦闘が定義されるセクション (ここでも、リソースの定義とそうでないもの) があり、その後、これらのスクリプトが定義されるセクションが存在する可能性があります。WP7 を使用してオンザフライで C# をコンパイルする方法があればいいのにと思います。双方のサポートが得られれば、これは問題になりません。CodeDom とすべての Compiler クラスの機能を共有する WP7 に移植できる Mono ライブラリがあるのでしょうか?