Jump to content
Unity Insider Forum
dewa

Server Fragen

Recommended Posts

Hallo zusammen, ich habe mir vorgenommen neben meinem bisherigen Projekt noch ein kleines Webbrowser Game zu machen, es soll nur ein kleiner multigame Racer werden.

Mir ist es wichtig das ich nicht auf Dienste wie Photon etc. zurückgreife, weil ich einfach mal das richtige Networking lernen möchte.

Nun stell ich mir die Frage wie ich dies am besten umsetze. Es müssen ja nur die Koordinaten der Autos synchronisiert werden?

Einen Vserver kann man sich ja mieten, aber wie gehts dann weiter? Muss ich auf dem Server dann Spezielle Software Installieren? Bzw gibt es eine Software die das alles managed (Raumerstellung etc)??

Kennt ihr gute Bücher zu diesem Thema?

Schon mal vielen Dank :)

 

Share this post


Link to post
Share on other sites

Wenn du nicht auf Dienste wie Photon zurückgreifen möchtest, wird sich da viel Arbeit anstauen. Die Systemadministration ist ein Thema für sich...

Share this post


Link to post
Share on other sites

Grundsätzlich kannst du alles und jeden auf deinen Server schmeißen. Am Ende schickst du über TCP und/oder UDP Datenpakete vom Client zum Server und der Server antwortet dann. Das ist schon die gesamte Grundlage, die so nichtssagend ist, dass sie beliebig viele Implementationen zulässt.

Wenn du zum Beispiel alles selbst machen willst, kannst du ein Programm in einer beliebigen Sprache schreiben, das du dann auf deinen V-Server packst. Die Clients und das Serverprogramm müssen dann dasselbe Protokoll sprechen und beide Parteien müssen sich einig sein, wie dein Spiel funktioniert. Ist ein möglicher Weg, aber natürlich extrem viel Aufwand. Der Lerneffekt kann aber nett sein.

Wesentlich realistischer ist es, erst einmal mit UNet zu arbeiten. Und nein, ich meine nicht den Cloud Service, sondern die Library. Da baust du dein Spiel nur einmal in Unity, und baust für den Server einen (speziellen?) Build, den du auf deinem V-Server im Headless Mode startest. Dann hast du einfach die Serverversion des Spiels auf dem V-Server laufen. Ist natürlich auch nicht so ganz ohne, weil dein Build jede Menge unnützen Grafikkram noch mit drin hat. Außerdem kann jede Instanz dieses Builds nur jeweils ein Spiel, also nur eine Szene handlen.

Was Matchmaking und sowas angeht, ist Unitys hauseigene Lösung meines Wissens nach immer noch in Arbeit.

Mit den ganzen Third-Party-Netzwerklösungen kenne ich mich nicht wirklich aus, aber zumindest bei Photon meine ich mich zu erinnern, dass Photon zu nutzen, genau wie bei UNet, nicht heißt dass man auf Photons eigene Cloudserver angewiesen ist, sondern auch wunderbar selbst hosten kann. Sicher bin ich mir aber gerade nicht.

Share this post


Link to post
Share on other sites

Moinsen

Also ich würde vorschlagen die neue version von Darkrift auszuprobieren.

Darkrift Networking 2.0 heißt die glaub ich im asset store.

Bei der 2.0 version hast du auch kein client limit was bei der alten in der software verankert war.

Die Pro version davon kostet auch nur was und bringt halt paar fertige plugins mit sich.

Dafür ist die normale 2.0 kostenlos und halt jetzt ohne limit.

Kannstja mal an schauen.

MfG Tarantel 

 

Ps: du kannst damit einen eigenen Masterserver basteln oder halt dedicated damit andere für dich hosten.

Edited by Tarantel
Extra

Share this post


Link to post
Share on other sites

 

Am 24.4.2018 um 15:36 schrieb Sascha:

Mit den ganzen Third-Party-Netzwerklösungen kenne ich mich nicht wirklich aus, aber zumindest bei Photon meine ich mich zu erinnern, dass Photon zu nutzen, genau wie bei UNet, nicht heißt dass man auf Photons eigene Cloudserver angewiesen ist, sondern auch wunderbar selbst hosten kann. Sicher bin ich mir aber gerade nicht.

Es gibt mittlerweile sehr viele Photon Produkte und daher reagiere ich allergisch, wenn man allgemein Photon sagt ^^.

  • Photon Pun (wo alles über Cloud läuft),
  • Photon Bolt ganz anderes Paket, aber bieten auch mittlerweile Photon Cloud (Relay Service, Matchmaker) wie bei Unity , man konnte eigenen Relay hosten, den download haben die rausgenommen. Wollen ja nur Geld ^^.
  • Photon Chat,
  • Photon Voice,
  • Photon Quantum.. soll für schnelle spiele wie FPS und ja Racegames sein
  • Photon On-Premises, wo man eigentlich sehr weit unten anfängt mit halt ihrer SDK.

