2009-11-27 4 views
10

Ultimamente mi sto preparando a sviluppare un altro gioco in XNA C#.Script di gioco Javascript (o simili) per C# XNA

L'ultima volta che ho lavorato a un gioco in XNA C#, mi sono imbattuto in questo problema di dover aggiungere mappe e dati personalizzabili nel gioco. Ogni volta che voglio aggiungere nuovi contenuti o modificare alcuni valori al personaggio del gioco o qualcosa del genere, ho dovuto ricostruire l'intero gioco o cosa - che può richiedere un po 'di tempo.

C'è un modo in cui posso scrivere script di gioco per caricare il contenuto che può essere interpretato dal mio gioco XNA C# senza dover compilare? Sto guardando, auspicabilmente, Javascript.

Spero di poter aggiungere funzioni e altre API di piccole dimensioni che possono essere richiamate dallo script di gioco esterno per manipolare il gioco o caricare i dati così via. Non sono preoccupato per il fatto che il gioco venga violato dal momento che è ancora presto - lo sviluppo è di gran lunga prioritario.

Qualsiasi aiuto sarebbe molto apprezzato.

+1

Hai guardato Lua? Sembra essere un linguaggio utile per gli script. –

+0

Ho sicuramente guardato Lua. =) – mauris

risposta

5

Si può provare Jint che è una fonte Javascript interprete aperta scritta in C#

+0

questa sembra un'idea molto bella e facile. Ma come posso definire funzioni predefinite che possono essere chiamate per eseguire determinati metodi C#, ad esempio? – mauris

+0

Ah ok penso che Jint supporti anche quello, come scritto su http://jint.codeplex.com/wikipage?title=Quick%20Start&referringTitle=Documentation – mauris

+0

Vecchia domanda, lo so, ma questo è esattamente quello che ho fatto solo di recente funziona davvero bene, sono stato anche in grado di creare alcune funzionalità di debug. Ecco un codice (gratuito da usare ofc): http://roy-t.nl/index.php/2012/06/05/using-javascript-as-a-script-engine-in-xnac/ –

1

IronPython sarebbe più appropriato? Ciò dovrebbe funzionare bene su un framework "completo", ma sembra che potrebbe essere not work (yet) on xbox 360 (che utilizza un framework compatto).

Per un esempio IronPython/xna, see here.

2

Il framework compatto non include System.Reflection.Emit, il che significa che non è possibile utilizzare IronPython. Mi raccomando LUA, e si possono trovare un'implementazione interprete XNA con l'open source here

+0

sembra buono. ma non riesco a farlo funzionare su Visual C# 2008. Il progetto sembra essere molto vecchio. – mauris

+0

Se non vuoi fare confusione con la compilazione, ti offre i binari precompilati - basta aggiungere un riferimento nel gioco alla dll. – seraphym