Io e il mio amico siamo nella prima fase della creazione di un linguaggio specifico per il dominio progettato per la programmazione di giochi, per la sua tesi di laurea.Quali caratteristiche ti piacerebbe vedere in un gioco di programmazione DSL?
Il linguaggio sarà abbastanza di basso livello, avrà una sintassi simile a C, una garbage collection opzionale e sarà orientato verso sistemi con poca memoria o potenza di elaborazione (ad esempio Nintendo DS), ma dovrebbe essere potente abbastanza per facilitare lo sviluppo del PC facilmente. Non sarà un linguaggio di scripting, ma compilato, ma dato che non vogliamo passare mesi a scrivere un normale compilatore, la prima implementazione sarà fondamentalmente un traduttore LanguageName-to-C, con TCC o GCC come compilatore finale
Ora, ho una domanda per tutti voi programmatori di giochi là fuori:
Cosa ti piacerebbe vedere in un tale linguaggio? Quali caratteristiche, implementazione e sintassi-saggio, sarebbe meglio per questo? Cosa evitare?
Edit:
Alcune cose che abbiamo già pensato up:
- oggetti basati sullo stato - un oggetto può esistere in uno dei suoi membri (o sub-States)
- eventi e funzioni - gli eventi non devono esistere per essere chiamati, e possono bollire
- allocazione dinamica limitata e supporto puntatore - vogliamo che sia il più sicuro possibile
- supporto per oggetti compositi ng (Hero è composto (in modo dinamico) da attore, Hurtable, Steerable, ecc.)
- "risorse" negli stati, caricate e scaricate automaticamente all'inizio/alla fine dello stato (ad esempio, un oggetto trama OpenGL è una risorsa)
- supporto di base per la localizzazione e la serializzazione
- una sintassi che è rapidamente analizzabile
- vogliamo rendere il linguaggio più coerente possibile: tutto viene passato come valore, ogni dichiarazione deve sintassi prevedibili (ad es.
function retType name(type arg) is (qualifier, list) { }
; noconst
,static
,public
qualificazioni ovunque tranne nella lista di qualificazione), ecc
Clojure ha un sacco di funzioni che ammiro, soprattutto sul fronte della programmazione funzionale. Potrebbe fare una buona cosa da cui cribuire. – Kzqai