| Unique Visitors * | 665 |
| Pagine Viste * | 850 |
Dev- diary sullo sviluppo del mio engine 3D.
Tecnologie utilizzate:
C++11
OpenGL
libSDL/SFML (sembra che SFML abbia battuto SDL sui tempi. andrò per questa?).
Lua
Obiettivo:
Creare un motore di rendering senza tanti fronzoli. Ho avuto modo di provare varie tecnologie che non mi hanno soddisfatto (Irrlicht, Ogre, Unity, Crystal Space) e alla fine ho deciso di crearmi da me un motore 3D, che andasse bene non solo per i videogiochi, ma per qualunque applicazione necessiti di un po di grafica.
Features:
-Potente sistema di materiali completamente serializzabile
-Framework GUI (2D/3D full featured GUI)
-Test automatizzato (registrazione dell'input e re-play)
Testing automatizzato:
In realtà l'idea è molto semplice. Viene registrata una sequenza di eventi, input e tempi. Questo accade in modalità attiva (ovvero dove l'utente può interagire). In modalità passiva invece l'utente e l'engine non sono più in grado di generare eventi (nemmeno eventi temporali come la durata di un frame). L'unica fonte di eventi e tempi è la registrazione che permetterà di ricreare l'esatta sequenza di input e di stati del gioco/applicazione. Questo vale anche con diversi livelli di dettaglio grafico poichè in modalità passiva non conta la reale durata del frame, ma quella registrata (quindi sebbene la registrazione possa sembrare più veloce o lenta, in realtà esiste un'esatta corrispondenza tra i frames registrati e quelli in playback). Anzi questo permette di verificare a parità di sequenza diverse impostazioni grafiche.
Unit testing:
Serie di test che oltre a illustrare le funzionalità saranno utili per chiunque voglia apportare modifiche all'engine per vedere che nonostante le modifiche tutto continui a funzionare.
Pubblicato 29 ottobre 2012
Finalmente ho avuto un po di tempo nonostante gli impegni con la scuola. Ora ho completato la parte riguardante le allocazioni dinamiche. Per ora vengono usate "malloc" e "free", ma grazie ai template mixin è possibile specificare una diversa strategia di allocazione per ogni categoria di memoria. L'interfaccia è pronta, significa che chiunque usi l'engine può sia usare l'allocazione standard che cambiare le allocazioni in tutto l'engine. Finalmente =). Siccome si tratta di ...
Pubblicato 29 ottobre 2012
Alla fine credo che oltre alla grafica dovrò anche gestire in minima partefiles ed archivi. Per rendere riproducibile un determinato input devotenere conto che l'input è considerato anche leggere un file. Per questo motivo devo controllare i checksums per ogni file letto e dare la possibilità di includere nella registrazione dell'input i file che cambiano come ad esempio i saved games e file di configurazione. Non posso certo registrare file da 256 MB di asset per ogni input...
Pubblicato 31 agosto 2012
Attualmente non sto lavorando su nuove features dell'engine, ma lo sto usando in un videgioco che faccio insieme ad un amico, si può dire che sto eseguendo una prova pesante "in opera" per controllare che tutto fuzioni. Questo riguarda la vecchia versione dell'engine che non credo verrà mai pubblicata. Attualmente le uniche evoluzioni dell'engine sono nella branch che utilizza i nuovi standard C++ (C++11). Non sono state necessarie grandi modifiche dell'engine a dire il vero anzi,...
