Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie funktioniert WoW (https://www.delphipraxis.net/125103-wie-funktioniert-wow.html)

Lantis87 30. Nov 2008 20:06


Wie funktioniert WoW
 
Hallo,

ich mache mir gerade Gedanken über das Onlinegame World of Warcraft.
Wie es funktioniert stell ich mir so vor:

Die "Map" befindet sich ausschließlich auf den Rechnern der User (Man muss die Software ja kaufen).
Die Nötigen Informationen (wo läuft gerade User XY und was macht er da) befinden sich auf den Servern von WoW und wird meinem PC in dem Moment zugeschickt, damit ich diesen dann bei mir im Spiel sehe?

Ist echt blöd zu erklären... Also dass nur die Handlungen oder Aktionen online sind, aber die Map an sich nicht?

Oder kann mir das mal jemand erklären?

Liebe Grüße
Yvonne

Volle 1. Dez 2008 06:43

Re: Wie funktioniert WoW
 
Hoi,

hoert sich schonmal gut an. Wenn du auf W drueckst dann sendet dein rechner an den server "ich wuerde gerne vor laufen". Dein PC 'denkt' sich ok laufen wir nach vorne. Auf deinem Bildschirm faengst du an dich nach vorne zu bewegen. Sagt jetzt aber der Server "hey ne das geht nicht weil da etwas ist" dann wirst du wieder zurueck gesetzt. Meistens ist diese Verzoegerung sehr sehr klein (~30ms denk ich mal) und du merkst davon nichts. Wird sie groesser (serverlast oder verbindungslast) dann bekomsmt du 'lag'. Die aktionen von anderen mitspielern bekommst du vom server zugeschickt und dein rechner reagiert dann dementsprechend drauf. Ob der Server ansich ne map hat oder nicht weis ich nicht. In den meisten faellen is das so, somit koennen verschiedene sachen ueberprueft werden (ob jemand versucht durch nen berg zu laufen etc). So eine kollision koennte man ja durch cheats z.b. auf clientseite ermöglichen, der server kann dann aber immernoch sagen "geht nicht".

ich hoff das hat das ganze ein wenig beantwortet ...

Relicted 1. Dez 2008 06:53

Re: Wie funktioniert WoW
 
Hallo Yvonne, willkommen in der DP!

Also im normalfall liegt auf client und server die map vor. der server hat den überblick über alle clients die verbunden sind. über gewisse parameter wird festgelegt welche "fremdspieler" positionen/aktionen etc. dir zugeschickt wird. das kann z.b. entfernung, sichtlinie usw. sein. Was Volle geschrieben hat würde ich bejaen. Hinzuzufügen ist noch das bei schlechteren verbindungen der clients meist noch das so genannte "interp" berechnet wird. also aufgrund der letzten daten die der server erhalten hat (laufrichtung z.B.) er weiterberechnet wo der charakter hinläuft. diese berechnung kann auch provoziert werden (kA obs in wow funktioniert): z.B. wenn du viele verbindungen/downloads/uploads hast wirst du merken dass es passieren kann dass du mehrere meter bei dir geradeaus läufst und der server dich aufeinmal woanders hinstellt. in anderen mmorpgs gabs mal den so genannten "lagjump": man springt, minimiert das spielfenster (alt+tab) und provoziert dadurch die berechnung des servers, denn der client hat zumindest kurzzeitig einen aussetzer - zack stehst auf nem dach wo du sonst nicht hinkommen würdest etc.

im normalfall erhälst du daten über spieler noch bevor du sie siehst. das macht gerade pvp lastige mmorpgs anfällig für "radars". dort siehst du schon spieler bevor diese wirklich bei dir im spiel auftauchen.

gruß
reli

Erkan Frey 1. Dez 2008 09:49

Re: Wie funktioniert WoW
 
Also hier hab ich deine Lösung!

http://www.wow-europe.com/de/info/ba...ngstarted.html


Alle Grundlagen und weiteres!

MFG Erkan/Manu

Relicted 1. Dez 2008 09:51

Re: Wie funktioniert WoW
 
Ohne mir den Link anzuschauen:
Ich glaube nicht dass Blizzard irgendwelche technischen Details in ein "Gettingstarted" dokument einfließen lässt.
Daher: Thema verfehlt, setzen 6 Erkan :-)

