Domanda

Ho usato per giocare un MUD basato sul Smaug Codebase . Era altamente personalizzato, ma era uguale al centro. Ho il codice sorgente per questo fango, e sono interessato a scrivere il mio (Solo per un progetto di divertimento). Ho alcune domande, però, per lo più su aspetti progettuali. Forse qualcuno può darmi una mano?

  1. Quale lingua devo usare? Interpretato o compilato? Fa la differenza? Smaug è scritto in C. Sto bene con un sacco di lingue, e non hanno alcun problema di apprendimento di più.
  2. C'è un particolare approccio devo seguire per non ostacolare le prestazioni? Object Oriented, funzionale, ecc?
  3. Cosa medio dovrei usare per memorizzare i dati? file flat (questo è quello che utilizza Smaug), o qualcosa di simile SQLite. Quali sono i pro di prestazione / contro di entrambi?
  4. Ci sono delle guide che qualcuno sa di su come iniziare un progetto come questo?

lo voglio in scala per permettere a 50 giocatori online in un momento senza alcun calo di prestazioni. Se ho usato Ruby 1.8 (molto lento), sarebbe fare la differenza rispetto all'utilizzo di Python 3.1 (più veloce), o compilato C / C ++?

Se qualcuno può dare una mano e dare alcune informazioni o consigli, sarei eternamente grato.

È stato utile?

Soluzione

Ti do questo un colpo:

  1. Nel 2009, per una partita di 50 giocatori, non importa. Si consiglia di scegliere una lingua che si ha familiarità con gli strumenti di profiling per, se si vuole crescere ulteriormente, ma visto che la memoria è così a buon mercato al giorno d'oggi, i vincoli di guida all'inizio del LPMud (che ho esperienza con) e DikuMUD (che il vostro Smaug è derivato da) non si applicano. (LPMud poteva gestire ~ 10-15 giocatori su una macchina con 8 MB di RAM)
  2. Lo stile di programmazione non deve necessariamente portare a difficoltà di performance, grandi siti come di Amazon 'webserver Óbidos sono scritti in C, ma solo-come-grandi siti come Yahoo Stores originali sono stati scritti in Lisp, StackOverflow è scritto in ASP.NET, ecc mi piacerebbe / personalmente / uso C, ma molte persone mi chiamerebbero un sadico.
  3. file flat sono una specie di inutile ai tempi di oggi e di età per un sacco di memorizzazione dei dati, ci sono casi specifici eccezioni (grandi server di posta a volte usano 'maildir' che è strutturato flat-file, ad esempio). La dimensione del tuo gioco probabilmente significa che non sia in esecuzione in enorme lentezza guidata da ritardi di recupero dei dati, ma l'integrità dei dati in-caso-di-crash sono probabilmente andando a rendere l'argomento più convincente.
  4. Non so di alcuna guida, ma quello che mi piacerebbe fare è cercare di ottenere il gioco iniziato come un server di chat muto per iniziare, assicurarsi che gli utenti possono accedere e fare qualcosa (prendere il loro ingresso e di scaricare a tutti altri utenti), quindi costruire che fino a consentire login specifici, in modo da inizieranno di fronte alla sfida di username / gestione password e impostazione delle opzioni utente / stoccaggio / recupero ... poi iniziare ad aggiungere elementi gamedriver (ottenere tic giochi tac toe lavorando in gioco), quindi andare un po 'più complesso (ottenere una configurazione di 5 locali a lavorare con gli oggetti si possono raccogliere / drop / bash l'altro con), quindi aggiungere alcuni personaggi non giocanti, e poi preoccuparsi di slurping nel Diku castelli Smaug -derived / etc e lavorare con loro. :)

Questo è un po 'a braccio, sono sicuro che ci sono pareri contrari. :) Buona fortuna!

Altri suggerimenti

Questo è un gioco basato su testo, giusto? In questo caso, con l'hardware attuale, sembra che tutto quello che avrebbe dovuto preoccuparsi di non creare accidentalmente un O (n ** 2) algoritmo. Anche questo probabilmente non sarebbe troppo male con 50 utenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top