Last 3D : 3D engine & level editor

Argomenti riguardanti il D3D di GameMaker e librerie esterne.
Avatar utente
Alv
Membro
Messaggi: 133
Iscritto il: 14/11/2014, 22:33
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Sicilia
Contatta:

Last 3D : 3D engine & level editor

Messaggio da Alv »

Ecco una prima versione del Last 3D, il mio nuovo engine 3D & level editor realizzato con Game Maker. Alla fine del post troverete i link per la documentazione e il download.

Si tratta di un software che ho realizzato per sperimentare con la 3D. Il codice sorgente è disponibile. Se vi va di estenderlo, perchè no? Purchè rispettiate le licenze che ho scelto per distribuirlo.

Storia del progetto
Inziato nel 2011, ispirato a Minecraft, l’editor di livelli consentiva di realizzare mappe composte da blocchi squadrati a 90 gradi. In seguito ho pensato di includere la funzione di caricamento delle heightmap (per i principianti, le heightmap sono immagini in bianco e nero in cui la luminosità specifica l'altezza), e l’ho ulteriormente migliorato e ottimizzato, fino alla versione corrente.

Ottimizzazione
Sono riuscito a ottenere alte prestazioni (60 fps sul mio notebook abbastanza datato) spezzando la mappa in gruppi di 10×10=100 blocchi e creando un modello 3D per ogni gruppo, disegnando quindi solo i gruppi vicini alla telecamera.

Screenshot
Spoiler
Immagine
Spoiler
Immagine
Spoiler
Immagine

Link
Vi lascio con i link per la documentazione (disponibile sul mio sito) e il download.
Last 3D: documentazione
Download last3d (level editor, engine, documentation)
Ultima modifica di Alv il 16/02/2022, 0:21, modificato 23 volte in totale.

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Last 3D 3.0 : Game Maker 3D engine & level editor

Messaggio da doom13 »

Domanda essenziale, è compatibile con Game Maker Studio?
Se si, probabile che utilizzerò il tuo engine per un piccolo progettino, forse anche per la competizione annuale di GMI :sisisi:

Intanto ti faccio i miei complimenti, se ho tempo e proverò a rendere possibile la creazione di ponti e simili.
Edit: quante cose vorrei fare...
Riedit: ho appena letto sul sito che lo hai corretto per Game Maker Studio, perfetto allora.
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Last 3D 3.0 : Game Maker 3D engine & level editor

Messaggio da Jak »

Mi ricorda i miei bei tempi quando ancora le cose le facevo a metà prima di abbandonarle (ora le abbandono prima di iniziare :asd: )
Non posso fare altro che darti il mio pieno sostegno con l'eccezzione di questa mancanza imperdonabile
Alv ha scritto:Altra limitazione: manca il supporto ai modelli 3d.
Non si può fare un motore 3D senza i modelli 3D dai!
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
Alv
Membro
Messaggi: 133
Iscritto il: 14/11/2014, 22:33
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Sicilia
Contatta:

Re: Last 3D 3.0 : Game Maker 3D engine & level editor

Messaggio da Alv »

doom13 ha scritto:Domanda essenziale, è compatibile con Game Maker Studio?
Se si, probabile che utilizzerò il tuo engine per un piccolo progettino, forse anche per la competizione annuale di GMI :sisisi:

Intanto ti faccio i miei complimenti, se ho tempo e proverò a rendere possibile la creazione di ponti e simili.
Edit: quante cose vorrei fare...
Riedit: ho appena letto sul sito che lo hai corretto per Game Maker Studio, perfetto allora.
Grazie a tutti per i commenti! Sì, è compatibile con Game Maker Studio, però bisogna apportare delle piccole modifiche: dal momento che Game Maker Studio non supporta i trigger, bisogna rimpiazzarli con degli eventi standard. Comunque ho provveduto a farlo io, e ho anche corretto un piccolo bug che si presentava in Game Maker Studio, dovuto a una differente gestione delle variabili locali (che non possono avere un nome uguale alle variabili di istanza). Nel nuovo archivio troverete la cartella "GM Studio Compatible".
Jak ha scritto:Mi ricorda i miei bei tempi quando ancora le cose le facevo a metà prima di abbandonarle (ora le abbandono prima di iniziare :asd: )
Non posso fare altro che darti il mio pieno sostegno con l'eccezzione di questa mancanza imperdonabile
Alv ha scritto:Altra limitazione: manca il supporto ai modelli 3d.
Non si può fare un motore 3D senza i modelli 3D dai!
Sì, è vero: sono rimasto ai tempi di Wolfenstein 3D e Doom.

Pensavo di aggiungere il supporto ai modelli 3D in una nuova versione di Last 3D. Per curiosità: sapete come Game Maker li gestisce? Ho letto che è possibile caricarli, ma che formati è in grado di leggere? (sulla guida non c'è scritto)
Ultima modifica di Alv il 30/12/2020, 22:40, modificato 6 volte in totale.

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Last 3D 3.0 : Game Maker 3D engine & level editor

Messaggio da doom13 »

Alv ha scritto:Pensavo di aggiungere il supporto ai modelli 3d in una nuova versione di Last 3D. Per curiosità: sapete come Game Maker li gestisce? Ho letto che è possibile caricarli, ma che formati è in grado di leggere? (sulla guida non c'è scritto)
Che io ricordi si possono caricare file .mod e .gmmod che forse sono la stessa cosa, per questo è meglio apettare una risposta più precisa di Jak.
Io al momento per importare i modelli 3D li carico con Blender poi con uno script (di Blender) li converto in funzioni per Game Maker, script che mi crea un file txt, il testo lo copio e lo incollo in uno script in Game Maker che mi ritorna l'id del modello.
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Last 3D 3.0 : Game Maker 3D engine & level editor

Messaggio da Jak »

GM salva e legge da un formato proprietario (leggibile dall'uomo e quindi editabile esternamente comunque)
L'estensione potete benissimo inventarvela, alla fine è un file come altri, ma comunemente si usa .d3d
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
Alv
Membro
Messaggi: 133
Iscritto il: 14/11/2014, 22:33
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Sicilia
Contatta:

Re: Last 3D 3.1 : Game Maker 3D engine & level editor

Messaggio da Alv »

Ho rilasciato una nuova versione con feature aggiuntive e qualche fix. Purtroppo non legge le mappe della vecchia versione; se qualcuno ha già realizzato qualcosa, fatemi sapere che metto online un converitore. (Scusate: non ho pensato di salvare il numero di versione nei file di mappa. Nelle versioni successive non ci sarà bisogno di alcun convertitore!)

Per fare l'upgrade del vostro gioco, è sufficiente importare le nuove risorse (last3d.gmres contenuto nell'archivio).
Ultima modifica di Alv il 25/12/2020, 12:35, modificato 5 volte in totale.

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Last 3D 3.1 : Game Maker 3D engine & level editor

Messaggio da doom13 »

Ciao Alv, solo adesso sono riuscito a smanettare un po' con Last3D e ho notato che per la nebbia di gm (d3d_set_fog) non basta richiamare la funzione, come consigli di fare?
Ho provato a modificare il gioco demo scrivendo quella riga di codice in User Defined 15 di obPlayer ma la nebbia viene disegnata solo sugli oggetti e sul pavimento mentre si vede lo sfondo grigio.
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
Alv
Membro
Messaggi: 133
Iscritto il: 14/11/2014, 22:33
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Sicilia
Contatta:

Re: Last 3D 3.1 : Game Maker 3D engine & level editor

Messaggio da Alv »

doom13 ha scritto:Ciao Alv, solo adesso sono riuscito a smanettare un po' con Last3D e ho notato che per la nebbia di gm (d3d_set_fog) non basta richiamare la funzione, come consigli di fare?
Ho provato a modificare il gioco demo scrivendo quella riga di codice in User Defined 15 di obPlayer ma la nebbia viene disegnata solo sugli oggetti e sul pavimento mentre si vede lo sfondo grigio.
Ciao! Tutte le funzioni di Game Maker dovrebbero funzionare correttamente. Mi pare che la nebbia viene visualizzata solo sugli oggetti, quindi dovresti cambiare il colore di sfondo.

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Last 3D 3.1 : Game Maker 3D engine & level editor

Messaggio da doom13 »

Alv ha scritto:
doom13 ha scritto:Ciao Alv, solo adesso sono riuscito a smanettare un po' con Last3D e ho notato che per la nebbia di gm (d3d_set_fog) non basta richiamare la funzione, come consigli di fare?
Ho provato a modificare il gioco demo scrivendo quella riga di codice in User Defined 15 di obPlayer ma la nebbia viene disegnata solo sugli oggetti e sul pavimento mentre si vede lo sfondo grigio.
Ciao! Tutte le funzioni di Game Maker dovrebbero funzionare correttamente. Mi pare che la nebbia viene visualizzata solo sugli oggetti, quindi dovresti cambiare il colore di sfondo.
Farò così però sono abbastanza sicuro che la nebbia venga disegnata su tutto. :cappa:
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
Alv
Membro
Messaggi: 133
Iscritto il: 14/11/2014, 22:33
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Sicilia
Contatta:

Re: Last 3D 3.1 : Game Maker 3D engine & level editor

Messaggio da Alv »

doom13 ha scritto:
Alv ha scritto:
doom13 ha scritto:Ciao Alv, solo adesso sono riuscito a smanettare un po' con Last3D e ho notato che per la nebbia di gm (d3d_set_fog) non basta richiamare la funzione, come consigli di fare?
Ho provato a modificare il gioco demo scrivendo quella riga di codice in User Defined 15 di obPlayer ma la nebbia viene disegnata solo sugli oggetti e sul pavimento mentre si vede lo sfondo grigio.
Ciao! Tutte le funzioni di Game Maker dovrebbero funzionare correttamente. Mi pare che la nebbia viene visualizzata solo sugli oggetti, quindi dovresti cambiare il colore di sfondo.
Farò così però sono abbastanza sicuro che la nebbia venga disegnata su tutto. :cappa:
No, ho verificato aggiungendo la nebbia ad un vecchio mio progetto.
Ultima modifica di Alv il 05/12/2020, 18:56, modificato 1 volta in totale.

Avatar utente
Alv
Membro
Messaggi: 133
Iscritto il: 14/11/2014, 22:33
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Sicilia
Contatta:

Re: Last 3D 3.2 : Game Maker 3D engine & level editor

Messaggio da Alv »

Nuova versione pubblicata, alcuni bug corretti. Spero vivamente non ce ne siano altri!!

Consiglio di aggiornare il vostro progetto importando le risorse. Con Game Maker 8 ho verificato che le risorse più vecchie vengono sovrascritte con quelle più recenti; spero l'aggiornamento funzioni anche con Game Maker Studio!
Ultima modifica di Alv il 09/01/2021, 16:34, modificato 4 volte in totale.

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Last 3D 3.2 : Game Maker 3D engine & level editor

Messaggio da doom13 »

Alv ha scritto:Versione 3.2 pubblicata, documentazione aggiornata, alcuni bug corretti. Spero vivamente non ce ne siano altri!!
Consiglio di aggiornare il vostro progetto importando le risorse. Con Game Maker 8 ho verificato che le risorse più vecchie vengono sovrascritte con quelle più recenti. Spero l'aggiornamento funzioni anche con Game Maker Studio...

Le seguenti funzioni accettano un numero diverso di parametri, e le rispettive chiamate andrebbero aggiornate: l3d_init, l3d_coll_line, l3d_pointing
Che bug sono stati sistemati?
Tra l'altro ne ho trovato uno nell'editor, ho scelto una texture 1024x1024 e quando poi la seleziono l'anteprima occupa tutto lo schermo, credo possa bastare un draw_sprite_stretched :sisisi:
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
Alv
Membro
Messaggi: 133
Iscritto il: 14/11/2014, 22:33
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Sicilia
Contatta:

Re: Last 3D 3.2 : Game Maker 3D engine & level editor

Messaggio da Alv »

doom13 ha scritto:
Alv ha scritto:Versione 3.2 pubblicata, documentazione aggiornata, alcuni bug corretti. Spero vivamente non ce ne siano altri!!
Consiglio di aggiornare il vostro progetto importando le risorse. Con Game Maker 8 ho verificato che le risorse più vecchie vengono sovrascritte con quelle più recenti. Spero l'aggiornamento funzioni anche con Game Maker Studio...

Le seguenti funzioni accettano un numero diverso di parametri, e le rispettive chiamate andrebbero aggiornate: l3d_init, l3d_coll_line, l3d_pointing
Che bug sono stati sistemati?
Tra l'altro ne ho trovato uno nell'editor, ho scelto una texture 1024x1024 e quando poi la seleziono l'anteprima occupa tutto lo schermo, credo possa bastare un draw_sprite_stretched :sisisi:
Quando nell'editor si livellava il terreno, i blocchi contigui non venivano aggiornati (il problema riguardava solo la visualizzazione nell'editor: la mappa veniva caricata correttamente). Inoltre la dimensione della X per tracciare il rettangolo variava in base alla dimensione del blocco. Poi c'era un piccolo problema riguardante l'l3d_pointing. Inoltre ho apportato dei miglioramenti: la funzione l3d_test_h è più precisa e performante, le funzioni l3d_test_h e l3d_pointing rilevano le collisioni con gli oggetti solid (utile per fare ad esempio le porte). Nell'editor è possibile bloccare/sbloccare il mouse premendo X, cambiare colore delle scritte con C (bianco/nero, se la scena è scura conviene il bianco). Ho aggiunto la funzione modulo, che permette di utilizzare texture più grandi delle dimensioni di un blocco (vanno splittate in texture consecutive: l'editor seleziona automaticamente la texture corretta).
Ultima modifica di Alv il 03/01/2021, 20:33, modificato 7 volte in totale.

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Last 3D 3.2 : Game Maker 3D engine & level editor

Messaggio da doom13 »

Alv, potresti gentilmente provare questa mappa di test che ho fatto?
Ho creato la mappa con l'editor ma non viene caricata correttamente e non posso neanche muovere la camera...

https://mega.nz/#!zUQHWJZC!LnTWj05qpeci ... yt9eaR4Za4
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
Alv
Membro
Messaggi: 133
Iscritto il: 14/11/2014, 22:33
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Sicilia
Contatta:

Re: Last 3D 3.2 : Game Maker 3D engine & level editor

Messaggio da Alv »

doom13 ha scritto:Alv, potresti gentilmente provare questa mappa di test che ho fatto?
Ho creato la mappa con l'editor ma non viene caricata correttamente e non posso neanche muovere la camera...

https://mega.nz/#!zUQHWJZC!LnTWj05qpeci ... yt9eaR4Za4
Ciao. L'editor la visualizza correttamente, però se vuoi poterti muovere nella mappa ingame devi posizionare un oggetto player da qualche parte. E' il player che fa muovere la camera e testa le collisioni. Il player non fa parte del Last 3D, ovviamente; in teoria lo si potrebbe realizzare da zero, a partire dalle funzioni l3d. Però puoi benissimo utilizzare e modificare il player già pronto del sample game (per la precisione, si chiama obPlayer).

Nota: gli oggetti che hanno come parent l'oggetto di base non si possono piazzare nella room di gioco come gli elementi dell'interfaccia grafica: vanno configurati nell'editor.
Ultima modifica di Alv il 17/01/2021, 20:02, modificato 5 volte in totale.

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Last 3D 3.2 : Game Maker 3D engine & level editor

Messaggio da doom13 »

Alv ha scritto:
doom13 ha scritto:Alv, potresti gentilmente provare questa mappa di test che ho fatto?
Ho creato la mappa con l'editor ma non viene caricata correttamente e non posso neanche muovere la camera...

https://mega.nz/#!zUQHWJZC!LnTWj05qpeci ... yt9eaR4Za4
Ciao. L'editor la visualizza correttamente, però se vuoi poterti muovere nella mappa ingame devi posizionare un'oggetto player da qualche parte. E' il player che fa muovere la camera e testa le collisioni. Il player non fa parte del Last 3D ovviamente, in teoria lo si potrebbe realizzare da zero a partire dalle funzioni l3d. Però puoi benissimo utilizzare e modificare il player già pronto del sample_game. (per la precisione si chiama obPlayer).

Nota: gli oggetti che hanno come parent l'oggetto di base obObj0 non si possono piazzare nella room di gioco come gli elementi dell'interfaccia grafica, vanno configurati nell'editor.
C'è qualcosa che mi sfugge allora, come mai se provo la mappa test (map_test.txt) viene creato anche l'oggetto player?

Edit:
Anche piazzando obPlayer nella room non cambia nulla :fapensare:
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
Alv
Membro
Messaggi: 133
Iscritto il: 14/11/2014, 22:33
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Sicilia
Contatta:

Re: Last 3D 3.2 : Game Maker 3D engine & level editor

Messaggio da Alv »

doom13 ha scritto:
Alv ha scritto:
doom13 ha scritto:Alv, potresti gentilmente provare questa mappa di test che ho fatto?
Ho creato la mappa con l'editor ma non viene caricata correttamente e non posso neanche muovere la camera...

https://mega.nz/#!zUQHWJZC!LnTWj05qpeci ... yt9eaR4Za4
Ciao. L'editor la visualizza correttamente, però se vuoi poterti muovere nella mappa ingame devi posizionare un'oggetto player da qualche parte. E' il player che fa muovere la camera e testa le collisioni. Il player non fa parte del Last 3D ovviamente, in teoria lo si potrebbe realizzare da zero a partire dalle funzioni l3d. Però puoi benissimo utilizzare e modificare il player già pronto del sample_game. (per la precisione si chiama obPlayer).

Nota: gli oggetti che hanno come parent l'oggetto di base obObj0 non si possono piazzare nella room di gioco come gli elementi dell'interfaccia grafica, vanno configurati nell'editor.
C'è qualcosa che mi sfugge allora, come mai se provo la mappa test (map_test.txt) viene creato anche l'oggetto player?

Edit:
Anche piazzando obPlayer nella room non cambia nulla :fapensare:
Nei file mappa vengono salvati anche gli oggetti, con informazioni su posizione, rotazione, coordinate e texture. Nella mappa test_map c'è un oggetto obPlayer piazzato, il quale però mancava nella map_level1.

Piazzando l'obPlayer, il mouse si muove, però la mappa non viene visualizzata. Questo è dovuto al fatto che ai vari blocchi del terreno inizialmente non è associata alcuna texture. Nell'editor sono visibili (viene visualizzato l'atlas per intero), ma ingame i blocchi con texture nulla non vengono disegnati (a vantaggio delle prestazioni). Nel caso tuo, essendo l'atlas composto da una sola texture, non si notava assolutamente: la mappa sembrava texturizzata, ma in realtà non lo era! Devi usare lo strumento fill per riempire la mappa con la texture numero 1.
Ultima modifica di Alv il 30/12/2020, 22:46, modificato 3 volte in totale.

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Last 3D 3.2 : Game Maker 3D engine & level editor

Messaggio da doom13 »

Ci ho pensato poco fa mentre facevo la doccia, grazie per la risposta veloce.
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
Paperpaint
Membro attivo
Messaggi: 375
Iscritto il: 02/01/2014, 16:19
Specialità: Visionario lol
Uso: GameMaker 8.1
Contatta:

Re: Last 3D 3.2 : Game Maker 3D engine & level editor

Messaggio da Paperpaint »

Alv ha scritto:Vorrei presentare alla community il mio nuovo editor di livelli / engine 3d realizzato con Game Maker.

Qualcuno probabilmente si chiederà il perchè di questo piccolo progetto, essendoci in giro programmi come Unity, molto più completi e avanzati. La ragione è che volevo realizzare qualcosa di semplice da usare (almeno per me), che consentisse di di ottenere risultati discreti in poco tempo e possibilmente in maniera piacevole.

Non è possibile ottenere giochi paragonabili a quelli commerciali: nel caso vi andasse di utilizzare il mio engine (freeware) per realizzare giochi amatoriali, il mio consiglio è quello di valutare attentamente le features per vedere se fa al caso vostro.

E' probabile che qualche programmatore lo troverà interessante. Il source code è disponibile, anche se forse non abbastanza commentato. Se vi va di estenderlo, perchè no? Purchè resti freeware e venga menzionato l'autore.

Andiamo alla storia. Inziato nel 2011, ispirato a Minecraft, l'editor di livelli consentiva di realizzare mappe con blocchi squadrati a 90 gradi. In seguito ho pensato di includere la possibilità di caricare delle heightmap (per chi non lo sapesse sono delle immagini in bianco e nero in cui la luminosità indica l'altezza), e l'ho ulteriormente migliorato e ottimizzato, fino alla versione corrente che è la 3.0.

L'idea: la mappa (bidimensionale) è divisa in blocchi quadrati (è una matrice in memoria). Ogni blocco ha associata un'altezza. L'editor quindi mi dà la possibilità di rialzare blocchi e creare ad esempio muri, torri, scale e altro. Per ogni blocco posso memorizzare 5 texture (in realtà 6, in quanto ho aggiunto la possibilità di disegnare il soffitto): una texture per il pavimento, 4 laterali.

E' possibile inoltre caricare una heightmap. Le informazioni sulle altezze vengono fuse a runtime con quelle della mappa. Le possibilità così si moltiplicano.

Le altre features:
- oggetti 2d posizionabili nello spazio, è possibile associargli uno sprite e altri parametri (es. rotazione)
- autorotazione oggetti: si orientano in modo da apparire frontali alla telecamera (stile Wolfenstein 3D)
- adesivi (si possono attaccare ai muri)
- texture animate
- supporto alle skybox
- water texture
- funzioni per il rilevamento delle collisioni
- puntamento oggetti (cioè è possibile identificare gli oggetti verso cui il giocatore sta guardando)
- supporto alle room persistent

Limitazioni: non è possibile creare ambientazioni complesse, che si estendono in verticale (vedi Tomb Raider) o piattaforme sospese, ponti. Per realizzare edifici a più piani sono necessari punti di trasporto. Altra limitazione: manca il supporto ai modelli 3d.

Ottimizzazione: sono riuscito a ottenere alte prestazioni (60 fps sul mio Notebook di qualche anno fa) programmando l'engine in modo che spezzi la mappa in gruppi di 10x10=100 blocchi e crei un modello 3d per ogni gruppo, disegnando poi solo i gruppi vicini alla camera.

Video dimostrativi:



Vi lascio con il link alla documentazione (disponibile nel mio sito) + il link per il download. Spero che troviate questo engine interessante!

Documentazione Last 3D

Download Last 3D (level editor, engine, documentation)
E tu da dove spunti fuori?
Hai fatto un lavoro micidiale! D:
Complimenti!

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti