Vai al contenuto

Rilevato Ad-Blocker. Per favore disabilita il tuo adblocker quando navighi su makerando.com - Non c'è nessun annuncio invasivo.

  • Chatbox

    You don't have permission to chat.
    Load More
Thejuster

MMORpgmaker 3.1

Recommended Posts

Pochi giorni fà ne parlavo con ghostino il malandrino in chat.

 

Dal danno che ebbi tempo fà, persi il progetto di mmorpgmaker.

nonostante che avevo diverse versioni e compilazioni sparse quà e là.

oltre 10 copie sull'hd due reposity e altri upload su mediafire e altervista.

 

Ora rullo di tamburi ....... ho ritrovato il sorgente.

 

quindi riparto nuovamente con la 3.1

 

E questo si sà. Quando rifai una cosa, la fai meglio di prima.

 

Vi mostro qualche screen anticipatamente del nuovo editor di livelli con caratteristiche che possono essere 

rilevate sia come buone che come pessime. i consigli servono a questo.

 

 

INTERFACCIA

 

1416896650.jpg

 

 

La nuova interfaccia presenta 4 Layer + 1 di eventi.

 

Una delle nuovità e che non occorre più compilare i file in xnb.

ma si possono usare direttamente i file png per i tileset o risorse grafiche.

 

Stessa cosa vale per L'engine.

Possono essere usate immagini in real-time.

 

 

1.

Libreria Tileset.

 

E possibile combinare ed utilizzare svariati tipi di tileset in una sola mappa.

componendo un set di materiali direttamente dall'editor cliccando con il tasto destro al controllo 2

e andando alla voce Crea Materiali

 

1416918094.jpg

 

Si andrà a comporre pezzo per pezzo un formato grafico da utilizzare in una raccolta

come la lista mostrata in basso "Libreria Attuale" che conterrà le diverse tipologie di tile selezionati

 

 

Il file salvato conterrà tutte le informazioni del tile trasportabile e portabile.

In pratica non avrete bisogno di portare nel progetto un Tileset.

Ma semplicemente il file dei materiali generato.

Il quale diventa proprietario al progetto, e non può essere letto da ulteriori programmi esterni ad esso.

Questo evita anche la fuga di risorse.

 

1416924876.jpg

 

 

 

Così i nostri tiles combinati e memorizzati nel file dei materiali

possono essere usati simultaneamente e scegliere qualsiasi elemento che noi vogliamo

su qualsiasi layer.

 

1416836962.jpg

 

 

In oltre, il vecchio Editor utilizzava un sistema di memorizzazione basato su un database xml.

Da ora invece verrà implementato un sistema come rpgmaker.

Ogni file conterrà informazioni per ogni tipo di risorsa.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Beeeeeellllooooooo XD allora il progetto va avanti! Mi fa molto piacere, effettivamente sembra essere migliorato parecchio dall'ultima volta!

 

Ma i tiles si possono comunque impostare singolarmente come impassabili o altro come in rpg maker, o considera tutto il blocco come impassabile?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

certo ghostino i consigli sono moolto utili :D

 

Avevo dimenticato di dire che la velocità di disegno è impressionante.

E' il doppio più veloce di Rpgmaker.

 

Ovviamente almeno per ora le differenze ci sono.

 

Certo non sarà dinamico come rpgmaker.

 

Ma sarà lo stesso sia Offline che Online e Gratis!

quindi potete vendere i giochi creati con esso.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Bella notizia juster.

Una cosa non ho capito, la grandezza del singolo tile è variabile o fissa come in rpgmaker?

Perché nell'immagine vedo un 64x64 formato da tile da 32x32.

Sarebbe possibile avere ad esempio un singolo tile da 16x16?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Bella notizia juster.

Una cosa non ho capito, la grandezza del singolo tile è variabile o fissa come in rpgmaker?

Perché nell'immagine vedo un 64x64 formato da tile da 32x32.

Sarebbe possibile avere ad esempio un singolo tile da 16x16?

 

 

 

 

 

 

16x16 non si può perché il tile minimo e di 32x32

ma si può allargare o stringere come in questo esempio.

 

1416983260.jpg

 

 

qui abbiamo 32x32 tile minimo

ma possiamo allungarlo o allargarlo come ci pare

 

1416938847.jpg

 

e creare tipo dei prefabbricati pronti ad essere piazziati.

facendoci risparmiare tempo nel disegnare esempio le classiche casette.

