Domanda

Mi chiedo se sia possibile incorporare Ruby come linguaggio di scripting in Microsoft XNA e qual è il modo migliore per farlo. Sto cercando qualcosa come Xnua , ad eccezione di Ruby.

Mi sono imbattuto in Ruby.NET e IronRuby ed entrambi sembrano essere nelle fasi iniziali, quindi non sono sicuro di quanto siano utilizzabili. Inoltre, non sono sicuro che funzionerebbero su Xbox 360. Questo argomento su XNA forum afferma che IronPython non funzionerebbe, per esempio.

È stato utile?

Soluzione

IronRuby e IronPython non funzionano su Xbox 360 perché si basano sul DLR (Dynamic Language Runtime) e il DLR fanno ampio uso del sistema . Tipi Reflection.Emit che non sono attualmente disponibili su Xbox 360 .Net Framework (una versione modificata di Compact .Net Framework).

Per quanto riguarda il modo migliore per farlo, purtroppo dipende dal resto del gioco. Il lavoro per abilitare la valutazione degli script IronRuby nel contesto del tuo programma XNA è abbastanza semplice, dai un'occhiata a questo post di blog per esempio. Oltre a ciò, vorresti esporre alcuni oggetti interessanti ai tuoi script e questo è il bit che dipende interamente dal resto del codice / design del tuo gioco. Puoi dare un'occhiata ai documenti di scripting per Unity per avere un'idea di quali tipi e comandi esporre.

Altri suggerimenti

È quasi garantito che IronRuby non funzionerà su Xbox, ma se vuoi solo sviluppare un gioco XNA per Windows, dovresti essere in grado di usarlo allo stesso modo di qualsiasi altra applicazione.

Non posso davvero dirti come faresti per farlo, solo che dovrebbe essere possibile.

Mentre sono d'accordo con le osservazioni di Leaf Garland, lascia che ti offra un'alternativa:

Il "preferito" il linguaggio di scripting per i giochi è Lua. Ad esempio, il gioco Crysis e Far Cry utilizzano ampiamente LUA. Scorri su wikipedia per un elenco di giochi importanti che lo utilizzano.

In termini di utilizzo di questo con XNA, ho solo graffiato la superficie da quando ho appena iniziato con lo sviluppo di hobby XNA, ma quello che so è che non è possibile utilizzare LUA direttamente in XNA. Questo perché LUA è integrato in C ++ (non gestito) e pertanto non sarà possibile distribuirlo su XBOX360.

È in fase di sviluppo un progetto che sta creando una versione XNA di lua all'indirizzo http://www.xnua.com / . È anche un prodotto gratuito e il codice sorgente è disponibile anche per il download.

Se l'industria dei giochi crede che LUA sia abbastanza buono per i giochi commerciali AAA, seguirò personalmente anche quella direzione (sulla base del fatto che hanno molta più esperienza in quella zona di me)

Perché non usare Ruby per lo sviluppo di PC e Lua per 360?

EDIT: forse questo sarà utile.

Anche se non è Ruby e questa è una vecchia domanda, mi piacerebbe illuminarti su un nuovo motore di scripting che ho creato. Funzionerà praticamente ovunque ci sia un framework .Net, incluso su Xbox360 sotto XNA. Non utilizza Reflection.Emit, quindi funziona dove altre lingue non lo fanno. È anche un codice completamente gestito, quindi nessuna P / Invoca come Lua.

Puoi ottenere maggiori informazioni da il mio blog e provarlo in questo pagina demo

È quasi pronto per il beta test, ma dopo il beta test sarà un componente concesso in licenza commerciale

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top