Un interprete e compilatore scritto da zero, ecco cosa è NESFab, il linguaggio di programmazione per la creazione di giochi per sistemi NES, progettato tenendo conto delle limitazioni a 8 bit.
Il linguaggio è più ergonomico da utilizzare rispetto al C, producendo anche un più veloce codice assembly, è inoltre più semplice da utilizzare in quanto viene fornito con un utile set di librerie.
Si potranno così realizzare degli homebrew game in stile retrò, e senza per forza di cosa studiare linguaggi assembly specifici, come ad esempio l’assembly 6502 per il NES.
Il linguaggio presenta comunque dei limiti, tuttavia, poiché uno degli svantaggi più importanti del linguaggio è che supporta solo un numero selezionato di mappatori per il sistema e, naturalmente, lo sviluppo diretto di un gioco in codice assembly che supererà sempre qualsiasi altro tipo di lingua.
Questo aiuterà sicuramente nello sviluppo di nuovi titoli, mentre i creatori di NESFab hanno anche rilasciato un primo gioco per NES sviluppato esclusivamente con NESFab, intitolato “Hang Glider”.
Hang Glider può essere eseguito anche all’interno del browser web attraverso l’emulatore WebNES a questo indirizzo. L’intera documentazione può essere trovata invece a questo indirizzo.
Changelog
Nuove caratteristiche
- Funzioni integrate:
min
,max
eabs
. - Dichiarazione di scambio.
- Espressione
nmi_counter
. - Un sistema macro di base che genera nuovi file sorgente, ma manca di capacità in linea.
Edizioni librerie
zapper.fab
per interfacciare il NES Zapper. Suggerimento di zrdwiuu.geometry.fab
per lavorare con le coordinate dello spazio dello schermo. Questo è utile per il controllo delle collisioni.object.fab
per la creazione di pool di oggetti.
Esempi
objects
ora mostra come creare oggetti dinamici come proiettili e nemici.zapper
mostra come leggere lo zapper.
Modifiche rotte
- Alcuni file di libreria sono state rinominate e inserite in cartelle.
Download: NESFab v0.4 (Windows AMD64)
Download: NESFab v0.4 (Linux AMD64)
Download: Source code NESFab v0.4
Fonte: gbatemp.net