fosstodon.org is one of the many independent Mastodon servers you can use to participate in the fediverse.
Fosstodon is an invite only Mastodon instance that is open to those who are interested in technology; particularly free & open source software. If you wish to join, contact us for an invite.

Administered by:

Server stats:

8.6K
active users

#bddgzproject

0 posts0 participants0 posts today
Matteo Bilotta :fediverso:<p>Ho finalmente terminato il refactoring del progetto, dal più classico dei <a href="https://mastodon.uno/tags/GameLoop" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GameLoop</span></a> ad un'avanzata e nuova architettura <a href="https://mastodon.uno/tags/ECS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ECS</span></a>.</p><p>Per arrivare a ciò, ho scritto e pubblicato una piccola libreria: una mia personalissima implementazione dell'architettura ECS in <a href="https://mastodon.uno/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a>.</p><p>Qui il repository, per gli interessati: <a href="https://github.com/Byloth/micro-ecs" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">github.com/Byloth/micro-ecs</span><span class="invisible"></span></a></p><p>---</p><p>Nulla di definitivo, ancora, eh!<br>Può esser ancora migliorato e ottimizzato ulteriormente!</p><p>É tutto ancora in divenire...<br>Stay tuned! 😉</p><p><a href="https://mastodon.uno/tags/BDDGZProject" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BDDGZProject</span></a></p>
Matteo Bilotta :fediverso:<p>No, non ho abbandonato il progetto. GIAMMAI!</p><p>Anzi... Sono sempre più determinato a volerlo portare a termine.<br>Il Mondo ne ha bisogno! 😌</p><p>Scherzi a parte...<br>La mia <a href="https://mastodon.uno/tags/OCD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OCD</span></a> nel voler fare le cose perfette, mi ha costretto a sperimentare molte strade differenti.<br>L'ultima che ho imboccato, mi ha portato dritto dall'architettura <a href="https://mastodon.uno/tags/ECS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ECS</span></a>: <a href="https://en.wikipedia.org/wiki/Entity_component_system" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">en.wikipedia.org/wiki/Entity_c</span><span class="invisible">omponent_system</span></a></p><p>L'ho studiata e ho riscritto tutto seguendone i sacri dettami, permettendomi qualche piccola modifica affine ai miei gusti (<a href="https://mastodon.uno/tags/OOP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OOP</span></a>).</p><p><a href="https://mastodon.uno/tags/BDDGZProject" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BDDGZProject</span></a></p>
Matteo Bilotta :fediverso:<p>Dopo il consiglio di ieri (sempre di ALTISSIMO livello) da parte del buon <span class="h-card" translate="no"><a href="https://mastodon.uno/@shurizzle" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>shurizzle</span></a></span>, in cui mi suggeriva di lasciar perdere i `Proxy` e trovare una strada alternativa, mi son buttato in alcuni test di performance.</p><p>Risultato: l'esecuzione tramite `Proxy`, richiede oltre il 220% del tempo impiegato da una funzione classica! 🤯</p><p>Poiché l'ottimizzazione è LA Priorità, ho cercato una soluzione diversa e altrettanto valida che non comportasse alcun overhead.</p><p>Alla fine l'ho trovata. 😏</p><p><a href="https://mastodon.uno/tags/BDDGZProject" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BDDGZProject</span></a></p>
Matteo Bilotta :fediverso:<p>Mai definito un oggetto <a href="https://mastodon.uno/tags/Callable" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Callable</span></a> o <a href="https://mastodon.uno/tags/FunctionLike" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FunctionLike</span></a> in <a href="https://mastodon.uno/tags/Python" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Python</span></a>? 🤔</p><p>Niente di più facile: basta implementare il metodo built-in `__call__` nella propria classe e... Fatto. That's it. 😌</p><p>Mai provato -invece- a farlo in <a href="https://mastodon.uno/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a> o -peggio- in <a href="https://mastodon.uno/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a>?</p><p>Sì... È possibile farlo anche in JS! 😏<br>È necessario ereditare da `Function` e strutturare il costruttore in maniera un po' "particolare", affinché restituisca un oggetto `Proxy`...</p><p>Uno strumento POTENTISSIMO, per la cronaca...</p><p><a href="https://mastodon.uno/tags/BDDGZProject" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BDDGZProject</span></a></p>
Matteo Bilotta :fediverso:<p>"Come lo feci" di <span class="h-card" translate="no"><a href="https://mastodon.uno/@byloth" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>byloth</span></a></span> Von Frankenstein</p><p><a href="https://mastodon.uno/tags/TileMap" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TileMap</span></a> &amp; <a href="https://mastodon.uno/tags/Mipmap" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Mipmap</span></a>: non vanno d'accordo...<br>Online è una cosa risaputa; «Everyone knows it!» - mi han risposto, in un forum!</p><p>«<a href="https://mastodon.uno/tags/YesBut" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>YesBut</span></a>... Why?» - e cadeva il silenzio...</p><p>Qualcuno ha provato a darmi delle risposte che -sul momento- ho preso per buone... In seguito, rivelatesi errate!</p><p>Ci ho messo 2 settimane...<br>Ma potrò lasciare ai posteri il mio retaggio: come usare tilemap e mipmap insieme.</p><p><a href="https://discourse.threejs.org/t/seams-artifacts-between-texture-tiles-when-using-mipmaps/72979/12" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">discourse.threejs.org/t/seams-</span><span class="invisible">artifacts-between-texture-tiles-when-using-mipmaps/72979/12</span></a></p><p>«Si può fare!» 🤯</p><p><a href="https://mastodon.uno/tags/BDDGZProject" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BDDGZProject</span></a></p>
Matteo Bilotta :fediverso:<p>Migrazione a <a href="https://mastodon.uno/tags/ThreeJS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThreeJS</span></a>.</p><p>Il primo problema è che -la libreria- non dispone di un componente già pronto per la gestione delle <a href="https://mastodon.uno/tags/TileMap" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TileMap</span></a> (a differenza di <a href="https://mastodon.uno/tags/BabylonJS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BabylonJS</span></a>).</p><p>Online non ho trovato nulla che facesse al caso mio...<br>Mi metto -quindi- di buona lena ad implementarlo.</p><p>Un banale piano, una texture da caricare e qualche riga di <a href="https://mastodon.uno/tags/TSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TSL</span></a> da scrivere... E le famose <a href="https://mastodon.uno/tags/Mipmap" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Mipmap</span></a>?</p><p>Le abilito ma -anche il mio <a href="https://mastodon.uno/tags/Shader" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Shader</span></a>, come quello di Babylon- non le gestisce correttamente.</p><p>Qui il risultato. 😞</p><p><a href="https://mastodon.uno/tags/BDDGZProject" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BDDGZProject</span></a></p>
Matteo Bilotta :fediverso:<p><a href="https://mastodon.uno/tags/BabylonJS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BabylonJS</span></a> è un ottimo strumento!</p><p>Estremamente potente e molto più dev-friendly, rispetto a <a href="https://mastodon.uno/tags/ThreeJS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThreeJS</span></a>!<br>In particolar modo, per tutto quello che riguarda la grafica <a href="https://mastodon.uno/tags/3D" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>3D</span></a>.</p><p>Dal loro sito -dopotutto- si evince in maniera chiara!</p><p>Altro vale per il <a href="https://mastodon.uno/tags/2D" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>2D</span></a>, invece, dove lo trovo ancora un po' acerbo...<br>Ma -suppongo- non ci sia proprio l'interesse, da parte del core-team, a spingere in questa direzione!</p><p>Peccato!<br>Ho dovuto fare marcia indietro e passare a Three.js.</p><p>Si riparte da capo! 🥲</p><p><a href="https://mastodon.uno/tags/BDDGZProject" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BDDGZProject</span></a></p>
Matteo Bilotta :fediverso:<p>Alla fine, ho optato per <a href="https://mastodon.uno/tags/BabylonJS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BabylonJS</span></a>.</p><p>Per quale motivo?<br> 1. È una libreria interamente scritta in <a href="https://mastodon.uno/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a>.<br> 2. Ha già un motore di rendering stabile basato su <a href="https://mastodon.uno/tags/WebGPU" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebGPU</span></a>.<br> 3. Offre nativamente alcune funzionalità molto interessanti, come la <a href="https://mastodon.uno/tags/GlobalIllumination" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GlobalIllumination</span></a> e la gestione della fisica <a href="https://mastodon.uno/tags/Ragdoll" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Ragdoll</span></a>.<br> 4. Include il motore fisico <a href="https://mastodon.uno/tags/Havok" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Havok</span></a>: usato anche nei giochi AAA.<br> 5. È ben documentata e con molti esempi.<br> 6. È parecchio mantenuta, con nuove release e fix ogni pochi giorni.</p><p><a href="https://mastodon.uno/tags/BDDGZProject" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BDDGZProject</span></a></p>
Matteo Bilotta :fediverso:<p>Che <a href="https://mastodon.uno/tags/GameEngine" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GameEngine</span></a> avrei dovuto scegliere per realizzare questo <a href="https://mastodon.uno/tags/Videogame" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Videogame</span></a>? 🤔</p><p>Avevo pochi e semplici requisiti, ma fondamentali:<br> 1. L'engine doveva essere <a href="https://mastodon.uno/tags/OpenSource" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenSource</span></a>.<br> 2. Il gioco finale deve poter girare in un browser.<br> 3. Dovrò poterci integrare l'SDK di <a href="https://mastodon.uno/tags/Discord" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Discord</span></a> per le app embedded senza bestemmiare troppo.</p><p>Dopo varie idee, confronti e considerazioni, ho ristretto le opzioni a 3 candidati:<br> • <a href="https://mastodon.uno/tags/Godot" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Godot</span></a><br> • <a href="https://mastodon.uno/tags/ThreeJS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThreeJS</span></a><br> • <a href="https://mastodon.uno/tags/BabylonJS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BabylonJS</span></a></p><p>Quale avrò scelto, alla fine? 😏</p><p><a href="https://mastodon.uno/tags/BDDGZProject" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BDDGZProject</span></a></p>
Matteo Bilotta :fediverso:<p>Mai giocato a <a href="https://mastodon.uno/tags/Zombicide" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Zombicide</span></a>? 🧟</p><p>È già un anno, da quando son caduto in questo profondissimo rabbit-hole...</p><p>Gioco splendido. Davvero!<br>Ha solo un problema: ci vuole UN SACCO per preparare la partita e ritirare il tutto, una volta finito.</p><p>Sarebbe BELLISSIMO se esistesse una versione digitale da giocare con un click... Magari online, per giocarci con gli amici, su <a href="https://mastodon.uno/tags/Discord" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Discord</span></a>! 🥰</p><p>---</p><p>In foto: la mia collezione di scatole ed espansioni del gioco da tavolo.</p><p><a href="https://mastodon.uno/tags/BDDGZProject" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BDDGZProject</span></a></p>