2009-12-02 21 views
11

Questa è una domanda un po 'strana.C# Lingua di scripting

Desidero fornire un linguaggio di scripting per modificare i giochi che sviluppo per XNA. Se stavo descrivendo questi giochi per PC, sarei stato in grado di usare i file C#, compilati in fase di runtime (usando reflection.emit) come script e che andrebbe bene - un modo molto semplice per modificare il gioco. Tuttavia, il framework .net compatto (che è quello che fornisce la xbox) non supporta reflection.emit, quindi come posso scrivere un linguaggio di scripting tenendo conto di ciò?

  1. Ci sono dei progetti già lì facendo questo
  2. sono delle buone risorse per iniziare il mio progetto per fare questo
  3. Quale sarebbe la lingua migliore per scegliere? Questo è per lo scripting di giochi quindi può essere un linguaggio abbastanza piccolo purché sia ​​abbastanza efficiente e facile da implementare un interprete per
+2

In realtà, Reflection.Emit non consente di ** compilare codice C# **. Stai parlando di CodeDOM? –

+0

Sembra che lo faccia. CodeDom è disponibile nel framework compatto? – Martin

risposta

5

So che questa è una vecchia domanda ma avevo precedenti requisiti simili e ho scoperto lo Managed Scripting. Sembra che sia stato inizialmente sviluppato per risolvere il problema dello scripting nei giochi XNA, quindi è ancora meglio.

Dal sito web:

Managed Scripting Engine

Scripting Gestito offre una soluzione rapida e facile per gli sviluppatori che necessitano di implementare un motore di scripting nelle loro soluzioni. Managed Scripting è dotato di un motore di script diretto in grado di compilare gli script di istanza & in tempo reale, generare gli assembly in memoria o localmente sul disco rigido e consentire il richiamo dinamico dei metodi e l'accesso alle proprietà durante il runtime. ManagedScripting gira su Windows Vista, XP, Linux, XBox 360 e Microsofts Zune Player con script ha scritto utilizzando Visual Basic o C# come lingua con piani per aggiungere il supporto per Ruby, Python e JScript.

Non l'ho approfondito da solo ma sembra quello che vogliamo.

+0

L'approccio di javascript era alla ricerca di Dio, ma i problemi tecnici con la sicurezza del tipo lo affondarono, quindi questo è il nuovo approccio che proverò: D – Martin

+0

Bello sapere. Hai un blog dove aggiorni regolarmente o qualcosa del genere? Mi piacerebbe tenere una scheda sui tuoi progressi con questa libreria. – Dan7

+0

Bene, ho un blog su martindevans.appspot.com/blog ma non lo chiamerei regolarmente aggiornato regolarmente. Al momento sembra molto brutto perché in genere scrivo post sul treno in pendolarismo, quindi le vacanze natalizie hanno lasciato uno spazio ancora più ampio del solito tra le voci! – Martin

6

Lua viene spesso utilizzato per lo scripting di giochi. World of Warcraft offre ad esempio per tutti i suoi mod maker.

prendere anche uno sguardo a questi siti:

  1. C++
  2. C#
+1

Sì, ma esiste un interprete C# puro per LUA? non per quanto ne so: ( – Martin

+0

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

+0

Ooh che sembra positivo, puoi modificarlo nella risposta in modo da poterti invogliare? – Martin

2

Vorrei puntare a this related SO question, l'aggiunta di JavaScript come opzione. Per alcuni, Javascript sarà più familiare di Lua.

+0

Questo è davvero un buon punto in realtà, non l'ho mai considerato quello – Martin

+0

Questo è il percorso che stiamo andando. Grazie per il tuo aiuto: D – Martin

+0

Questo è semplicemente fantastico. Il piacere è tutto mio! –

0

Si potrebbe voler esaminare VSTA, fornisce C# o VB.Net. Non so sulla compilazione del runtime.

+1

VSTA cosa? Si prega di fornire alcuni collegamenti o più contesto. Inoltre, funziona su Xbox? –

+0

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

+2

Andiamo. Google -> VSTA. Prende 2 secondi – tjmoore