nCine, l’engine “da studio” di Encelo

0

Si è parlato a lungo del forum e di come aumentarne la partecipazione mediante la scrittura di contenuti più articolati ed organizzati, che potessero uscire dai limiti di Discord, possibilmente riguardanti nuovi progetti…

Con la scusa del sesto anno dal primo commit domani, ho deciso di farmi avanti io con un nuovo thread in questa sezione parlando dell’nCine.

Da molti considerato un animale mitologico alla stregua dell’unicorno presente allo Svilupparty, è stato proprio lo Svilupparty che lo ha visto, forse per la prima volta, presentato in qualche forma al pubblico. :smile:

Si tratta di una libreria di classi scritta in C++ che può essere usata per creare semplici giochi 2D per Linux, Windows, OS X e Android.

Lo scopo che mi sono sempre posto è stato quello di imparare aspetti particolari dell’engine programming, e questo si riflette nella mancanza di tante caratteristiche fondamentali. Il progetto è stato sviluppato principalmente nel mio tempo libero e naturalmente non si pone come obiettivo quello di competere con le soluzioni commerciali che tutti conosciamo.

Per maggiori informazioni consiglio la lettura del sito principale, dove è possibile trovare una pagina che raccoglie le (poche) feature disponibili, le istruzioni per la compilazione, la documentazione generata da Doxygen ed una pagina per le F.A.Q.

Per quanto riguarda il rilascio con licenza MIT dei sorgenti su GitHub, temo che bisognerà attendere ancora, per uno stallo di carattere legale che spero si risolva presto. :sweat_smile:

Per le ultime notizie seguite il progetto su Twitter e non abbiate paura di fare domande in questo thread!

Prima di chiudere ci tengo a sottolineare lo straordinario contributo in fase di testing e di supporto morale del buon Antonio @Fahien, l’unico che ha sempre creduto nel progetto e non si è mai arreso di fronte al suo essere poco user-friendly. :bow:

Pare addirittura che abbia qualcosa che bolle in pentola… :wink:

Vi lascio con un video che mostra alcuni degli esempi distribuiti con il progetto.

L’nCine è senza dubbio un bellissimo progetto. Una risorsa di enorme valore per chiunque voglia imparare.

È evidente come Angelo esprima tutta la sua curiosità nel mondo della programmazione implementando le proprie classi per la rappresentazione delle stringhe, array, sprite, particle effects, e quant’altro. Attendo con ansia i sorgenti.

Sì, ci manca della roba, è poco user-friendly, uno alle prime armi può trovare non poche difficoltà ad utilizzarlo, ma wow distribuito sotto licenza MIT, disponibile su GitHub, vuol dire che chiunque potrà contribuire a migliorarlo!

Let’s make a game.

Il lavoro sull’nCine procede come sempre senza sosta! :wink:

La prima grossa funzionalità aggiunta durante il mese di Giugno è stato il supporto per lo screen culling, fondamentale per supportare giochi che si estendono su più schermate. Uno sprite, non importa se una particella di un sistema particellare o una stringa di testo, non importa se ruotata o scalata, non viene disegnata se completamente fuori dai bordi dello schermo, con conseguente risparmio sulla chiamata della draw call relativa.

Successivamente è stata la volta del supporto completo, con conseguente lunga fase di testing su più dispositivi, di mouse e tastiera su Android. Attività, quest’ultima, prodiga di sorprese e oscuri magheggi, come spesso succede con questa piattaforma. :D Ad esempio con varie operazioni su maschere di bit combinate tra loro per supportare il tasto destro del mouse, trucco resosi necessario sulla maggior parte dei dispositivi Android testati. :tired_face:

L’insieme di questi cambiamenti ha favorito la nascita di un nuovo esempio di test dove una moltitudine di sprite ondeggia per lo schermo mentre è possibile andare in giro con la telecamera. Come sempre accade nei test dell’nCine è possibile utilizzare i più disparati metodi per l’input: tastiera, mouse e joystick sia su PC che su Android e tocco solo su quest’ultimo.

L’ultimo, ma non meno importante, cambiamento è stato il supporto per SDL2. Si è reso necessario dal momento che il vecchio back-end basato su SDL1 stava iniziando a divergere troppo a livello di funzionalità rispetto a quello basato su GLFW. Proprio come su GLFW adesso su SDL2 sono adesso disponibili gli eventi di connessione e disconnessione del joystick, l’evento relativo alla rotella del mouse (precedentemente simulato) e, sopratutto, la possibilità di passare parametri durante la creazione del contesto OpenGL. Quest’ultima caratteristica è vitale per il supporto futuro di versioni più recenti di OpenGL ed OpenGL ES.

E con questo è tutto per ora, ma spero di tornare a scrivere presto e con maggiore frequenza! :)

Qualche ulteriore nota tecnica sulle basi del progetto in questo articolo dal mio nuovo blog statico e minimale. :wink:

Comments are closed.