2009-12-02 22 views
11

Esta es una pregunta un tanto extraña.C# lenguaje de secuencias de comandos

Quiero proporcionar un lenguaje de scripting para los juegos de modding que construyo para XNA. Si estuviera depilando estos juegos para PC, solo podría usar archivos C#, compilados en tiempo de ejecución (usando reflection.emit) como scripts, y eso estaría bien, una forma sencilla y agradable de modificar el juego. Sin embargo, el .net compact framework (que es lo que proporciona xbox) no admite reflection.emit, entonces, ¿cómo puedo escribir un lenguaje de scripts teniendo esto en cuenta?

  1. ¿Hay proyectos que ya están haciendo esto
  2. ¿Hay buenos recursos para iniciar mi propio proyecto para hacer esto
  3. ¿Cuál sería el mejor lenguaje para elegir? Esto es para los juegos de secuencias de comandos por lo que puede ser bastante pequeña idioma siempre que es muy eficiente y fácil de implementar un intérprete para
+2

En realidad, Reflection.Emit no le permite ** compilar ** código de C#. ¿Estás hablando de CodeDOM? –

+0

Parece que sí. ¿Está disponible CodeDom en el marco compacto? – Martin

Respuesta

5

Sé que esta es una pregunta anterior, pero tuve requisitos similares antes y me enteré de Managed Scripting. Parece que se desarrolló inicialmente para resolver el problema de las secuencias de comandos en juegos XNA, así que esto es aún mejor.

Desde el sitio web:

Managed motor de scripting

Scripting Gestionado proporciona una solución rápida y fácil para los desarrolladores que necesitan para implementar un motor de scripting en sus soluciones. Managed Scripting viene con un motor de scripts directo que puede compilar scripts de instancias & sobre la marcha, generando los ensamblajes en memoria o localmente en el disco duro, y permite invocar dinámicamente los métodos y acceder a las propiedades durante el tiempo de ejecución. ManagedScripting se ejecuta en Windows Vista, XP, Linux, XBox 360 y Microsofts Zune Player con scripts escritos usando Visual Basic o C# como lenguaje con planes para agregar soporte para Ruby, Python y JScript.

No lo he investigado más a fondo, pero parece lo que queremos.

+0

El enfoque de javascript se veía como dios, pero los problemas técnicos con la seguridad del tipo lo hundieron, así que este es el nuevo enfoque que voy a probar: D – Martin

+0

Es bueno saberlo. ¿Tienes un blog donde actualizas regularmente o algo así? Me encantaría mantener una pestaña sobre tu progreso con esta biblioteca. – Dan7

+0

Bueno, tengo un blog en martindevans.appspot.com/blog, pero no lo llamaría exactamente actualizado regularmente. Se ve muy mal en este momento porque generalmente escribo publicaciones de blog en el tren que transita a la universidad, por lo que las vacaciones de Navidad han dejado una brecha aún mayor de lo habitual entre las entradas. – Martin

6

Lua se utiliza a menudo para scripting juego. World of Warcraft, por ejemplo, lo ofrece para todos sus fabricantes de mods.

también echar un vistazo a los siguientes sitios:

  1. C++
  2. C#
+1

Sí, pero ¿hay un intérprete de C# puro para LUA? no tan lejos como sé :( – Martin

+0

http://www.gamedev.net/reference/articles/article2275.asp – Carra

+0

Ooh que se ve positivo, ¿puedes editarlo en la respuesta para poder apoyarte? – Martin

2

me gustaría apuntar a this related SO question, añadiendo Javascript como una opción. Para algunos, Javascript será más familiar que Lua.

+0

Ese es un buen punto en realidad, nunca había considerado eso – Martin

+0

Este es el camino que estamos tomando. Gracias por su ayuda: D – Martin

+0

Eso es simplemente genial. ¡El gusto es mio! –

0

Es posible que desee buscar en VSTA, proporciona C# o VB.Net. No sé sobre la compilación en tiempo de ejecución.

+1

VSTA ¿qué? Proporcione algunos enlaces o más contexto. Además, ¿funciona en la Xbox? –

+0

mmk prolly significa Visual Studio Tools para Aplicaciones (http://en.wikipedia.org/wiki/Visual_Studio_Tools_for_Applications) – Zano

+2

Vamos. Google -> VSTA. Tarda 2 segundos – tjmoore

Cuestiones relacionadas