Jump to content
Rpg²S Forum

Thejuster

Utenti
  • Posts

    626
  • Joined

  • Last visited

Posts posted by Thejuster

  1. Salve ragazzi.
    Avrei bisogno di qualche consiglio o idea al merito

     

    Alla prima release ho dimenticato di aggiungere la conversione di alcuni autotile.

     

    Ora mi ritrovo a questo punto

     

    Screenshot-2023-12-16-102748.png

     

     

    Sto cercando di scrivere un bon algoritmo per convertire gli autotile da MV MZ ad XP

    ma ho dei dubbi nel prendere il pezzo centrale.

     

    Su alcuni autotile va bene, su altri no.

    Questo ad esempio è un crop a 64 x 96 px al centro del singolo Autotile.

    Conoscete un modo migliore per recuperare magari una prozione di autotile in modo da posizionarla al secondo slot di XP (vedi a destra)
    Perché con la stessa configurazione se scelgo un autotile diverso, ottengo magari qualche frammento del blocco sottostante.

     

    il crop l'ho fatto di 32x32 e sul quel autotile selezionato come nella screen sembra andare bene ma non per gli altri.

     

    Magari non sò, se prendo i quattro lati con un crop da 24 x 24 pixel?

  2. Peccato, avresti potuto farci almeno 4 euro e 79 centesimi :sisi:

     

    Scherzi a parte, bello vedere un po' di codice che c'è dietro con tanto di commento in topic e in codice.

    ^ ^

     

     

    Vedremo XD o almeno si spera dai.

    Cmq è una parte ovviamente. non è referenziato tutto il codice.

    Mancano proprio i passaggi di verifica ed altra componente.

     

    Se il progetto va male, metto tutto open senza problemi.

    La caratteristica principale del programma è proprio quella fase.

    Più di 6 cicli annidati di cui due verificano pixel per pixel tutto in un batter d'occhio.

  3. Grazie a tutti per i complimenti, ma soprattutto l'incoraggiamento, (Almeno questo tool può essere utile)

    Guardian tanto segreto diciamo no XD, ma non è un sistema rudimentale, nel senso provo a spiegare quel poco ma utile.
    Ho pensato ad una soluzione molto particolare per identificare blocchi (alto, basso)

    Tutto questo avviene alla semplice pressione del tasto Genera. in una manciata di microsecondi, accade ciò.

    abbiamo il classico ciclo

    i ∈ [0,LunghezzaLista - 1], con incrementi di k,j = TILEW, TILEH

    Su ogni elemento recuperato, esegue un ulteriore ciclo (x,y) per tutti i pixel di ogni blocco [ TileW, TileH ] presente nella lista.

    1° Verifica che esista almeno un cluster trasparente
    2° Parte un controllo da tutti i lati : { Basso-Sinistra, Centrale-Sinistra, Alto Sinistra } {Sinistra-Alto, Centrale-Alto, Destra-Alto } ecc. ecc.
    Questo per eseguire un ulteriore verifica.
    3° Da questi punti mediani, e dagli angoli, si sposta di 3 pixel Controllando sempre che esista un cluster trasparente.

    Se l'elemento soddisfa questi criteri, viene considerato come Tile di Livello Alto. Altrimenti di livello Basso.

    Mentre per i blocchi completamente trasparenti li ignora in automatico.

         TileBase *t = new TileBase;
    
         for(int y = 0; y < this->height(); y+=TILEH)
         {
            t->ground = true; //Default è basso
     
            for(int x = 0; x < this->width(); x+= TILEW)
            {
                // Recupera i colori per l'angolo in alto a sinistra del blocco
                Color topLeftColor = map.copy(x, y, 3, 3).toImage().pixelColor(0, 0);
                Color topMiddleColor = map.copy(x + TILEW / 2 - 1, y, 3, 3).toImage().pixelColor(0, 0);
                Color topRightColor = map.copy(x + TILEW - 3, y, 3, 3).toImage().pixelColor(2, 0);
     
                // Recupera i colori per l'angolo in basso a sinistra del blocco
                Color bottomLeftColor = map.copy(x, y + TILEH - 3, 3, 3).toImage().pixelColor(0, 2);
                Color bottomMiddleColor = map.copy(x + TILEW / 2 - 1, y + TILEH - 3, 3, 3).toImage().pixelColor(0, 2);
                Color bottomRightColor = map.copy(x + TILEW - 3, y + TILEH - 3, 3, 3).toImage().pixelColor(2, 2);
           //ecc.. ecc..
     
    
  4. Quindi puoi fare avanti e indietro, sono però un po' confuso sul passaggio XP <--> MV/MZ, nello screenshot non è presente, ma lo vedo scritto nella descrizione sotto.

    In effetti mi sono accorto che mancano ancora due conversioni XD

    Troppo preso nella fretta di pubblicarlo.

    Menomale che me lo hai fatto notare non ci avevo proprio pensato.

     

    infatti controllando bene, mancano ancora 2 conversioni

     

    ecco sistemata la schermata principale

     

    image.png

     

    Manca ancora XP -> MV/MZ e MV/MZ -> XP

     

    Per la selezione si, bisogna cliccare su ogni punto.

    Ma penso di rendere il disegno dei puntini come hai detto in precedenza trascinando il mouse e tenendo premuto.

     

    Ecco in pratica come funziona

     

    Piccolo video.

     

     

    Esempio - YouTube

  5. Sera ragazzi dopo un pò di tempo,

    Finalmente ho completato questo tool.

     

    Allego qualche informazione in più e varie feature in merito.

     

    Parto con le feature attuali

     

     

     

    image.png

     

    Come si evince dalla screen, si può convertire a ritroso da tool a tool

    2k3 -> XP , MV / MZ / ACE / ecc. ecc.

    XP -> 2k3 MV MZ ecc.

    MV MZ -> XP , 2k3 , ecc.

     

     

    Partendo dal tool 2k3 ad XP

    image.png

     

    Basta aprire un Chipset che in automatico il programma genera già tutto il tileset in basso, e gli autotile nella parte superiore.

     

     

    Da XP a 2k3

     

    image.png

     

    Bisogna in qualche modo comunque dire al programma questo pezzo è un Tile Superiore e questo è inferiore,

    Ma,, con un mio algoritmo molto speciale, E' in grado di rilevare dei pezzi di tiles che l'algoritmo sceglierà in base

    a diversi criteri e fattori come identificarlo se di Livello alto o Basso

    Se esempio premo su "Selezione Automatica"

     

    image.png

     

    Catturerà automaticamente dei tiles e li identifica secondo il mio algoritmo come posizionarli al meglio.

    Stessa regola per MV o MZ

     

    image.png

     

    Ecc viceversa.

     

    A breve sarà disponibile su itch.

    Appena possibile, lascio il link ufficiale.

  6. Intanto allego la prima release.

    per chi vuole provare.

     

    Non c'è bisogno di installare nulla.
    E' un applicazione portable, quindi basta estrarre l'archivio ed avviare l'eseguibile.

     

    https://www.mediafire.com/file/xiefsfh9qk3so4g/RpgmakerAC-releases.rar/file

     

    Al momento converte da 2003 ad XP e per MV / MZ

     

    Ora si passa al prossimo tool.

    Pensavo che da MV ad MZ Siccome i tiles sono il quadruplo più grandi, di ridurli almeno alla metà e vedere un pò cosa succede.

    ci lavoro un pò sopra e magari posto qualche aggiornamento.

     

    Il programma sfrutta l'accellerazione grafica DirectX / OpenGL a seconda del sistema operativo.

    Quindi perfomance altissima.

     

    Se lo provate e avete voglia ( XD ) o magari riscontrante qualche errore fatemi sapere.

    in caso di crash viene generato un log txt

  7. Per ora sta andando benone XD

     

    immagine.png

     

    Come si vede dalla screen, prende automaticamente gli autotile e li ordina in sequenza.

    Si può esportare in seguito tutto su una sola immagine, o separare autotile per file.

    ( Non ricordavo se XP ne leggeva uno alla volta, o tutti insieme. Le immagini sul web confondono.)

     

     

    immagine.png

     

     

    Come detto la qualità non viene persa o sgranata.
    anzi, potrei introdurre un filtro per sfumare i pixel e rendere un pò tipo Antialiasing.

    Ma penso vada bene così, o magari aggiungerò l'opzione.

     

     

    Risultato finale:

     

    immagine.png

     

     

    Ovviamente ho preparato già il tutto per fare al contrario.

    E' stata una faticaccia assurda trovare un metodo per non perdere i colori e fare l'immagine quantizzata a 256 colori.

    Ma alla fine tutto è andato bene :asd:

  8. Più che altro è estremamente difficile ad oggi trovare risorse gratuite per i nuovi.
    Ce ne sono ma tutte a pagamento.
    Ormai non si fà niente piu gratuitamente..
    Apparte qualcuno di vecchio stampo come me, che la pensa ancora per l'open.

    Fatto una piccola build di test, giusto per mostrare poi in seguito come verranno generati tutti i vari autotile.

    Mi sono accorto che in sostanza quello del 2003 come struttura è uguale a quello di XP

    Dove potrei recapitare dei template dettagliati? insomma tipo dove viene specificato le giuste porzioni da usare ecc. ecc.

    Nello screen sopra, è quello di MV 🤦‍♂️
    ho confuso un autotile di MV a XP ecco...

    Ma cmq penso sia questo il template esatto

    PrimoTest - YouTube

     

     

  9. Ma sono scherzi da fare su un forum come questo? XD

     

    Comode rifiniture oltre al ridimensionamento automatico.

    Pensi di estenderlo ad altri tool? Di fatto 2k3 e XP seppur valide sono versioni un po' meno utilizzate per via dell'età che hanno e il passaggio solitamente avviene verso tool nuovi.

    ^ ^

     

     

    Si l'obiettivo era quello di estenderlo per tutti i tool.

    ad esempio avere un chipset del 2003 su mz o mv esempio o viceversa.

    sempre in modo automatico o manualmente scegliendo esattamente il pezzo che si vuole convertire

  10.  

    Rpgmaker Asset Converter Itch

    Salve ragazzi.
    Anche se il titolo può ingannare, si tratta semplicemente di un programma per convertire le risorse da Tool a Tool

     

    Si tratta di un vecchio progetto che stavo realizzando tanto tempo fà.
    Visto che ho abbandonato molti progetti impegnativi che avevo in coda, nel tempo libero sto portando avanti questo.

    Essendo più libero ora, anche un po' per non perdere la mano o la memoria 🤣🤣

    E quindi, per sbizzarrirmi un pò visto che la mia passione è programmare, per tenermi in allenamento, ho deciso di riscrivere questo programma.

     

    Il progetto è Open Source, disponibile per tutte le piattaforme.

    Scritto in C++ quindi oltre ad essere gratuito, utile, sarà anche open.

     

    Traduzioni sia inglese che in italiano automaticamente a seconda della lingua del sistema operativo in uso.

     

    Una cosa che sappiamo tutti e che provando ad allungare manualmente una risorsa di rpgmaker 2000 esempio, o 2003 su xp o magari anche MV o MZ, il risultato non è dei migliori.

     

    Oltre ad essere sgranata, avremo anche degli artefatti grafici.

     

    con questo tool non si perde la qualità della risorsa.

     

    image.png

     

     

    Questo è un esempio di una selezione manuale, ma il tutto avverrà in modo automatico. Separando acqua, erba, etc.

    Non fate caso al testo tutto attaccato o errori di scrittura è semplicemente un place holder dove verrà tradotto in seguito il testo.

     

    Vi mostro anche un zoom per mostrarvi fin dove si può ingrandire senza perdere qualità

     

    image.png

     

    Alla fine, Il programma comporrà in modo automatico tutto il tileset in automatico.

    Incluso tavolozze di colori specifici per i tool.

     

    spero di non avervi annoiato.

    qui trovate la reposity

     

    MakingItalia/RpgmakerAC: Rpgmaker Asset Converter (github.com)

     

    Saluti Thejuster.

     

     

  11. Grazie per i commenti :tongue:

     

    Si potrebbe fargli fare un bel pò di cose, come ad esempio cambiare il menu, usare sprite più grandi.

    insomma un pò di tutto.

     

    ad esempio ecco come ottenere le coordinate, giusto per mostrare i progressi.

     

     

     

     

    Su questo ho faticato un pò, perché bisogna considerare che ad ogni avvio e chiusura del gioco gli indirizzi cambiano.
    Quindi bisogna trovare il puntatore che sposta in eax o qualsiasi altro registro esempio, l'offset e ne ricava uno nuovo.

    L'indirizzo è quello del puntatore a cui punta la variabile, che nel mio caso, contiene le coordinate del player.

     

    Insomma un pò ingarbugliato da spiegare, tecnicamente è che se abbiamo un indirizzo base di 0x000D2400 bisogna aggiungere un offeset esempio di 0x12 per trovare il puntatore.

     

    Unico problema è da notare che ad ogni tipo di processore gli indirizzi ai puntatori cambiano ugualmente.

    Ad esempio io uso un x64, nel caso di un sistema x86 l'indirizzo base sarebbe diverso e impossibile da calcolare.
    Servirebbe un altro progetto dedicato su quel tipo di sistema.

  12. Salve ragazzi, Non scrivo da parecchio :asd:

    Di tanto in tanto mi diverto un pò scrivendo codice.

     

    Oltre al lavoro quotidiano rimane sempre la passione anche per il Reversing.

     

    Detto ciò, con un pò di fatica e l'ausilio di analizzatori di memoria sono riuscito a tirare su un piccolo test.

    Magari non sò si potrebbe ampliare e magari sostituire la libreria di CherryTree chi lo sà hehe

     

    Per ora è solo un test, Ma in pratica volendo si può ridisegnare completamente tutto direttamente sull'eseguibile di Rpgmaker.

     

    A Differenza di Cherry che manipolava unicamente le risorse di Rpgmaker, io ho fatto una sorta di overlay o in termini più tecnici: trampolino grafico tra il mio codice e quello di Rpgmaker.

    Ovviamente e dico ovviamente scritto in C#

     

    Per chi non sà di cosa sto parlando eccovi qualche info al riguardo

     

    https://guidedhacking.com/threads/c-x64-external-trampoline-hook.16305/

     

    Ma ovviamente, ad ognuno i suoi metodi ed ovviamente "Buone Ragioni"

     

    Piccolo esempio grafico

     

    Cattura.jpg

     

    Il Cerchio più il testo ovviamente non è fatto col paint XD ma tramite il mio codice C#

    Volendo potrei aggiungere un motore di scripting e rendere più estensibile il codice e personalizzabile.

     

    Tramite poi ulteriori chiamate alla memoria del sistema, si ottengono dei puntatori che puntano a variabili che indicano lo stato del gioco, esempio se si è in un menu, in una battaglia ecc. ecc.

     

     

    Piccola Dimostrazione

     

    https://www.youtube.com/watch?v=Jn6aUjTcLU4

     

     

     

    Bhe che dire, spero possa piacere l'idea :)

    lasciate pure i vostri pareri

     

  13. Ciao freank come va? da parecchio non ci sentiamo.
    Purtroppo ho gettato la spugna, inutile buttare giu altro tempo per un lavoro che non ha nemmeno suscitato quel minimo di interesse.
    ___________________________________________________________________________________________________________________

    Intanto scrivo qui un breve tutorial su come usare MMORpgmaker su Linux. ( Non ho mac altrimenti avrei scritto una guida anche per mac )


    1) Installare Net6

    da terminale

    sudo apt-get update
    sudo apt-get install -y dotnet6
    
    


    installato il Net6, andiamo a fare un clone della reposity

    ci posizioniamo dove vogliamo e scriviamo

    git clone https://github.com/MakingItalia/MMORpgmaker
    

    1.png

     

     

    Alla fine del Cloning, entriamo nella cartella MMORpgmaker è scriviamo il comando build

    cd MMORpgmaker
    dotnet build
    

    3.png

     

     

    Partirà la compilazione del progetto.

    Una volta terminata, entriamo nella cartella del Client ed eseguiamo il comando Run

    cd Client
    dotnet run
    

    4.png

     

    Ed ecco il nostro client di gioco pronto e funzionale.

    Per avviarlo di nuovo in seguito ci basta solo entrare nella cartella client ed eseguire dotnet run

     

    Per il server, basta entrare nella cartella Server ed eseguire semplicemente dotnet run.

    e puff

     

    5.png

  14.  

     

    Posso capire lo stato di 'frustrazione', anche perché non esiste una spiegazione (e una possibile soluzione) che sia unica o valida all'indifferenza verso un determinato progetto. Sono approdato su questo forum (e sul game making) da pochissimo e, pur avendo cercato diverse soluzioni software prima di iniziare il mio progettino con RMMZ, non avevo notato il tuo Mire. L'ho scaricato e installato per curiosità (meglio tardi che mai XD) e per quello che vale vorrei dirti la mia.

     

    Si vede che è un progetto valido, ho giusto avuto una chiusura imprevista mentre smanettavo a caso e i millemila avvisi di Win$ in avvio e installazione sul fatto che sia un software non 'conosciuto' dal sistema.

    Nulla di grave, ma veniamo ai punti che credo siano importanti:

     

    1. probabilmente l'utente a cui è rivolto questo tipo di software è (come me) quello che decide di dedicarsi alla creazione del gioco bypassando la programmazione (perché vuole accelerare i tempi, o perché non ha imparato a programmare o non ha voglia di farlo), per questo punta ad un software (come RMMZ) che sia già ben collaudato da altri utenti e con strumenti di aiuto (i molti tutorial) presenti in rete. Non è un utente che vuole 'rischiare' di perdere giorni o settimane per fare un po' da beta tester di un programma che, ripeto, si presenta davvero molto bene.

     

    2. Forse non ho collaudato a fondo, corregimi se sbaglio, ma non ho trovato un una quantità di tileset o risorse grafiche che possano avvicinarsi (non dico essere uguali) a quelle presenti di default su RMMZ o RMMV e anche questo può essere un punto a sfavore per quelli che per 'fretta' desiderano la comodità di avere delle risorse grafiche già utilizzabili.

     

    Detto questo, ho analizzato Mire molto superficialmente, ripiego quasi tutto sul punto 3 appena sotto:

    3. Non esiste (o non ho trovato) un download per Linux. Probabile che un buon numero di utenti linux sarebbero stati più predisposti verso nuovi software e verso il 'collaudare' in generale, anche perché RMMZ non ha una versione Linux e far leva su un Mire nativo in deb/rpm o meglio ancora in flatpak/flathub avrebbe attirato qualcosa in più.

     

    Quanto scritto lascia comunque il tempo che trova. Ti auguro un grande in bocca al lupo per tutto ricordando (anche a me stesso) che il tempo speso per le nostre passioni non è mai tempo perso ^_^

     

    Ciao burt intanto grazie per averlo provato.

    Riguardo alla definizione su linux, si non ho rilasciato nessuna versione per linux, semplicemente perché volevo provare prima come andava su windows, visto che la maggioranza di utenti usa windows ma non per altro.

     

    A primo impatto si, può essere macchinoso o non capire come muoversi, tipo per il tileset che hai citato.

    Basta semplicemente fare tasto destro nel riquadro dei tileset, appare un menu, e caricare un tileset dal disco fisso.

    Il che sia XP, o MV, il tool adatta lo snapping grid da 32 x 32 a 48 x 48

     

    Purtroppo spiegare le potenzialità in 2 minuti è impossibile, ci vorrebbe un topic chilometrico.

     

    Ma per qualche dettaglio in più

     

    https://www.rpg2s.net/forum/index.php/topic/5725-mire-engine/?hl=mire

     

    tralasciando tutta l'evoluzione, ti consiglio di saltare alla pagina 19 XD

     

    Cmq grazie Burt anche solo per averlo provato e detto i tuoi punti di vista che sono sempre fondamentali per qualsiasi sviluppatore

    Soprattutto se sono critiche, le accetto ancora di più.

     

    Fai una prova così

    scarichi questo tileset esempio

     

    https://www.deviantart.com/mataraelfay/art/Tileset-bosque-expansion-rtp-RPG-Maker-XP-325243427

     

     

     

    Poi vai su Load Tileset e scegli il Tileset Scaricato.

     

    Cattura.jpg

     

     

    e puff

    La cosa carina e che puoi continuare a disegnare sulla mappa, senza perdere ciò che hai fatto con un tileset precedente.

     

    Altro Tips: In modalità Editor di Luci, per cambiare il colore delle luci, Tasto centrale del mouse,

    poi semplice click sull'editor per continuare a lavorare mentre tasto destro per togliere una luce

    per il resto è storia purtroppo Mire e deceduto.

  15. hahaha bhe diciamo che qualche sfizio me lo sono già fatto passare :eha:

     

     

     

     

     

    la mia bimba

     

    unknown.png

     

    unknown.png?width=322&height=572

     

     

     

     

    Riguardo a mire, come saprai diverse volte sono stato tentato di chiuderlo. Ma poi ho sempre ripensato alla fatica fatta e continuavo fino alla release ufficiale.

     

    Da li, in poi, ho messo il download libero o una donazione a supporto per il continuo del progetto.

     

    Ma ecco il risultato da agosto ad oggi.

     

    image.png

     

    Mi sarei aspettato almeno un boom di download ed avrei sorvolato sulle donazioni dopo anche la tanta pubblicità fatta ovunque.

     

    Fatto sta, che oltre a tutte le protezioni che avevo messo, mi hanno cinesato i nodi

     

    node-scan.png

     

     

    Me ne sono accorto perché sul forum di supporto un utente cinese / giapponese mi chiedeva determinate spiegazioni.
    E ho capito che c'era qualcosa di strano ma vabbe. Tralasciando anche i pochi download,
    Mi aspettavo più utenti chiedessero nuovità, qualche domanda sul tool, qualche aiuto, ma niente di niente.
    La community era sempre vuota.
    Quindi al fallire miseramente intendevo questo.

     

    Gli altri progetti si, interrotti anche quelli.

    Purtroppo non saprei. le persone evitano i miei progetti XD

    O magari troppo complicati, o che non credono nelle mie reali capacità.
    Non saprei dare una spiegazione migliore di questa.

     

     

    Bhe.. Più di creare un motore di gioco e mostrare realmente cosa sono in grado di fare proprio non capisco.

    Poi inceppo in grafici che cercano programmatori per il loro gioco, mentre io che chiedevo svariate volte un aiuto grafico mi hanno sempre rifilato un bye bye.

    In seguito ho fatto qualcosina si. Ma a questo punto esclusivamente dietro compenso.

    Visto e detto che quando chiedi aiuto le persone mi ignoravano, non potevo agire altrimenti.

     

    l'unicosa cosa che posso dare al mondo del making, con il mio contributo, e il motore di MMORpgmaker.

    almeno vedono il sorgente e capiscono la complessità, ma soprattutto la fatica che c'è dietro ad un progetto del genere

  16. Salve ragazzi, e da tempo che non scrivo, collego, o faccio altro.

    Colpa un po' della vita frenetica che mi ritrovo.
    Ormai ho una certa età e mi ritrovo a fare l'amministratore delegato di un'azienda.

     

    Ma... le passioni rimangono :tongue:

     

    Anche se ho fallito miseramente con Mire, Voglio che tutto il lavoro non vada perduto.

    Chi ha seguito in tutti questi anni tutto il mio percorso, sà che parte del motore integrante di Mire è di MMORpgmaker.

    Un progetto che nacque molti anni prima ma mai portato avanti.

    Un po' per inesperienza, un po' per abbandono dedicandomi esclusivamente a Mire.

     

    Quello che sto facendo ultimamente, e di trasportare la vecchia tecnologia obsoleta su Core.

    Chi non sà di cosa parlo, può fare una ricerca su google alla voce .NET Core

     

    Ma cosa più importante per cui lo sto facendo, non è tanto per il motore ma per il Server ed il Working Core, e del suo funzionamento.

     

    In effetti, googlando, mi sono reso conto che non ho caricato più aggiornamenti gli ultimi siti riportano ancora la primissima versione beta del programma.

     

    Anche se la reposity è ancora incompleta, pian piano appena ho tempo la sera, copio e incollo parti mancanti adattando il tutto alla tecnologia .NET Core.

     

    Da questa reposity su Github, potete avere accesso ai sorgenti e capire come funziona un motore di gioco Multipiattaforma. Ma cosa più importante, come un server gestisce le informazioni.

     

    Vi allego il link della reposity

     

    MakingItalia/MMORpgmaker: MMORpgmaker (github.com)

     

    Requisiti:

    Net 6.0 ( Core )

    MySQL ( Basta scaricare ed installare appServ - Server Web e Database MySQL )

     

     

    Ovviamente basta fare git clone

     

    1) Modificate il file nella cartella MMORpgmaker\Server\Program.cs

     

     

    Modificare le seguenti righe

    string mysql_host = "127.0.0.1";
    int mysql_host_port = 3306;
    string mysql_user = "root"; //username del MySQL
    string mysql_pass = ""; //Password del MySQL
    string mysql_db = ""; //Vostro Database
    

    2) Compilate il progetto spostandovi nella cartella principale del git ovvero in MMORpgmaker

     

    apriamo una console, e digitiamo:

     

    dotnet build -nowarn:1303

     

    Questo indipendentemente dal sistema operativo su cui siamo.

     

    3) Ci spostiamo nella cartella server (sempre da terminale) -> cd Server

    e scriviamo

     

    dotnet run

     

    Partirà la configurazione del server, scrivete tutti i campi come sopra per la configurazione

    Il programma creerà automaticamente le tabelle sul database ed i relativi dati di esempio.

    ad un certo punto il programma crasha. niente di anomalo.

     

    Andiamo in

    MMORpgmaker\Server\data\Config.txt

     

    E' apparso questo file, modifichiamolo e dentro scriviamo la configurazione manualmente

    server_ip:127.0.0.1
    server_port:6400
    mysql_ip:127.0.0.1
    mysql_db:mmorpgmaker
    mysql_user:root
    mysq_pass:vostra_password
    

    salviamo il txt, e riavviamo il server con dotnet run

     

    a questo punto il server è cofigurato ed'è pronto

     

     

    Cattura.jpg

     

     

    invece per il client, semplicemente:

     

    dotnet run

     

    o se siete in windows, aprire direttamente l'exe che abbiamo creato compilando il progetto.

     

    Immagine.png

     

     

     

     

    Per capire come funziona il server, vi basta aprire il progetto Packet ( Packet.dll )

    Che sarebbe il Core Work di tutto il server.

    Il Server è strutturato su Paccheti serializzati in bytes con un specifico Header.

     

    Cosa significa esattamente?

     

    Che ogni pacchetto scambiato Client / Server non supera una certa soglia di bytes.

    MMORpgmaker usa pacchetti che non superano i 60bytes quindi potete immaginare la potenza e la velocità di cui trasmette informazioni, ma soprattutto di quanti utenti può mantenere sfruttando piccolissime porzioni di bytes.

     

    Aprendo la libreria MMORpgmaker/PacketData.cs at master · MakingItalia/MMORpgmaker (github.com)

     

    Troviamo in fondo gli Header Packet.

    Che in pratica con un uint valore esadecimale identifica il tipo di comando che server o client impartisce in modo da interpretarlo.

     

    Esempio il client invia al server

     

    ACT_LOGIN = 0x41

     

    quindi 0x41 , il server legge prima di tutto l'header in seguito recupera gli argomenti contenuto nel body del pacchetto.

    ricava i valori, e rispedisce al client l'azione. in questo caso, un true o un false al login, equivale a 0x01 = true 0x00 false

     

    Per il resto cercherò magari in futuro di spiegare più dettagliatamente come funziona il server.

    Perché è abbastanza complesso da capire.

     

    Ma appreso il funzionamento potete usarlo tranquillamente anche per progetti su Unity esempio.

     

    Moltissimi server che trovate in giro fatti in C# inviano stringhe di dati che poi vengono interpretate.

    Ma MMORpgmaker non funziona così.

    Interpretare una stringa provoca un dispendio di risorse enorme. oltre ad un numero imprecisato ed inutile di carattere ansi che in seguito vengono ignorati.

    Questo server ha delle capacità e potenziali enormi.

    Ho studiato per tantissimo tempo il metodo perfetto per creare un server degno di rispetto.
    Difatti, molti progetti nati come MMORpg sono stati abbandonati proprio perché il server non riusciva a gestire numerose mole di dati.

    Bhe.. che potevate aspettarvi se si inviano stringe pesantissime e inutili dove ci interessa un singolo byte il resto è solo spazzatura :gne:

     

    Spero di non avervi annoiato.
    Ma se siete interessati, potete continuare ad osservarne gli sviluppi o meglio dire, il wrapping da .NET a Core

    Saluti dal vostro vecchio amico Thejuster

     

     

  17. Si esattamente, magari in seguito farò decidere all'utente se impostare una particolare tonalità di colori al postprocessor.

     

    Intanto avviso che la beta di Mire è ufficialmente disponibile.

     

     

    DOWNLOAD

    https://thejuster.itch.io/mire-engine/purchase?popup=1

     

     

     

    Ricordo a chi effettuerà donazioni avrà delle agevolazioni e più strumenti sulla versione finale.

     

    Per ulteriori info o chiarimenti questo è il tutorial Base

     

    https://www.youtube.com/watch?v=4rR66UnK-Uc

     

    C'è un unica differenza.

    In Questo video, e mostrata la vecchia versione, che bisognava compilare manualmente la mappa prima di giocarci.

    adesso la mappa viene compilata al salvataggio stesso.

     

    NB:
    I tempi di compilazione variano in base al numero di Layer utilizzati.

    con il mio sistema operativo Win 10 x64 e 6gb di ram normalmente impiega 1 sec per layer.

    Più di questo non riesco a velocizzare il mio algoritmo.

     

    Tenete presente che normalmente per generare una NormalMap occorrono svariati secondi. anche qualche minuto.

    Mentre con il mio algoritmo parliamo di secondi per Layer!

    più veloce di così non ho potuto fare XD

     

    Altra notizia,

    In caso di crash, si apre automaticamente il bug detector.
    Potete segnalare tranquillamente il bug riscontrato e se volete aiutarci ancora di più potete descrivere nel lato destro dove e come si è verificato l'errore.

     

    per altre segnalazioni invece, potete usare il forum.

     

    Saluti

  18. Ciao ragazzi porto un pò di aggiornamenti.

     

    Prima news importante e che non potevano mancare gli amatissimi switch.

     

    unknown.png

     

    Esistono switch locali e switch globali.

    Quelli locali, hanno effetto unicamente sulla scena / mappa attuale, mentre quelli globali per l'intero gioco.

     

    Altra sostanziale modifica riguarda all'editor.

    Alcuni beta mi hanno segnalato che aggiungendo più luci nelle vicinanzi si ottevena un effetto del genere

     

    unknown.png

     

    Corretto poi con la visualizzazione in stile gizom delle luci e dei vari componenti

     

    unknown.png

     

     

    In più nuovi altri moduli per gli eventi

     

    DiGPv4.png

     

    Qui un video che vede in azione l'utilizzo dei switch globali

     

    https://cdn.discordapp.com/attachments/278928749246939136/849948072582316093/bandicam_2021-06-03_11-54-57-733.mp4

     

    PS:

    Sono alla ricerca di beta tester, se qualcuno fosse interessato, può contattarmi privamente.

  19. Nono XD vi assicuro che sono effetti particellari.

     

    La neve si viene influenzata dalla spostamento della camera o del movimento dell'eroe per dare un senso di realtà.

     

    la pioggia inceve e un po statica.

    Giusto per dare l'idea della pioggia con lampi.

     

    Riguardo allo gestione, qualsiasi cosa venga azionata da script si può fare ugualmente con gli eventi.

    Perché ci sono determinate chiamate Api al motore che vengono azionate da qualsiasi tipo di linguaggio venga usato o interpretato da mire.

     

    Nel video ho fatto da script perché è molto più veloce attivare/ disattivate una condizione.

     

    Come parametri certo, si può dare intensità, o velocità di discesa di neve o pioggia.

     

    A breve sarà lanciata la prima beta.

    Sto finendo di ultimate un tutorial e sistemando alcune cose qua e là.

×
×
  • Create New...