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. 😄

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. 😅

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. 🙇

Pare addirittura che abbia qualcosa che bolle in pentola… 😉

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! 😉

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. 😃 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. 😫

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. 😉

Me lo ero perso questo post 😮 vogliamo update!

davcri Arriveranno presto nuovi articoli sul blog, non temere. 😉

Waiting for G.. ehm nCine 😃

Mi han detto che c’e’ un altro engine interessante in citta’… ☀ @Fahien

Come avevo promesso poco sopra, un altro dev update per l’nCine! 💪

Quinto dev update per l’nCine, questa volta accompagnato da un video. 📺

Un nuovo dev update, il sesto, per l’nCine.

Vi lascio in compagnia di uno screenshot di Tracy, un frame profiler multi-piattaforma ed open source davvero molto completo che ho recentemente integrato nell’engine.

Tracy

Settimo dev update per l’nCine.
Nessuno screenshot questa volta, ma il tweet di annuncio è l’inizio di una mini discussione con un personaggio di rilievo. 😉

Un piacere leggere gli update, si scoprono sempre cose interessanti.

PS: mi ero perso il tweet 😮

Niente pesce d’Aprile oggi, ma l’ottavo dev update dell’nCine, tutto incentrato sul refactoring degli script CMake.

Nuovo development update, il nono, con numerose piccole ma importanti aggiunte all’nCine.

Una di queste è l’integrazione con RenderDoc, che è possibile vedere in questo screenshot:
image renderdoc-integration.png

Molti di voi lo sapranno già ma era d’obbligo segnalarlo comunque.
Qualche giorno fa ho rilasciato sotto licenza MIT su GitHub i sorgenti dell’nCine e dei progetti correlati: https://github.com/nCine

Per maggiori informazioni sulle features o per una galleria di immagini e video vi rimando al sito: https://ncine.github.io

Mi raccomando, non esitate a contattarmi, sia qui che su Discord, per qualsiasi motivo,
Magari con domande relative al codice, a come compilarlo o a come usarlo per creare i vostri giochi. 😉

Proseguono gli aggiornamenti con il decimo dev update , tutto incentrato sulla continuous integration e su Azure Pipelines.

Undicesimo dev update per l’nCine, quasi completamente dedicato all’aggiunta di Emscripten, e quindi del web, alla lista delle piattaforme supportate. 🕸

Non finiscono gli articoli di aggiornamento sullo sviluppo dell’nCine!
Siamo arrivati al dodicesimo dev update che illustrerà alcune delle ultime modifiche volte a semplificare la vita degli utenti. 🙂

Riporto anche qui la news relativa alla release 2019.10 dell’nCine. 😉

Comments are closed.