mentre averle già disegnate in memoria ci fà risparmiare molto tempo sul design

e concentraci più sulla programmazione.

 

 

 

Non ho capito cosa stai creando :/

cioè ho capito che è un simile rpgmaker

 

E' un Rpgmaker evoluto. XD

Molto più fluido e potente.

sia a livello di scripting che al livello grafico ed eventi.

 

Un esempio grafico che postai tempo fà

 

Questa è una semplice mappa creata da me con rpgmaker.

 

Se dovrei spiegarti tutte le differenze ci vorrebbe un giorno intero XD

ma ti mostro semplicemente senza chiacchiere le differenze.

 

 

1416986199.png

 

 

La stessa scena con lo stesso tileset

ma giocata su MMORpgmaker

 

81335060.png

 

 

Una vecchia screen della modalità MMO

il framerate  testato con Fraps oscilla trai 195 e 200 fps al secondo

 

mmorpgmaker201204090211.png

 

Mentre uno normalissimo gioco rpg non supera i 60 fps al secondo.

 

questo significa più velocità di gioco e meno lag. ( movimenti a scatti )

 

 

Questa è una schermata del Main Menu realizzata tramite scripting da me è Corretta poi da Melosx

 

catturaqp.jpg

 

 

questo esempio è uno script 

dello Scene_Title, cioè di come viene impostato uno script

è molto semplice capire come funziona.

--> ###########################################
--> # MMORPGMAKER SCENE_TITLE
--> ###########################################
--> # Questo Modulo Gestisce la scena primaria
--> # Del Title Screen in Single Player
--> ###########################################

package.path = ";Content\\data\\Script\\?.lua"

require "Window_Base" --> Libreria Window Base
require "Keyboard_State" --> Libreria dei Tasti
require "screen" --> Libreria per lo schermo
require "System_Audio" --> Libreria Audio
require "Bitmap" --> Libreria per il Drawing
require "Scene_Load" --> Scena del Caricamento dei Salvataggi

Scene_Title = {}


function Scene_Title:Initialize()

      --> Carico il Bakground nella texture numero 0
      Bitmap:Cache(0,"data\\GUI\\Title\\background")
    
    
--> Creo Elementi per la finestra
-->  ID_FINESTRA , --> ID_elemento Selezionato, "Testo Elemento"

    
      Window:Add_Selectable_Item(0,0,"New Game")
      Window:Add_Selectable_Item(0,1,"Continue")
      Window:Add_Selectable_Item(0,2,"Exit")

      --> Riproduco il BGM
      System_Audio:Play_BGM("1")
end


  --> Stato di Selezione
  local sel_state = 0 --> Elemento di Selezione Corrente
  local keyed = "null" --> Ultimo tasto premuto
  
  -->Ho proposto di ricreare direttamente da script la Scene_Load
  -->Per caricare il proprio salvataggio del gioco
  -->Evitando di ricreare anche nel sorgente una nuova scena statica
  -->Ne ho decisa di crearne una dinamica direttamente da script
  -->Quando scena avra come valore load, il metodo update di questo script
  -->Andra a richiamare il metodo update dello script Scene_Load
  local scena = "null" 
  
function Scene_Title:Update()
   
    if scena == "null" then
        
    --> Disegno il bakground
    --> TextureID in Cache, X, Y
    Bitmap:Draw(0,0,0)
    
    keyed = Keyboard_State:Get_Key() --> Recupero l'ultimo tasto premuto
    
    
    -->Se l'ultimo tasto premuto e uguale a "giu" e l'oggetto selezionato e  minure
    -->di 2 continua ad aumentare se premo giu
    if keyed == "down" and sel_state < 2 then
        sel_state = sel_state + 1
        System_Audio:Play_SE("cursor")
    end
    
    
    -->Se l'ultimo tasto premuto e uguale a "su" e l'oggetto selezionato non e uguale a 0
    -->continua a diminure se premo su
    if keyed == "up" and sel_state ~= 0 then
        sel_state = sel_state - 1
        System_Audio:Play_SE("cursor")
    end


      --> Eventi
    
      -->Quando premo Invio su Load Game
    if keyed == "enter" and sel_state == 1 then
       
        Screen:Window_Name("Premuto su Load Game")
       System_Audio:Play_SE("accept")
       scena = "load"
       Scene_Load:Initialize()
       
    end
   
   
    --> Quando Premo Invio su New Game
    if keyed == "enter" and sel_state == 0 then
       
       System_Audio:Play_SE("accept")
       scene_new("game")
       
    end
    
    --> x , y, w, h, id_finestra, id_selezione
    Window:Draw_Selectable_Window(250,380,250,110,0,sel_state)

    
    
    
    else
    
     Scene_Load:Update()
    
    end
  
    

