Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

29.11.2014, 14:31

Struktur eines MMO´s

Hi,

bin neu hier im Forum also hoffe dass ich im richtigen Thread bin :S undzwar habe ich eins zwei Fragen zum Thema Multiplayer entwickeln.
Ich war bisher hauptsächlich im Bereich 3D-Modellieren beschäftigt und habe eher weniger Erfahrung im Programmieren und noch weniger in der Netzwerkprogrammierung.

Also habe ich beschlossen mich auch in dieses Gebiet etwas einzuarbeiten und wollte als Test-Projekt ein kleines MMO entwickeln.
Nun zu meinen Fragen:

1. Ich habe in Unity3D ein kleines "Spiel" mit dem networking System zusammengebastelt.
Als Masterserver habe ich den von Unity kostenlos bereitgestellten verwendet.
Bei Meiner Anwendung kann man jetzt einen Server starten und einem Server beitreten.
Läuft auch alles einwandfrei in Echtzeit ab.

Nun ist mir aufgefallen, dass es ziemlich langsam läuft. Also der Character des anderen Spielers laggt ziemlich.

Woran liegt das? Liegt das am Masterserver von Unity oder ist mein Pc in diesem Fall einfach nicht ausreichend ausgestattet als Server für ein MMO zu arbeiten oder...?


2. Was ist der Unterschied von einem Masterserver und dem Server der vom Spieler gestartet wird? Oder ist das das selbe und ich hab einfach was falsch verstanden?

3. Aus welchen Komponenten besteht die Struktur eines MMO´s?
Also Server, Client,...
Wo liegt die Datenbank? Liegen Login-, World-, Game- Server auf dem Selben Gerät?
...

4. Habe gelesen, dass Java zu langsam ist für ein MMO. Inwiefern ist es zu langsam und ab wann würde sich das spätestens bemerkbar machen?

5. Gibt es noch etwas wichtiges dass man beachten muss? :D


Weitere Fragen zu dem Thema könnten noch folgen :P

liebe Grüße

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

2

29.11.2014, 17:21

Puh ich hab nich so viel Zeit, möchte aber auch wenn die Frage aufs gleiche wie immer hinausläuft(du wirst kein MMO alleine packen, vergiss es) doch mal ein paar Antworten geben zu deinen Fragen

1) Du arbeitest wahrscheinlich mit absoluten Werten die auf dem Client berechnet werden und dann zum Server geschickt werden, der die dann weitergibt. Das ist langsam. Die meisten Serversysteme benutzen ein "Prediction System", also ein System, das auf dem Server voraussagt, wo sich Spieler X wahrscheinlich gleich befindet und das dann weitergibt. Wenn das nicht stimmt kann nachkorrigiert werden.

Mit Interpolation etc. lassen sich ziemlich flüssige Bewegungen damit gestalten, und natürlich hilft es auch wenn man denn das Ganze nicht unbedingt über den Unity Master macht.

Denn:
2) Der Unity Master Server ist "Ober-Server" an dem sich Spielserver anmelden. Das ist quasi die Lobby, zu der du dich verbindest. Und wenn ein Spieler einen neuen Server aufmacht, dann erfährt das der Master Server und gibt das an alle anderen weiter.

3) Server, Clients. :P

Wo das alles liegt kann man immer unterschiedlich machen. Gibt MMOs die kannst du auf deinem Rechner laufen lassen, inkl. Map-, Login- und Charakterserver.

4) Das mag stimmen, aber was hat das mit Unity zu tun? Unity basiert nicht auf Java.

5) Ja. Lass es sein, du wirst nur unglücklich damit. Wenn du unbedingt Multiplayer habn willst, dann mach das, aber kein MMO.
WIP Website: kevinheese.de

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

3

29.11.2014, 18:39

Also habe ich beschlossen mich auch in dieses Gebiet etwas einzuarbeiten und wollte als Test-Projekt ein kleines MMO entwickeln.

Du widersprichst dir...
http://www.gamedev.net/blog/355/entry-22…-making-an-mmo/
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

4

01.12.2014, 21:35

4. Habe gelesen, dass Java zu langsam ist für ein MMO. Inwiefern ist es zu langsam und ab wann würde sich das spätestens bemerkbar machen?
Das mag stimmen, aber was hat das mit Unity zu tun? Unity basiert nicht auf Java.
Kann sein das Java nicht Mittel der Wahl ist, aber möglich ist es. Ein sehr erfolgreiches Beispiel dafür ist das MMO RuneScape.
(Aber wie bereits gesagt wurde, Unity hat nichts mit Java zu tun und selbst mit Ahnung kaum bis gar nicht stemmbar - das wird und bleibt höchstens ein Entwickler-Spielzeug wo man man mal sachen testet oder ausprobiert...)

5

02.12.2014, 13:51

Okey danke schonmal für die Antworten :)

