Salta ai contenuti

Moongate

Un server Ultima Online open source, nato dal piacere di programmare.

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: Offrimi un caffè

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.

Cerchi un riferimento? Consulta i file di dati, la configurazione del server, Docker o la migrazione da UOX3.

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à standalone esegue 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.

Release v0.20.1. Questi archivi includono il runtime .NET.

Note di rilascio e checksum SHA-256 ·Guida al primo avvio

Finestra del terminale
curl -fsSL https://moongate.sh/install.sh | sh

Il 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.

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.

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

Offrimi un caffè