end

Scene_Title:Initialize() --> Necessario per Inizializzare lo script



Questo è l'editor di eventi Comuni

 

 

catturaxt.jpg

 

 

Mentre questo è l'editor degli eventi.

Che invece di utilizzare le pagine, utilizza i nodi

 

 

catturaq.JPG

 

 

Più di questo in poche parole non posso dirti.

 

Ma posso dirti che per fare tutto questo da solo ci ho messo 7 anni XD

 

Ma ringrazio anche Melosx.

Che ha imparato benissimo lo scripting di mmorpgmaker e ha realizzato numerosi script come il main menu

e scene di gioco. come questa esempio

e tutti gli altri che danno appoggio, consigli e testano tutte le mie cose XD

 

ah questo è un video della 3.0

 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Capisco quindi nel caso si usasse grafica in stile snes, ci sarebbe da fare un riposizionamento degli elementi in modo da centrarli, un po come si fa quando devi aggiungere degli elementi che non ci stanno in un chipset, e gli si deve aggiungere tramite charset.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Si esatto.

Unica pecca però.

Sarà il loading. 

 

Per il sistema che ho creato dei file proprietari binari.

per rendere la cosa più dinamica e senza limitazioni ogni frammento di tile utilizzato viene impresso nel file.

Questo per creare l'opzione di utilizzare più di un tileset per mappa.

ed appunto la funzione dei materiali.

 

La struttura è abbastanza complessa.

 

Ma visionando il file

 

binaryserialization_typefidelity.png

 

Succede più o meno questo.

 

L'immagine del tile è scritta in binario. 

quindi l'engine la deserializza e ne ricava l'immagine per poi mostrarla nella giusta posizione e nel giusto layer.

 

Molti dicono che il loading a vederlo sia carino.

o che dia l'impressione più professionale di un gioco.

 

Ebbene in mmorpgmaker lo avrete per forze maggiori XD

 

ma non problem.

Il loading durerà al max tra i 3 ad un max di 15 secondi

 

ma nelle piccole mappe (Es: casette) Nemmeno si noterà il loading

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

ah XD

Ma questo non è Rpgmaker. ma MMORpgmaker!

molto più evoluto u.u

 

Rpgmaker sfrutta la CPU perché le texture o come le chiamiamo noi le sprite.

vengono disegnate direttamente a video.

 

MMorpgmaker utilizza la GPU cosa diversa.

 

la GPU fà influenza direttamente sulla scheda video e non sulla ram o CPU del computer.

perchè ogni tile sono 2 triangoli renderizzati su in piano 3D.

altrimenti non avremmo potuto mai avere quei effetti luci e tutta questa velocità.

 

per ora sono a 20.000 e passa righe solo per l'engine lol

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ahhh a proposito, Just che ne diresti di implementare le variabili locali anche per gli eventi? Sarebbero utilissime

 

Questo è già possibile farlo tranquillo :D 

ed ovviamente non ci sono limiti o restrizioni per la quantità.

 

 

Non so se era già in programma o meno ma se possibile si potrebbe avere pure un indice negativo per le immagini in modo tale che finiscano sotto il pg?

 

In programma no.

Ma si può fare tranquillamente.

Inserisco questa feature nei Todo list.

in modo da ricordarla

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ecco cosa ho implementato stamane.

 

Ottimizzato al 90% il sistema di caricamento delle mappe binarie.

 

 

 

 

Salvataggio della prima mappa  " a "

 

 

Cattura.jpg

 

 

 

 

 

 

Creazione di una mappa "  b  "

 

 

 

 

 

 

Cattura.jpg

 

 

 

 

 

 

 

Salvataggio della mappa " b "

 

Cattura.jpg

 

 

 

 

 

 

Apertura della mappa "a" salvata prima  e presente nel progetto
 
 
Cattura.jpg

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Eh.. XD

Sembra che sia una cosa facile da fare.

 

Ma invece è una cosa che va studiata attentamente.

perché non posso rimanere in memoria una miriade di tile.

 

devo resettarli e svuotare tutta la memoria ogni qualvolta si carica una nuova mappa.

o quando si cambia il disegno di una nuova mappa.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

×