Domanda

Mi chiedevo che tipo di espressività si adatta un linguaggio utilizzato per generare effetti particellari .. Supponendo di voler un motore il più flessibile possibile che tipo di 'caratteristiche' dovrebbe avere? (In aggiunta a quelli banali come colore, posizione, velocità, accelerazione)

È stato utile?

Soluzione

in modo che tutti ti sta invitando a non reinventare la ruota e che è una grande idea, ho un debole per Python (che consentirebbe agli utenti di scripting di installare anche e utilizzare un sacco di altre librerie & c matematici utili), ma di LUA senza dubbio ancora più facile da integrare (e altri linguaggi di scripting come Ruby sarebbe anche senza dubbio più che bene). Non scrivere il proprio linguaggio di script ad-hoc è ottimo consigli.

Ma leggendo la tua domanda mi fa pensare che il problema è più circa - quali attributi degli oggetti di mio motore (e quali oggetti - particelle, certo, ma, cosa altro oltre) dovrei esporre a qualunque linguaggio di scripting I brace (o, dicono tramite MS COM o .NET, a qualsiasi linguaggio di scripting o non-scripting miei utenti preferiscono)?

Proprietà specifiche di ogni particella, come quelle elencate sono senza dubbio vale la pena. Avete qualsiasi altra cosa nel tuo motore oltre particelle puntiformi, come, ad esempio, le superfici e gli altri enti non puntiformi, off che le particelle potrebbero rimbalzare? Che dire di "forze" di attrazione o repulsione? Potrebbero tuoi particelle hanno momento angolare / spin?

Una grande idea sarebbe quella di fare le vostre proprietà particelle 'expando', per usare un termine popolare (altri modelli di oggetti esprimono la stessa idea in modo diverso) - a seconda del prodotto utilizzando un motore, altri programmatori possono decidere di aggiungere al particelle di tutto ciò di cui hanno bisogno le proprietà ... forse di massa, dicono - carica forse elettrica - forse costo in centesimi di euro, per tutto quello che sai o cura ;-). Questo rende la vita più facile per gli utenti rispetto ad appena offrire un "ID particella" (che si dovrebbe in ogni caso, naturalmente ;-) per loro di utilizzare in tabelle hash o simili per tenere traccia degli attributi specifici che si preoccupano! Permettendo loro di aggiungere "metodi" e "trigger" (metodi che si chiamano automaticamente se e quando determinate condizioni tengono, per esempio due particelle avvicinarsi di una certa distanza) sarebbe impressionante, ma forse un po 'più difficile.

Non dimenticate, BTW, per consentire un buon metodo per "fotografia" dello stato attuale del sistema di particelle (COMPRESI expando aggiunte dall'utente proprietà) per un flusso o un file di nome e di ripristino da tale istantanea - che è assolutamente cruciale per molti usi.

Al di là di particelle specifiche (ed eventualmente altri oggetti come superfici se li avete), probabilmente si dovrebbe avere un "ambiente globale" con le sue proprietà (compresi quelli expando) e, idealmente, i metodi e innesca troppo. Per esempio, un campo di forza che agisce su tutte le particelle a seconda della loro posizione (e forse la loro carica, di massa, ecc ... -!) ...

Speranza alcune di queste idee che colpisce come interessante - difficile per me dire, con poca idea del vostro campo di applicazione previsto -!)

Altri suggerimenti

Non cercare di progettare un nuovo linguaggio solo per la vostra applicazione, invece incorporare un'altra, lingua ormai consolidata in là. Date un'occhiata al disastro che ha causato per altre applicazioni che cercano di implementare il proprio linguaggio di scripting (mIRC è un buon esempio). Vorrà dire gli utenti dovranno imparare un'altra lingua solo per lo script la vostra applicazione. Inoltre, se si progetta la propria lingua che probabilmente alla fine non così utile come altre lingue. Non cercare di reinventare la ruota.

Si potrebbe desiderare di guardare Lua in quanto è leggero, popolare, ben consolidata, e è stato progettato per essere utilizzato da giochi (utenti di esso includono EA, Blizzard, Mod di Garry, ecc), e dispone di una libreria di base molto minimale (è stato progettato per essere un linguaggio modulare).

Lua . Si tratta di un grande disegno di lingua, prestazioni eccellenti, ampiamente utilizzato dagli sviluppatori del gioco, e abbastanza piccolo che potete acquistarli padronanza in pochi giorni.

Poi si può andare avanti con il vostro game design.

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