#bddgzproject — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #bddgzproject, aggregated by home.social.
-
La gestione dell'#Input dell'utente nei #Videogiochi è una questione molto delicata.
Se si sbaglia approccio, si rischia di degradare le prestazioni dell'intera applicazione.Supponiamo - quindi - di dover gestire l'input della tastiera...
La prima cosa che verrebbe naturale fare, sarebbe controllare se i tasti risultino premuti durante il classico `update` del #GameLoop…
Probabilmente con una catena di `if` "infinita" che verrebbero testati ad ogni aggiornamento di frame. -
"Come lo feci" di @byloth Von Frankenstein
#TileMap & #Mipmap: non vanno d'accordo...
Online è una cosa risaputa; «Everyone knows it!» - mi han risposto, in un forum!«#YesBut... Why?» - e cadeva il silenzio...
Qualcuno ha provato a darmi delle risposte che -sul momento- ho preso per buone... In seguito, rivelatesi errate!
Ci ho messo 2 settimane...
Ma potrò lasciare ai posteri il mio retaggio: come usare tilemap e mipmap insieme.https://discourse.threejs.org/t/seams-artifacts-between-texture-tiles-when-using-mipmaps/72979/12
«Si può fare!» 🤯
-
Migrazione a #ThreeJS.
Il primo problema è che -la libreria- non dispone di un componente già pronto per la gestione delle #TileMap (a differenza di #BabylonJS).
Online non ho trovato nulla che facesse al caso mio...
Mi metto -quindi- di buona lena ad implementarlo.Un banale piano, una texture da caricare e qualche riga di #TSL da scrivere... E le famose #Mipmap?
Le abilito ma -anche il mio #Shader, come quello di Babylon- non le gestisce correttamente.
Qui il risultato. 😞
-
#BabylonJS è un ottimo strumento!
Estremamente potente e molto più dev-friendly, rispetto a #ThreeJS!
In particolar modo, per tutto quello che riguarda la grafica #3D.Dal loro sito -dopotutto- si evince in maniera chiara!
Altro vale per il #2D, invece, dove lo trovo ancora un po' acerbo...
Ma -suppongo- non ci sia proprio l'interesse, da parte del core-team, a spingere in questa direzione!Peccato!
Ho dovuto fare marcia indietro e passare a Three.js.Si riparte da capo! 🥲
-
Alla fine, ho optato per #BabylonJS.
Per quale motivo?
1. È una libreria interamente scritta in #TypeScript.
2. Ha già un motore di rendering stabile basato su #WebGPU.
3. Offre nativamente alcune funzionalità molto interessanti, come la #GlobalIllumination e la gestione della fisica #Ragdoll.
4. Include il motore fisico #Havok: usato anche nei giochi AAA.
5. È ben documentata e con molti esempi.
6. È parecchio mantenuta, con nuove release e fix ogni pochi giorni. -
Che #GameEngine avrei dovuto scegliere per realizzare questo #Videogame? 🤔
Avevo pochi e semplici requisiti, ma fondamentali:
1. L'engine doveva essere #OpenSource.
2. Il gioco finale deve poter girare in un browser.
3. Dovrò poterci integrare l'SDK di #Discord per le app embedded senza bestemmiare troppo.Dopo varie idee, confronti e considerazioni, ho ristretto le opzioni a 3 candidati:
• #Godot
• #ThreeJS
• #BabylonJSQuale avrò scelto, alla fine? 😏