hoffe ihr versteht mich nicht falsch ich hab nicht vor ein neues, besseres World of Warcraft zu entwickeln :P und das Projekt das ich in Planung habe soll auch nicht unbedingt ein fertiges Spiel werden.
Ich habe auch schon in kleineren Teams an Spielen gearbeitet also kann mir schon in etwa vorstellen was für eine Arbeit dahinter steckt.

Mir soll das Projekt eher zum Lernen und Verstehen helfen.


Also wenn ich das jetzt richtig verstanden habe, verbindet sich der Spieler beim einloggen in einem Spiel mit dem Masterserver. Also müsste auf dem Masterserver auch die Datenbank der User liegen? Im Spiel kann er dann entweder einem Server beitreten oder selber als Host dienen, also einen Server starten.
Habe ich soweit alles richtig verstanden? :P

Noch eine Frage.. wo werden die Spielstände gespeichert? Also die Werte meiner Charaktereigenschaften, welche stufe bin ich, welche Items habe ich,...? Wird das auch auf dem Master in eine Datenbank gespeichert und beim einloggen abgerufen?

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

6

02.12.2014, 13:58

Genau das sind alles Fragen, die man dir pauschal nicht beantworten kann. Der Grund, warum ein MMORPG zu viel für eine einzelne Person ist, ist nichtmal wirklich die Gameplay Programmierung. Die ganzen Fragen die du hast, zeigen, dass da viel mehr hintersteckt.

Du musst dich mit Serverstrukturen auskennen, Netzwerkprogrammierung und vor allem Netzwerk Infrastruktur haben(Unity lässt keine MMOs über seine Server zu bzw. cappt bei 100 Spielern pro Spiel), dann die Gameplay Einbindung und Ressourcenverwaltung und Versionsverwaltung und Cheatkontrolle und das alles in einem System zusammen.

Ich kann dir diese Fragen nicht beantworten weil ich die Antworten nicht kenne. Du kannst das Ganze auf deinem Rechner laufen lassen und alle Spieler zu deinem Server connecten und alles auf deinem PC verwalten, du kannst aber genau so gut alles ins Netz stellen und es da verwalten. Du kannst (...)

Ein MMORPG ist nicht nur ein Spiel. Es ist ein System. Ein Mammut-Projekt. Selbst "kleine MMORPGs" wie Realm Of The Mad God sind mit einem Haufen Arbeit verbunden und haben zwei sehr erfahrenen Indie-Entwicklern viel Zeit gekostet.
Das hat also nichts damit zu tun, dass du kein WoW machen willst - auch ein kleines MMORPG braucht all diese Komponenten um zu laufen.

Was spricht denn dagegen, ein nicht-MMORPG zu machen, sondern dein Spiel als einfaches Netzwerkspiel zu gestalten? Das wird Herausforderung genug sein, ist aber wenigstens für eine einzelne Person möglich und auch mit Unity umsetzbar.

Ich möchte dich wirklich nicht runterbuttern, auch wenn es sich vielleicht so liest, aber ich möchte dir hier Wochen und Monate der Frustration sparen. Du bist nicht der erste der mit dem Gedanken spielt und wirst auch nicht der letzte sein, der kläglich daran scheitert.
WIP Website: kevinheese.de

Thoran

Alter Hase

Beiträge: 520

Wohnort: Stuttgart

Beruf: Senior Software Engineer

  • Private Nachricht senden

7

02.12.2014, 16:32

Mir soll das Projekt eher zum Lernen und Verstehen helfen.

Dann fang einfach an. Lies dir Tutorials durch wie man Client/Server-Architekturen aufsetzt. Bastel nen Chat-Server, als nächstes Bau dir ein Programm in dem man ne Figur steuern kann z.B. als 2D Sprite auf einer Karte, dann übertrage die Eigenschaften und Daten der Figur zwischen zwei Rechnern. Arbeite in kleinen Schritten auf dein Ziel hin. Nachdenken, Problem feststellen, Problemlösung erarbeiten, Problem lösen. Und irgendwann in einer weit entfernten Zukunft, wirst du dann mal ein MMO-ähnliches Spielgerüst haben. Und dann fängt der ganze Prozess wieder von vorne an mit der Erstellung von Inhalten, für die Geschichte, die Texte, Grafiken, Musik und wenn du dann noch viel, viel, viel weiter in der Zukunft, damit fertig bist, hast du ein kleines Multiplayer-Online-Spiel (beachte kein MMO), welches zu einem gewissen Grad für eine bestimmte Menge anderer Personen spielbar ist. Das schöne daran ist, das Du einen riesen Berg an Dingen gelernt hast und das ist ja dein selbsterklärtes Ziel.

Also nicht lange Fragen, fang an. Bei einzelnen spezifischen Problemen, bin ich mir sicher wirst du auch hier im Forum Hilfe finden.

Viel Erfolg. Thoran.
Mein Entwicklertagebuch
Aktuelles Projekt: Universum Espionage
Eingestellt:Spieleengine SilverCore
Organisator "Spieleentwickler Stammtisch Stuttgart"

Werbeanzeige