Jump to content
Unity Insider Forum

Steamworks und Unity


Splashy

Recommended Posts

Hallo Leute

Ich kenne mich mit Multiplayer-Spielen noch gar nicht aus, daher auch meine Frage...

Ich bin an der Konzipierung eines Spiels, das als Multiplayer auf Steam laufen soll. Ich habe auch schon einige Prototypen gebaut. Singleplayer passt vieles schon recht gut. Mir ist jedoch jetzt nicht klar, wie ich die Spieler-Objekte spawnen und bewegen kann als Multiplayer. Steamworks macht ja nur die Lobby-Verbindung. Das von unity (https://docs-multiplayer.unity3d.com/docs/tutorials/helloworld/helloworldintro/index.html) gelieferte Multiplayer-Framwork hat einen Networkmanager, wo man bequem auch die Spawing-Objekte reinhauen kann. Das geht bei Steamworks nicht so einfach... Glaube ich 😆. Ich habe auch schon die Steamworks Verbindung mit Lobby etc. parat. Auch das geht schon recht gut.

Brauche ich Steamworks lediglich um die Spieler zu "sammeln" und den Multiplayer von Unity für Spawing etc.?

Hat hier jemand Erfahrung damit und kennt vielleicht ein gutes Tutorial oder hat sogar Beispiel-Code, den ich mal anschauen könnte?

Es wäre super, wenn mir jemand hier helfen könnte! Vielen Dank im Voraus!

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 month later...

Hallo Splashy,

also Steamworks als Network-API zu verwenden habe ich noch nie gehört.

Wie kommst du zu dieser Entscheidung?

 

Ja, also ich würde PhotonPUN2 für einfache Dinge, oder Mirror für komplexere Anwendungen verwenden. Es gibt natürlich eine Vielzahl mehr.

Ich habe mein Spiel (GeneRacing) auf PUN2 mit Steamworks und migriere gerade auf Mirror, weil mir die Möglichkeiten bei PUN2 ausgegangen sind.

 

lg

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 11 Stunden schrieb Elharter:

also Steamworks als Network-API zu verwenden habe ich noch nie gehört.

Naja, wie @Splashy bereits schireb...

Am 8.10.2021 um 16:26 schrieb Splashy:

Steamworks macht ja nur die Lobby-Verbindung.

Das ist halt keine Netzwerk-API, sondern einfach nur ein Lobby-Server, wo die "eigentlichen" Server sich anmelden können, sodass man das Steam-Overlay oder z.B. das Freunde-Fenster nutzen kann, um anderen Leuten darüber beizutreten. Das ist auch alles recht offen gemacht. In Monter Hunter World bewirkt die "Join"-Option von Steam einfach nur, dass das Spiel von Steam eine Session-ID gesagt bekommt. Im Hauptmenü erscheint dann eine neue Option, dieser Session beizutreten. Mehr passiert da nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Sascha @Elharter

Das stimmt nicht ganz. Steamworks Network API kann tatsächlich Server erstellen und Kommunikation zwischen Clients austauschen. Ist sogar Open Source

https://github.com/ValveSoftware/GameNetworkingSockets
https://partner.steamgames.com/doc/features/multiplayer/networking

Mirror Community z.B. benutzen das sogar als Transport statt Mirror's interne Transport-Layer.

Da ich nur Facepunch Steamworks bissel kenne hier sieht man auch den Code:
https://github.com/Facepunch/Facepunch.Steamworks/blob/master/Facepunch.Steamworks/SteamServer.cs


Ich glaube, aber bin mir nicht sicher, dass auch Stellaris so ihre Games Hosten, denn dort steht auch als Info "SteamServer ID xyz".

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 weeks later...
Am 21.11.2021 um 14:09 schrieb Sascha:

Aber das ist doch nicht Steamworks, oder? Ich meine, dass Valve ne komplette Netzwerkbibliothek gebaut hat, ist ja klar, aber das macht sie doch nicht gleich zum Teil von Steamworks? 🤔

Steamworks ist von Valve.

Ich habe doch die Dokumentation zu Steamworks angegeben. Die Informationen die ich habe sind aus dem Steamworks Doc. Das Beispiel Spiel von Steamworks hat sogar auch ein Multiplayer, wo du das testen kannst.

https://partner.steamgames.com/doc/sdk/api/example

Zitat

Netzwerk-API: Wenn Sie ein Onlinespiel erstellen, empfiehlt sich die Nutzung einer integrierten Netzwerk-APIs von Steam. Sie finden Beispiele für deren serverseitige Verwendung in Spielservern über ISteamNetworking -API-Aufrufe mit dem SteamGameServerNetworking()-Akzessor und Rückrufe in SpaceWarServer.cpp.

Sehe nicht, dass ich was übersehe, dass es vllt doch nicht dazu gehören könnte oder gar nicht sowas existiert, hehe.

Beim Facepunch war das sogar der falsche Link. Muss man unter SteamNetworking, SteamNetworkingSockets schauen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 47 Minuten schrieb MaZy:

Steamworks ist von Valve.

Ja ach ne, das ist mir schon klar.

vor 47 Minuten schrieb MaZy:

Ich habe doch die Dokumentation zu Steamworks angegeben.

Ich hatte mir die ersten zwei Seiten angesehen und da nirgendwo nirgendwo den Begriff "Steamworks" gesehen. Nicht alles, was Valve macht, ist automatisch Steamworks. Sonst könntest du auch sagen dass SteamOS in Steamworks enthalten ist, weil's auch von Valve ist.

Jetzt hab ich nochmal in den Facepunch-Code reingeschaut und da sieht es schon eher danach aus. Außerdem ist hier gaaanz unten kurz "Spieleserver" gelistet. Scheint also doch irgendwie mit drin zu sein.

Es geht mir hier aber gar nicht darum, auf Krampf klugzuscheißen, auch wenn das vielleicht so aussieht. Meine ursprünglichen Annahme war, dass Steamworks keine Multiplayer-Bibliothek, sondern eben nur Master Server und sowas bereit stellt. Und auf derselben Annahme hatte @Splashy initiale Entscheidungen getroffen. Darum meine Antwort @Elharter, damit hier nicht erstmal ellenlang aneinander vorbei geredet wird.

Da @Splashy aber sowieso nicht mehr antwortet, was soll's. Wieder was gelernt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Sascha

Ich dachte erst du hast geschrieben, dass es nicht von Steamworks sei. Mir ging auch nicht um Klugscheißen oder sonst was, aber dennoch war ich nur verwirrt, warum du meintest, dass es nicht dazu gehören muss.

Ich habe nur darauf hinweisen wollen, so wie ich das kenne, dass Steamworks sowas anbietet und hab dazu die Links angegeben wo man unteranderem ISteamNetworkingSockets sieht. Das ist auf jeden Fall unter Steamworks-API-Referenz zu finden.

Also Steamworks ist für mich dennoch sehr verwirrt. Da gibt es sehr viele verschiedene Arten. Manchmal blick ich nicht durch, ob es nun Spielserver in Sinne von Liste gemeint ist, oder tatsächlich ein Spielserver.

Hier wird das etwas erklärt: https://partner.steamgames.com/doc/features/multiplayer

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 months later...

Hallo Leute

Ich habe das Ganze mal durchgespielt und es funktioniert relativ einfach wenn Du Unity und Steam als Ziel hast:

1.) Als erstes Mirror über den Package Manager in Unity laden
2.) Dann Fizzy Steamworks 4.4.1 als Unity Package importieren: Die Version 5.0.1 hat noch Fehler!

Somit hast Du alle Komponenten für ein Multiplayer Game mit Unity und Steam.

Greez Splashy

PS: Sorry dass ich erst jetzt Antworte! Hab keine Benachrichtigung erhalten... Hab jetzt grad meine Einstellungen angepasst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...