DevLog 1 :: Inizio

Ho iniziato a pianificare questo progetto tanto tempo fa, ma ho deciso di creare Akasha Library il 20 aprile 2024. Ho iniziato con un vault di Obsidian (che è convenientissimo btw) e ho sviluppato lì le mie idee. Ho creato una Kanban Board con tutto quello che dovevo fare e ho iniziato a pianificare!

Ho considerato usare un motore grafico come GameMaker, Godot o Unreal Engine (Sono un fan dei FOSS), ma ho deciso di creare una Web Experience, quindi un programma che si usa nel web. Questo perchè quando usi dei motori grafici, devi sacrificare certe cose (a meno che io non cambi il Source Code, che potrei fare ma ci metterei troppo tempo) e bisogna reinstallare il programma ogni volta che c'è un aggiornamento a meno che non uso un server, che costa troppo, o pubblico il programma su delle piattaforme come Steam.

Ho quindi deciso di usare un linguaggio 100% non adatto al tipo di cosa che voglio fare (JavaScript, adatto al web). Fortunatamente, però, esistono Framework e Librerie per diverse cose, e ho potuto usufruire di specialmente una libreria per creare Akasha Library.

Ho però dovuto prima decidere quale Libreria o Framework usare, il che è stato abbastanza difficile.

Ho iniziato con un mix di Three.js e Pixi.js per gestire rispettivamente i componenti grafici 3D e 2D. Ho subito scartato l'idea dato che non c'era un buon modo per implementare il movimento. Ho quindi iniziato ad usare Babylon.js: un motore di rendering web. Sorprendentemente, funziona bene per fare i giochi! la Mojang ha anche creato una versione di Minecraft nel browser con questa libreria! Eccola.

Posterò degli update quando raggiungerò le mete più importanti.

DevLog 2 :: Testing!!

Oggi è il 24 Aprile 2024 e ho implementato tante cose!

Prima di tutto ora sto usando queste tecnologie:

codice

Per ora sto cercando di implementare cose basiche (oggi mi sto soffermando sulle interazioni con gli NPC), e quando ho fatto mi concentrerò sugli asset, quindi i modelli 3D, gli sprite, le texture etc.

Sto avendo un problema con i file 3D: solo il file .stl (legacy) possono essere importati senza problemi delle mesh Si è risolto da solo?????? non ho fatto assolutamente niente ma il problema non c'è più. Yay! Sono molto felice anche del fatto che questo significa che posso evitare di usare i file .stl, dato che non so come applicare delle texture con quei file.

Penso che sarebbe sia divertente che importante fare una lista di tutti i problemi che ho incontrato fino ad ora - quindi eccoli!

  1. Cercando di usare NPM ho causato così tanti errori che il mio browser è crashato. Ho quindi provato ad usare un CDN, fallendo miseramente (d'ora in poi lo userò solo per i piccoli progetti, cosa che questo non è).
  2. Ho scambiato le coordinate y e z, facendo in modo che tutto fosse messo al verso sbagliato.
  3. Ho implementato i simboli Akash così male che ho quasi fatto crashare il mio browser. Di nuovo.
  4. Non avendo capito cosa fosse uno Sprite Manager ho cercato di usare altre funzioni per rappresentare uno sprite. Grazie ad una linea di codice il programma aveva smesso di funzionare completamente.
  5. Per 4 ore avevo provato a creare delle funzioni dinamicamente - fallendo miseramente. A quanto pare a JavaScript non piace eseguire funzioni che ancora non esistono. La mia implementazione non è neanche il massimo, devo dire.
  6. Non capivo perchè la telecamera rimaneva sempre allo stesso punto relativo all'utente (ancora non so perchè), e invede di debuggare ho cambiato il tipo di camera. Ci sono volute ore per capire come implementare il nuovo tipo di telecamera.

Spero sia tutto hehe, ci vediamo un altro giorno

DevLog 2 :: Amore ed Odio

Le difficoltà che sto incontrando sono tante. Oggi ho finito di sare le interazioni con gli altri personaggi, ed è stato orribile.

Prima di tutto, Ho dovuto usare HTML e CSS per fare le caselle di testo, dato che non riuscivo a farla bene sennò. Ho quindi dovuto creare un sistema per mettere dei dati nelle mesh dei cubi degli NPC e recuperare quei dati nella situazione giusta, e questi dati generalmente non vengono messi nelle mesh quindi avevo paura che avrebbe rotto tutto, ma fortunatamente tutto ha funzionato. Yay!

Per oggi è tutto - non credo di avere energie per fare altro oggi - specialmente creare degli sprite o dei modelli 3D. Voglio "pubblicare" una demo invece che il gioco completo, quindi non ho problemi col lasciare il gioco non rifinito all'inizio. Questo però solo per ora, perchè questo è un progetto a lungo termine ed eventualmente voglio pubblicare un prodotto finito. La scadenza per la pubblicazione del progetto è tra 19 giorni però quindi mi devo muovere!!!

Ci vediamo dopo!