
Moongate
Moongate è un progetto personale per riscoprire Ultima Online, esplorare idee e godersi il lavoro di costruire un server. Dopo 25 anni di programmazione, c’è ancora molto da imparare e molto che vale la pena scrivere a mano.
Le fondamenta sono C# e .NET 10, con script Lua, persistenza PostgreSQL e passaggio tra realm tramite Redis. Le librerie possono essere usate anche da sole.
Se il progetto ti piace, puoi sostenerlo:
Un progetto in evoluzione. I personaggi entrano nel mondo, camminano, si vedono, spostano oggetti e incontrano gli NPC creati da un game master; NPC e oggetti eseguono script Lua, ma i sistemi di gioco sono ancora in evoluzione. Scopri cosa funziona oggi prima di configurare un server.
Trova il tuo punto di partenza
Sezione intitolata “Trova il tuo punto di partenza”Cerchi un riferimento? Consulta i file di dati, la configurazione del server, Docker o la migrazione da UOX3.
Multi-shard fin dalla progettazione
Sezione intitolata “Multi-shard fin dalla progettazione”Una sola installazione di Moongate può eseguire più shard. Un login server autentica i giocatori ed elenca gli shard online; ogni shard è un processo game server separato, con il proprio database del mondo. I giocatori scelgono dove giocare dall’elenco dei server nel client.
- Aggiungi uno shard avviando un game server. Si annuncia tramite Redis e compare nell’elenco in pochi secondi; quando lo arresti, scompare. Fino a 128 shard possono condividere un login server.
- Un account per tutti gli shard. Gli account risiedono in un database dedicato, accessibile solo dal login server; un game server non vede mai le credenziali degli account.
- Mondi separati. Ogni shard conserva personaggi, oggetti e NPC nel proprio database PostgreSQL: uno shard di test può così affiancare quello di produzione.
- Accesso per shard. Uno shard può essere riservato ai game master o agli amministratori.
- Oppure una configurazione ridotta. La modalità
standaloneesegue il login e uno shard in un unico processo.
Esegui un login server con due shard usando Docker Compose, oppure leggi come sono separati login e gioco.
Download
Sezione intitolata “Download”Release v0.20.1. Questi archivi includono il runtime .NET.
Note di rilascio e checksum SHA-256 ·Guida al primo avvio
Installa su Linux
Sezione intitolata “Installa su Linux”curl -fsSL https://moongate.sh/install.sh | shIl programma di installazione scarica l’ultima release per Linux x64 o ARM64 in
/opt/moongate. Mantieni la directory dati del server fuori da quella directory,
perché gli aggiornamenti sostituiscono l’installazione. Segui Primo avvio
per preparare file del client, database e configurazione prima di eseguire il server.
Leggi la guida all’installazione per lo script, le opzioni di installazione, gli aggiornamenti e la rimozione.
Costruito per imparare
Sezione intitolata “Costruito per imparare”Il percorso conta quanto il risultato. Come uso l’AI spiega come aiuta nella migrazione, nei test e nella progettazione, e perché scrivere codice a mano resta parte del progetto.
Per partecipare, inizia dalla guida ai contributi. Codice, test, esempi e documentazione sono tutti modi per contribuire.
Release
Sezione intitolata “Release”L’intestazione del sito indica la versione documentata. Una pubblicazione manuale tra due release mantiene l’etichetta dell’ultima release: una pagina può quindi descrivere funzionalità non ancora incluse in quella versione. Consulta il changelog in inglese per funzionalità, correzioni e modifiche che interrompono la compatibilità.
Creato con ❤️ da Tom
