Zoneserver, Quellcode?
Übersicht

Tomarr SovaiBetreff: Zoneserver, Quellcode? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo zusammen.
Ich bin gerade dabei ein Multiplayerspiel zu schreiben. BlitzBasic unterstützt das ja schon ganz gut. Das Problem das ich damit habe ist das ich gerne nahezu endlos viele Spieler miteinander spielen lassen möchte. Ein weiteres Problem ist dass wenn der Hauptserver ausfällt ein anderer Spieler automatisch den Server macht. Auch das darf bei dem Spiel nicht passieren. Es darf wirklich nur auf dem Server spielbar sein. Nun habe ich diverse Engines gefunden die einen Zonenserver bieten. Das würde genau das zur Verfügung stellen was ich brauche. Dumm dabei ist nur das ich beim Gugeln weder Tutorials, noch Sourcecodes gefunden habe zu dem Thema. Vielleicht hat ja jemand von euch Ahnung wie ich sowas umsetzen kann. Danke schonmal im voraus. |
||
![]() |
theBlade |
![]() Antworten mit Zitat ![]() |
---|---|---|
hau doch ne abfrage rein: wenn der hauptserver raus ist ( = 0 ) dann werden alle clients beendet.
es wird a ne msg ausgegeben wenn man server wird (halt n bit oder so, ka). sobald der ankommt wird das game beendet. also hab nicht wirklich ahnung von NetCode (noch nicht), aber das sollte machbar sein ^^ |
||
"Ich bin wie ich bin. Die einen kennen mich, die anderen können mich." (Dr. Konrad Adenauer)
UTFSB -> (use the fuckin "suchen"-button) User posted image <- link -.- |
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Tomarr Sovai:
Tipp: Nehme möglichst schnell Abstand von DirectPlay und nutze UDP respektive TCP um deinen Multiplayer-Teil zu coden! DirectPlay ist für anfängliche versuche ganz nett, da alles sehr schnell "da" ist, aber für einen echten Multiplayer-Teil eines Spiels ist es absolut sinnlos. Und wenn du dann erstmal direkt eines der beiden unterstützen Protokolle verwendest wirst du schnell feststellen, dass deine Probleme nicht wirklich welche sind ![]() Wobei die "unendlich viele Spieler" Geschichte irgendwann immer an der Bandbreite scheitern wird ![]() walski |
||
buh! |
Tomarr Sovai |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Schon klar das es Bandbreitenbegrenzt ist. Nur wenn ich das mit den Zoneservern richtig verstanden habe teilen sich mehrere Zonen jeweils 4 Spieler, oder 8? Spieler in der Verwaltung dieser. Was zumindest einen Pluspunkt in der Verarbeitung derer Aktionen bringen soll.
Ich habe aber noch nicht so richtig den Plan wie ich das umsetzen soll. Ist das jetzt Gebietsbezogen auf der Map, das die in Zonen unterteilt wird, oder ist das ganze einfach so das jeweils eine Gruppe von Spielern, egal wo diese sich aufhalten, bezogen? Deswegen habe ich ja gehofft das sich jemand schonmal damit beschäftigt hat. Und immehin ist es für mich eh schwierig, da es ein permanent Game ist. Also egal ob man eingeloggt ist oder nicht, das Spiel geht weiter. Somit habe ich schon eine riesige Datenbank zu verwalten in der sämtliche zustände des Spielers verwaltet werden... Also was für Gegenstände besitzt er, und wo hat er diese gelagert und in welchem Zustand sind diese Gegenstände... Da muss ich dann doch schonmal versuchen bewährte Techniken in das Spiel einzubringen die Zeit sparen. Der Server ist eh schon fast nurnoch damit beschäftigt die Datenbank aktuell zu halten. Da kann ich es mir kaum leisten grossartig eine langsame Netzwerkgeschichte zu programmieren. Deswegen halt das interesse am Zoneserver. |
||
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Da kann ich es mir kaum leisten grossartig eine langsame Netzwerkgeschichte zu programmieren. Und genau deshalb solltest du Abstand von DirectPlay nehmen! Diese Zonen Sache macht ja nur Sinn, wenn du auch mehrere physische Server hast! Also es bringt ja nichts wenn ein Server 100 Player in 10 Grupen zu 10 Playern verwaltet! Aber es macht sinn, wenn 10 Server jeweils 10 Player verwalten und über einen "Main Server" miteinander kommunizieren. Nur ich glaube fast mal, dass du dazu nicht die Mittel hast. walski |
||
buh! |
Tomarr Sovai |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Aber so funktioniert es komischerweise nicht. Wer sollte das denn auch bezahlen? Weisst du was ein ded. Server im Netz kostet? Das bekommst du mit 10 Spieler pro nie auf die Reihe.
Und das ich dazu DirectPlay nicht nutzen kann ist schon klar. Ich weiss auch das Ultima Online z.B. ein Zoneserver ist. Doch du hast nur einen PC als Server und startest das Serverprogramm auch nur einmal. Genauso habe ich schon diverse 3D Online Rollenspiele/Shooter usw. gesehen wo das genauso war. Also muss das Geheimnis woanders liegen. |
||
![]() |
DCSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmmm? Hmm.. so könnte man sowas z.b. optimieren:
Jeder Client/Spieler sendet alle paar ms seine Position (wenn sie sich denn ändert) an den Server - der Server guckt, welche Spieler in Sichtweite dieses Spielers sind und sendet nur an diese die neue Position. Resultat: Server muss weniger senden, Clients müssen weniger empfangen. Oder meintest du jetzt was ganz anderes (habe nicht alles gelesen und weiss auch nicht so genau was du mit Zonenserver meinst..)? |
||
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com | www.CarnageContest.com | www.Stranded3.com |
Tomarr Sovai |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Währe vielleicht ein guter Ansatz. Gibt es für sowas Beispiele die ich mir mal ansehen kann? | ||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein einzelner dedizierter Linux server kann sicher mehr als 10 Spieler verwalten. Ich denke so 3000 dürften gehen. Kommt halt drauf an wie optimiert der Code ist, das wirklich fast nix hin und her gesendet wird, nur das nötigste. Entscheidend ist natürlich auch die Internetanbindung, aber bei gemieteten Linux Servern mit vollem zugriff ist die ja meistens nicht schlecht.
Vielleicht kennt jemand von euch Eve Online MMOG. Da haben sie das ganze Spiel in eine Welt gefasst. Da es locker vorkommt das mehr als 3000 spieler da sind, weil es ja nur 1 Welt ist, haben sie das ganze auf mehrere Server verteilt. Hingegen bei anderen MMOG's haben sie mehrere Identische Welten gemacht und pro Welt halt nur 3000 bis 4000 spieler. Wie das ganze genau aufgebaut ist weiss ich auch nicht, aber ich denke das halt eine bestimmte Anzahl Clients pro Server verwaltet werden, oder eben mit Zonen in der Map. Jeder Server eine eigene Map Zone. Wobei ich denke das dies ein Nachteil ist, was wenn 5000 spieler in die selbe Zone gehen? Da ist die Lösung mit Anzahl Clients sicher besser. Bei Servern mit Standard Internetanbindung (sprich normale PC's), ist das natürlich schon anders. Mit 3000 spielern würde das wohl nie klappen. Also heisst das das selbe Prinzip wie bei den grossen spielen nachmachen. Pro Server zum Beispiel 10 Spieler, wobei ein Server der Master Server ist der mit den Sub Servern kommuniziert. Z.Bsp: -Master Server empfängt vom Client eine Login Anfrage. -Master Server schaut auf welchem Sub Server noch Spieler Platz haben, indem er eine Message an diesen schickt und der Sub Server Ergebnis zurück schickt. -Sub Server hat noch freie Plätze, somit sendet dieser eine Login accepted Message an den Client. -Client speichert IP und Port des Sub Servers und kommuniziert ab da an nur noch mit diesem. -Jeder Sub Server hat zugriff zu einer globalen Datenbank. -Jeder Sub Server kann 10 Spieler verwalten. -Sub Server regeln den ganzen Spielablauf. -Master Server dient sozusagen nur als LoginServer und evtl. zur Kommunikation unter den Sub Servern. Ist nur so nen Denk anstoss ![]() Falls ich mist geschrieben habe ignorieren *g* |
||
Tomarr Sovai |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ist ja alles schön und gut, aber wie gesagt, wenn es irgendwann mal soweit ist werde ich auch nenServer mieten. Nur kann man mit Blitz und Linux nichts zusammen anfangen. Fällt also schonmal weg. 10 dedikaded Server ins Netz stellen, schöner Gedanke, doch leider muss ich mein Geld mit Arbeit verdienen.
Ich denke mal ich fange erstmal an die ganzen TCP-Routinen zu schreiben die ich brauche. Dann werde ich mal einen Gedankenanstoss nach dem anderen von euch durchtesten was machbar ist. |
||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gibt auch Windows Server, aber die sind meist teurer ![]() Naja die einzige möglichkeit mit Linux wäre den Server in ner anderen Sprache zu proggen. Aber per UDP oder TCP könnte er dann sehr wohl mit Blitz kommunizieren. Klar kann nicht jeder C++ oder so, ich ja selber auch nur bisschen Grundlagen und ich könnte selber nie nen Linux Server für mein Spiel proggen. Aber dann gibts keine Andere Möglichkeit als Windows dedicated Server, und wenn man so einen hat würde einer auch reichen, da braucht es nicht 10. Oder die andere Möglichkeit ist halt ohne ded. Server. Mit Desktop PC's, nur ich denke da hat auch niemand 10 PC's bei sich rumstehen. Und auch wenn man 10 Sub Server (bzw.Zoneserver) macht ist trotzdem irgendwann Schluss, weil der Master Server ja auch nur ne gewisse Bandbreite hat und deshalb nur 10 Subserver unterhalten kann oder so. PS: Ich muss mein Geld auch mit Arbeiten verdienen *g*. Aber so nen Linux Server zum Beispiel ist gar nicht mal so teuer, wenn man bedenkt was man damit alles anstellen könnte. Ich hab auch einen gemietet. 45 € pro Monat. 75GB Traffic pro Monat, 40GB Festplatte, über 1GB Ram, und Prozessor weiss ich auch nicht mehr genau, aber reicht jedenfalls ![]() Werbung hab ich rausgenommen, wenn es dich interessiert von wo, dann schreib PN. PPS: Nehmen wir an du machst deinen PC zum Master Server, bei jedem Kollegen steht 1 Sub Server. Alle Sub Server müssen auch mit dem Master Server kommunizieren. Master Server hat aber auch begrenzte Bandbreite. Das heisst auf diese Weise würdest du es auf 10 SubServer und je 10 Spieler pro Subserver bringen. Mehr SubServer könnte der MasterServer nicht verkraften wegen der Bandbreite. Das heisst maximum 100 Spieler ca. ![]() Mit anderen Worten.. wenn du was grosses machen willst bist du wohl gezwungen einen ded. Server zu haben mit hoher Internetanbindung. walski hat Folgendes geschrieben: Nur ich glaube fast mal, dass du dazu nicht die Mittel hast.
Da hat er wohl recht, keine Privatperson hat die Mittel für sowas... leider, sonst hätt ich auch schon an sowas gedacht, *seufz* |
||
Tomarr Sovai |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das mit den Mitteln ist es halt was bei so einer Programmiergeschichte stört. Auch wenn mein Programm aufwendig ist, will ich es doch kostenlos zur Verfügung stellen. Lediglich 5 Euro pro Monat/Spieler für die Serverkosten.
Naja, in 10 Jahren, also wenn ich mit dem Spiel in die Alphaversion eintrete ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group