MUD Programmierfragen

8

Früher habe ich ein MUD basierend auf der Smaug Codebase gespielt. Es war sehr individuell, aber im Kern das Gleiche. Ich habe den Quellcode für dieses MUD und bin daran interessiert, mein eigenes zu schreiben (nur für ein lustiges Projekt). Ich habe allerdings einige Fragen, hauptsächlich zu Designaspekten. Vielleicht kann mir jemand helfen?

  1. Welche Sprache soll ich verwenden? Interpretiert oder kompiliert? Macht es einen Unterschied? SMAUG ist in C geschrieben. Ich bin mit vielen Sprachen vertraut und habe kein Problem mehr zu lernen.
  2. Gibt es einen bestimmten Ansatz, dem ich folgen sollte, um die Leistung nicht zu beeinträchtigen? Objektorientiert, funktional usw.?
  3. Welches Medium sollte ich zum Speichern von Daten verwenden? Flat Files (das verwendet SMAUG) oder etwas wie SQLite. Was sind die Vor- und Nachteile beider Funktionen?
  4. Gibt es irgendwelche Anleitungen, über die jemand Bescheid weiß, wie man mit einem solchen Projekt beginnt?

Ich möchte es so skalieren, dass 50 Spieler gleichzeitig online spielen können, ohne dass die Leistung sinkt. Wenn ich Ruby 1.8 (sehr langsam) verwenden würde, würde es einen Unterschied im Vergleich zur Verwendung von Python 3.1 (schneller) oder kompiliertem C / C ++ machen?

Wenn jemand eine Hand geben und Informationen oder Ratschläge geben kann, wäre ich ewig dankbar.

    
Mike Trpcic 04.12.2009, 20:12
quelle

2 Antworten

11

Ich gebe das eine Chance:

  1. Im Jahr 2009 spielt es für ein Spiel mit 50 Spielern keine Rolle. Vielleicht möchten Sie sich eine Sprache aussuchen, mit der Sie vertraut sind, wenn Sie es weiter ausbauen wollen, aber weil RAM heutzutage so billig ist, die Einschränkungen, die das frühe LPMUD (mit dem ich Erfahrung habe) und DikuMUD (welches Ihr Smaug stammt von) nicht anwenden. (LPMUD könnte ~ 10-15 Spieler auf einem Rechner mit 8MB RAM verarbeiten)
  2. Der Programmierstil führt nicht unbedingt zu Leistungsschwierigkeiten, große Seiten wie Amazon 'obidos' Webserver sind in C geschrieben, aber genauso große Seiten wie die ursprünglichen Yahoo Stores wurden in Lisp geschrieben, StackOverflow ist in ASP.NET geschrieben usw. Ich würde / persönlich / C benutzen, aber viele Leute würden mich einen Sadisten nennen.
  3. Flache Dateien sind im heutigen Zeitalter für viele Datenspeicher sinnlos, es gibt Ausnahmen für bestimmte Fälle (große Mailserver verwenden manchmal 'maildir', das zum Beispiel flache Dateien ist). Die Größe Ihres Spiels bedeutet wahrscheinlich, dass Sie nicht in eine enorme Langsamkeit geraten werden, die durch Verzögerungen beim Datenabruf verursacht wird, aber die Datenintegrität im Falle eines Absturzes wird wahrscheinlich das überzeugendste Argument sein.
  4. Ich kenne keine Anleitung, aber was ich tun würde, ist zu versuchen, das Spiel als dummen Chat-Server zu starten, sicherzustellen, dass sich die Benutzer einloggen und etwas tun können (nehmen Sie ihre Eingaben und speichern Sie sie für alle) andere Benutzer), dann bauen Sie das auf, um spezifische Logins zu erlauben, also fangen Sie an, die Herausforderung der Benutzer- / Kennwortbehandlung und der Benutzeroptionseinstellung / -speicherung / -retrieval zu konfrontieren ... dann fangen Sie an, die gamedriver Elemente hinzuzufügen (erhalten Sie Tic Tac Toe Spiele im Spiel zu arbeiten), dann ein wenig komplizierter (erstelle ein 5-Raum-Setup, das mit Objekten arbeitet, die du mit anderen aufnehmen / ablegen kannst), dann füge einige Nicht-Spieler-Charaktere hinzu und DANN sorge dafür, dass du im Diku schlürfen kannst -Erlebte Smaug Burgen / etc und arbeiten mit ihnen. :)

Das ist ein bisschen aus dem Ruder, ich bin sicher, dass es abweichende Meinungen gibt. :) Viel Glück!

    
Jon Bailey 19.09.2012, 03:41
quelle
1

Das ist ein textbasiertes Spiel, oder? In diesem Fall scheint es bei aktueller Hardware alles zu geben, worüber man sich sorgen müsste, wenn man nicht versehentlich einen O (n ** 2) -Algorithmus erstellt. Selbst das wäre mit 50 Benutzern wahrscheinlich nicht so schlecht.

    
Dan Hook 04.12.2009 21:16
quelle

Tags und Links