Alles basiert auf selben System. CCU. Ich frag mich wie Pubg überlebt hätte, wenn sie irgendwas mit Photon gemacht hätten, da ja sie täglich 200.000 - 600.000 gleichzeitige Spieler haben. Müsste ja CCU sein oder nicht?

Back to Topic
Ich hatte hier jetzt sehr viel Text. Hab aber gemerkt, dass ich zu sehr meine Meinung geäußert habe, was mich bei manchen Produkten so nervt (Preisgestaltung usw).

Es gibt folgende Dinge, die ich kenne.

  • Photon PUN,
    • Brauchst keinen VServer, da Cloud Server, fast kein autoritativer Server/Room möglich
    • 20 CCU kostenlos
  • Photon Bolt
    • Geht Dedicated / headless server,
    • Funktioniert mit allen Platformen,
    • Relay ist nun Photon Cloud. 
      • Sprich, kannst keinen eigenen mehr hosten (haben den Zeus download rausgenommen. Nur gut, dass ich das noch hab ^^).
    • gleiche Preisstrategie wie bei Photon PUN, wenn man nur Photon Cloud benutzten möchte. Ansonsten ist es kostenlos (also wie bei Unity quasi).
      • Außer du machst Geld mehr als $100.000. Dann sagen sie immer jedesmal dass gleiche "Wir müssen reden". Also wollen dann nochmal extra Geld.
  • UNet
    • Dedicated / headless möglich
    • Funktioniert zu mindest bei mir nicht immer mit Websockets, bzw Browser..
    • 20 CCU kostenlos und je nach Unity version erhöht sich das
    • HLAPI und LLAPI möglich
      • HLAPI: Du hast vieles vorbereitet, NetworkIdentity, NetworkManager, Commands, RPCs, Messages usw.
      • LLAPI: Da hast du fast gar nichts. Also fängst du weit unten an. Oder kannst aber dir sagen, ok ich nehme das hier (NetworkServer, NetworkClient).. und schreibe meinen eigenen NetworkManager. Ist dann irgendwie dazwischen, aber immer noch HLAPI Sachen dabei (wenn ich mich nicht irre).
  • DarkRift 2
    • Wenn du weiter unten anfangen willst, also nix mit componenten, sondern meist per Code, dann ist das tolles Ding. Hab etwas damit rum getestet ist super.
    • Konsoleserver, dedicated / headless
    • Kostenlos
    • Traumhaft
    • In Entwicklung, aber reif für ein Multiplayer.
  • Lidgren
    • Im Prinzip wie DarkRift 2 nur nicht für Unity gemacht, sondern Allgemein für NetworkCoding ,mit C#
      • Meine Projekte waren Voicechat, Chat, Integration to Unity. Sogar Android-Chat-App hab ich gemacht. Wirklich sehr geiles Ding.
      • Wird immer noch aktiv verbessert.
    • Konsoleserver, dedicated / headless
  • Forge Networking
    • Auch alles. Glaube Konsolenversion gibt es auch.
    • Masterserver, Relayserver(glaub ich zu mindest) verfügbar.
    • Kostenlos
    • Persönlich hatte nur Probleme damit. Konnte nicht richtig testen.

Stufen wir nochmal alles als Erfahrung ein, aber kann auch Geschmacksache sein.
Wie viel Erfahrung in der Programmierung und logisches Denken sollte man bei den Systemen haben BEZÜGLICH Racing Game.

Wobei hier mittelmäßig heißt, dass du unerfahren etwas programmieren könntest, in dem du die Doku ließt und sonst keine Hilfe brauchst.

  • Photon PUN
    • Wenig
  • Photon Bolt
    • Mittelmäßig - bis etwas mehr als mittelmäßig
  • UNet
    • Wenig - mittelmäßig
      • solange man NetworkManager benutzen tut.
  • DarkRift 2
    • mehr als mittelmäßig
      • man sollte etwas Erfahrung in der Sache haben. Ist nicht vergleichbar mit Photon, UNet, Forge.
  • Lidgren
    • Mehr als bei DarkRift 2 - sprich ist schwieriger.
      • Da es ja nicht auf Unity gerichtet ist, muss man da bissel mehr machen. Allerdings haben die da bissel für Unity Sachen vorbereitet.
    • Kannst eigene Types senden. Muss man nur coden können ^^. Weiß net, ob es bei DarkRift 2 auch geht.
  • Forge Networking
    • Konnte nicht wirklich testen, aber sah nicht schwer aus. Daher mittelmäßig.

Alles kann man natürlich lernen und musst mal anschauen was du willst.

Ligdren vorteil ist natürlich,  dass es für alles geht und es gibt schon einige (Indie) Spiele die das verwenden.
 

Die Frage was muss man "nur" machen

Einfach ist natürlich IMMER, wenn man nur position und rotation synchronisiert. Blöd wirds nur, wenn einer laggt, einer zu weit weg wohnt usw. Da merkt man, dass es nicht so einfach ist. Als nächstes, was ist mit Sound, Geschwindigkeit, Punkte, Räder, die sich drehen (zu mindest die Lenkräder)?

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...