Gruß
Reli

Erkan Frey 1. Dez 2008 09:54

Re: Wie funktioniert WoW
 
Zitat:

Zitat von Relicted
Ohne mir den Link anzuschauen:
Ich glaube nicht dass Blizzard irgendwelche technischen Details in ein "Gettingstarted" dokument einfließen lässt.
Daher: Thema verfehlt, setzen 6 Erkan :-)

Gruß
Reli

Wie es funktioniert stell ich mir so vor: <--- wie es funktioniert sagte er auch!!

DeddyH 1. Dez 2008 10:01

Re: Wie funktioniert WoW
 
Da wird beschrieben, wie es gespielt wird und nicht die Technik, die dahintersteht.

Erkan Frey 1. Dez 2008 10:03

Re: Wie funktioniert WoW
 
Achso
Ja etz mh.. stimmt ist eine Sau gute frage !

Medium 1. Dez 2008 10:17

Re: Wie funktioniert WoW
 
Im wesentlichen läuft es wie von Volle beschrieben. Sowohl Server als auch Client brauchen natürlich die topologischen Daten. Was die Spielcharaktere angeht, so werden dort nicht nur Positionsinformationen, sondern gleich der Richtungsvektor an die Clients verteilt, wodurch ein Client versucht die mögliche weitere Bewegung zu schätzen wenn der Quellclient Verbindungsprobleme hat. Kollisionsabfragen finden übrigens clientseitig statt - wenn man die Server damit noch belasten würde bräuchte man ja fast schon einen eigenen Kollisionsserver ;).

Der wirklich interessante Teil ist denke ich eher, dass der Server anhand der Position des Charakters auf jedem Client für jeden einzeln entscheidet was dieser Charakter gerade überhaupt in seiner Umgebung hat, was auf ihn wirken könnte bzw. was er sehen kann. Würde man sämtliche Infos an alle Clients schicken wollen bräuchte man wohl ein Vielfaches an Bandbreite. Ähnlich läuft es entsprechend auf dem Client: Was zu weit weg ist bzw. einen gerade nicht betrifft taucht überhaupt nicht auf. Würde man die gesamte Welt im Speicher vorhalten wollen bräuchte man sicherlich ein paar zig Gigabyte RAM, und um all die damit verbundenen Berechnungen anzustellen reicht vermutlich auch kein mittelklassiger Core2Duo mehr :).

Diese Relevanzentscheidungen, und das dynamische Verarbeiten der Inhalte ist vermute ich sogar der mit aufwendigste Teil des ganzen Spiels - zumindest wenn man von der Erstentwicklung spricht. Wenn man diese Dinge nämlich von Anfang an richtig baut sollte man sich nach Hinzufügen von Inhalten nicht mehr groß darum kümmern müssen.

Volle 1. Dez 2008 13:17

Re: Wie funktioniert WoW
 
Hoi,

jop das mit der interpolation hatte ich vergessen zu erwaehnen :>
Aber bist sicher dass die gesamte Kollisionsberechnung nur clientseitig ablaeuft? Ich denke grundlegende Kollisionsabfragen werden sicherlich auch serverseitig abgearbeitet werden, sonst haette man ja im nu nen "ghost" cheat oder?
Btw ich weis nich ob sowas vielleicht gibt ^^ ich zock kein WoW bzw MMORPG aber ich denk bei shootern wird sowas sicherlich auch auf dem Server gehandhabt. Klar die Physikberechnungen laufen auf der Clientseite ab, das waere sonst zu krass aber ein "steht der spieler in nem baum?" duerfte doch relativ flott gehen.
Wobei ich eh sehr sehr bemerkenswert finde was so ein MMORPG server alles abwickeln muss.

Relicted 1. Dez 2008 13:38

Re: Wie funktioniert WoW
 
