Domanda

Sto cercando di costruire un utile motore di gioco 3d di fuori del Ogre3d motore di rendering per beffardo alcune delle idee che mi sono venute e sono venuti un po ' a un bivio.Ci sono un certo numero di linguaggi di scripting che sono disponibili e mi chiedevo se c'erano uno o due che sono stati controllati e aveva un corretto seguenti.

LUA e lo Scoiattolo sembrano essere più controllati, ma sono aperta a tutte e tutti.

Ottimale sarebbe meglio se ci fosse un modulo compilato per la lingua per la distribuzione e la facilità di carico.

È stato utile?

Soluzione

La sintassi è una questione di gusti, Lua è come Javascript, ma con parentesi graffe sostituito con Pascal-come parole chiave.Si ha la simpatica funzione sintattica che un punto e virgola non viene mai richiesto, ma gli spazi non è ancora significativo, così si può anche rimuovere tutte le interruzioni di riga e di avere ancora un lavoro.Come qualcuno che ha iniziato con il C direi che Python è quello esoterico sintassi rispetto a tutte le altre lingue.

LuaJIT è anche circa 10 volte più veloce di Python e l'interprete Lua è molto molto più piccolo (150kb o circa 15k linee di C, che si può leggere e comprendere).È possibile consentire all'utente di creare lo script del gioco, senza la necessità di incorporare una massiccia lingua.D'altra parte, se si copia il parser parte di Lua diventa ancora più piccolo.

Altri suggerimenti

Una opzione interessante è stackless python.Questo è stato utilizzato in Eva-gioco Online.

Il Python/C manuale per le API è più il tutto Lua manuale (tra cui il Lua/C API).

Un altro motivo per Lua è il supporto integrato per coroutines (co-operativo multitasking all'interno di un OS thread).Essa permette di avere 1000 apparentemente singoli script in esecuzione molto veloce, l'una accanto all'altra.Come uno script per monster/arma o giù di lì.

( Perché la gente scrive Lua in maiuscolo così tanto in TANTO?Si tratta di "Lua" (vedi qui). )

Uno più votare per Lua.Piccolo, veloce e facile da integrare, ciò che è importante per la moderna di una console si può facilmente controllare le sue operazioni di memoria.

Mi piacerebbe andare con Lua dal momento che la scrittura associazioni è estremamente facile, la licenza è molto cordiale (MIT) e librerie esistenti tendono anche ad essere sotto tale licenza.Schema è piacevole e facile da legare, che è il motivo per cui era stato scelto per il Gimp editor di immagini, per esempio.Ma Lua è semplicemente fantastico.Mondo di Warcraft la usa come un esempio di alto profilo.LuaJIT ti dà nativo compilato prestazioni.È a meno di un ordine di grandezza dal puro e C.

Non mi consiglia di LUA, ha una particolare sintassi richiede un certo tempo per abituarsi.A seconda di chi fa la scrittura, questo potrebbe non essere un problema, ma vorrei provare ad usare qualcosa di abbastanza accessibile.

Io probabilmente scegliere di python.Normalmente viene compilato in bytecode, quindi si avrebbe bisogno di incorporare l'interprete.Tuttavia, se è necessario, è possibile utilizzare PyPy, ad esempio per tradurre il codice in C, e quindi compilarlo.

Incorporare l'interprete, senza alcun problema.Mi interessa molto di più funzionalità e prestazioni, a questo punto nel tempo.LUA e lo Scoiattolo sono entrambi interpretati, che è bello perché uno dei giochi che sto costruendo è quello di includere modificabile codice, che dispone di un editor nel gioco.

Mi piacerebbe sentire il python, come ho visto il suo utilizzo all'interno della serie di battlefield, io credo.

python è bello anche perché si ha l'effettivo ORCO associazioni, nel caso in cui avete bisogno di modificare qualcosa di livello inferiore al volo.Non so di qualsiasi equivalente associazioni per Lua.

Poiché è una libreria C++, vorrei suggerire di JavaScript o di Scoiattolo, l'ultimo è il mio preferito dei due per essere ancora più vicino al C++, in particolare per come gestisce i tavoli/strutture e classi.Sarebbe il modo più semplice per ottenere utilizzato per un C++ programmatore a causa di tutte le somiglianze.

Tuttavia, se si va con JavaScript e trovare una versione HTML5 di Ogre3D, si dovrebbe essere in grado di trasferire il tuo codice di gioco direttamente in versione web con il minimo di (eventuali) modifiche necessarie.

Entrambi questi sono una buona scelta, ed entrambi hanno i loro pro e contro, ma entrambi sarebbe sicuramente il più facile da imparare in quanto è probabile che già lavora in C++.Se si lavora con Java, lo stesso può valere, e se è Game Maker, non avrebbe bisogno di uno a meno che non si sta cercando di fare un eseguibile che le persone non hanno bisogno di Game Maker esecuzione, nel qual caso, buona fortuna per la ricerca di un'estensione per eseguire uno di questi.

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