Piccoli motori di gioco open source disponibili per esercitazione [chiuso]


8

Sto imparando a creare un motore di gioco da zero in XNA. Sto cercando esempi di motori di gioco molto piccoli, in particolare l'architettura e la struttura dei file sorgente, ecc. Dovrebbe includere un motore di scripting. Anche gli articoli sono apprezzati.

Più specificamente, ho un problema nel sapere come collegare il motore di scripting al resto del motore di gioco, come caricare un modello dallo script.


Solo per interesse, perché hai bisogno di un motore di scripting? C # stesso risolve già quasi tutti i problemi che un motore di scripting viene utilizzato per risolvere. E XNA è già un "motore di gioco molto piccolo" in grado di caricare modelli.
Andrew Russell,

Il ragazzo con cui sto lavorando ha detto che vuole un motore di scripting, quindi non deve ricompilare il gioco ogni volta che qualcosa nella storia cambia.
Shawn Mclean,

Solo per questo, ci sono soluzioni C # pure a questo problema: stackoverflow.com/questions/1353456/… (il compilatore C # fa parte del runtime).
Andrew Russell,

Risposte:


2

L' Angel Engine è un simpatico, piccolo motore Open Source scritto in C ++ e OpenGL. Inoltre ha un'interfaccia di scripting Python. Anche se il motore non è scritto in C #, dovrebbe darti alcuni suggerimenti e idee, e dal poco che ci ho giocato, il codice è molto pulito e facile da capire anche se non sei totalmente su C ++.


4

Mi piace il libro Programming Role Playing Games con DirectX (2a edizione) per la sua sezione di scripting; Non ho davvero visto un tutorial dall'inizio alla fine sulla creazione di un motore di scripting altrove. E ovviamente, essendo un libro, ti guiderà passo passo nella creazione della parte di scripting del motore (e di tutto il resto del motore di gioco che stabilisce nel libro, ovviamente). Sfortunatamente il codice sorgente non è disponibile online.

Una volta che hai un motore di scripting, terrei separati i modelli 3D dagli script . Gli script sono in genere nella parte logica delle cose, mentre i modelli 3D sono sicuramente il lato della presentazione / vista delle cose, e quelli non dovrebbero essere realmente mescolati. Quando uno script comanda a un personaggio di "camminare fino a (3,5)", non è necessario dire "carica l'animazione di camminata, imposta la velocità su (-1,1), attendi 3 secondi, imposta la velocità su zero, carica inattivo animazione"; in genere avresti solo una walkTo(x,y)funzione disponibile per lo script e il codice intermedio si occuperebbe di modelli 3D, animazioni, ecc.

Ma hey, se davvero è necessario, allora definisci le tue funzioni nell'interprete di scripting che ottengono modelli 3D e fanno tutto ciò di cui hai bisogno. Penso che stai pensando un po 'troppo avanti; preoccupati prima di scrivere un semplice interprete di script, quindi aggiungi le funzioni necessarie all'interprete mentre scrivi gli script.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.