man muss auch sehen dass nen mmorpg server einiges mehr an rechenpower, bandbreite und ram zur verfügung steht als auf einem FPS server.
nen FPS server is vielleicht nen standard core2duo mit 2gb ram- darauf laufen aber locker 6-10 counterstrike server oder halt 4 große cod oder bf kisten. bei nem mmo hast du ein komplettes "high-end" server cluster für einen "realen" server.
man sieht auch recht häufig mal dass in einigen mmos mal einzelne "zonen" abstürzen. daran erkennt man dass eine gesamte spielwelt nicht nur aus einer hand voll sondern aus vielen servern zusammengesetzt ist. jeder server übernimmt quasi ein teilstück der weltkarte und führt da seine berechnungen aus. dadurch dass so viele server zusammen arbeiten kann ich mir auch sehr gut vorstellen, dass kollisionsabfragen (zumindest die "groben") auf dem server passieren. denn wenn alles auf dem client passieren würde dann wären "noclip" cheats an der tagesordnung. nicht umsonst suchen viele mmo spieler nach lücken in texturen um evtl da durch zu flutschen. wenn das nicht aufm server passieren würde dann bräuchte man auch nicht nach lücken suchen :-)

gruß
reli

JamesTKirk 1. Dez 2008 14:05

Re: Wie funktioniert WoW
 
Sers!

Ich möchte hier jetzt nicht zu was illegalem verleiten, aber zu Lernzwecken kann man sich ja mal den Quelltext von Server Emulatoren für WoW anschauen. Die sind zwar in C(++?) geschrieben, aber als Delphiprogrammierer müsste man das mit ein bisschen Mühe hinbekommen. Und funktionieren tun sie auch korrekt genug, das kann ich aus eigener Erfahrung berichten ;)

Sollte näheres Interesse bestehen, kann man sich ja per PM an mich wenden oder einfach nur Google auf den Kopf stellen :zwinker:

Gruß,
Sven

Volle 1. Dez 2008 14:28

Re: Wie funktioniert WoW
 
noclip war das wort das mir partout nichmehr einfallen wollte :P
danke :>

Relicted 1. Dez 2008 14:33

Re: Wie funktioniert WoW
 
hehe kein Ding Volle :-)

Medium 2. Dez 2008 15:36

Re: Wie funktioniert WoW
 
Prinzipiell kann man ja auch bei WoW das Clipping umgehen, aber das Problem dass sich dabei stellt nennt sich Warden. Es war auch lange mittels sog. "Walljumping" möglich "hinter" die Spielwelt zu gelangen. Auch gibt es Teleport-Tools. Alles kein Ding, so lange man damit klar kommt dass man seinen Account dann wohl die längste Zeit gehabt hat ;)

fragile 3. Dez 2008 07:01

Re: Wie funktioniert WoW
 
Ich kann nur von Enemy Territory, also der Quake-Engine sprechen, aber dort werden Kollisionsabfragen größtenteils auf dem Server berechnet. Dieser hat auch die jeweilige Spiel-Map geladen. Das "Event-Clipping", also was für den Spieler an Info relevant ist, ist sicher aufwändig, aber schon vor einigen Jahren gut gelöst worden, die Mehrzahl der Spieletitel verwenden ja eine der gegen Lizenz erhältlichen Spiele-Engines.
Den Quellcode der Enemy Territory-Engine gibts komplett als Visual Studio Projekt zum Download auf diversen Community-Seiten, vielleicht auch mal für Delphiprogrammierer interessant :).

Phoenix 3. Dez 2008 08:31

Re: Wie funktioniert WoW
 
Hatte Daniel nicht mal einen Delphi-Port von Quake am laufen? Ich kann mich da düster an ein Fun-Video erinnern...

Relicted 3. Dez 2008 08:35

Re: Wie funktioniert WoW
 
ich kann nur doom anbieten :-)

http://delphidoom.sitesled.com/

g1o2k4 3. Dez 2008 10:30

Re: Wie funktioniert WoW
 
lies dieses buch von gary mcgraw:
http://www.exploitingonlinegames.com/

das ist alles nicht so einfach. da sind jede menge programmiertechniken die da mit spielen unter anderem state machines soweit ich gehört habe.
ansonsten auch zu empfehlen:
http://www.se-radio.net/podcast/2007...cgraw-security
da wird auch angeschnitten wie die client-server-communication funktioniert.

Lantis87 4. Dez 2008 12:49

Re: Wie funktioniert WoW
 
Hallo, danke an Euch alle dass Ihr mir so viele Infos gegeben habt. Ok, eine bessere Vorstellung habe ich jetzt davon, ganz so verkehrt lag ich da ja gar nicht :wink:
Spiele WoW auch erst seid kurzem, da hat mich das dann mal interessiert.

Vielen Dank,
Liebe Grüße
Yvonne


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz