Реализация простого языка сценариев на основе XML для игры XNA

Я работаю с командой над движком RPG в C # и XNA. Мы планируем ориентироваться на Windows и Windows Phone 7, но сталкиваемся с проблемами взаимодействия с ИИ и управления действиями игроков во время кат-сцен. В большинстве случаев все извлекается с использованием шаблона проектирования MVC, но абстрагирование всей логики и перемещения в контроллер может вызвать проблемы в будущем. Поэтому идея состоит в том, чтобы иметь интерфейс (IScriptEngine), который принимает IScriptObject и соответствующим образом обновляет данные в модели карты. Я думал о том, чтобы поместить сценарии в синтаксис 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 на карте, и какие ресурсы и сценарии он будет использовать. Затем будет раздел, где будут определены все битвы (опять же, определение ресурсов, а что нет), а затем, возможно, раздел, где будут определены эти сценарии. Я просто хотел бы иметь возможность компилировать C # на лету с использованием WP7. Если бы я мог получить поддержку с обеих сторон, это не было бы проблемой. Интересно, будет ли какая-либо библиотека Mono, которая могла бы быть перенесена на WP7, которая бы разделяла функциональность CodeDom и всех классов Compiler?

Ответы на вопрос(5)

Ваш ответ на вопрос