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

Schwarzefee

Treue Seele

  • »Schwarzefee« ist der Autor dieses Themas

Beiträge: 155

Wohnort: Ost-Sachsen

Beruf: Programmierer

  • Private Nachricht senden

1

25.02.2019, 17:08

Unity - Dedicated Server

Hi,

ich möchte ein kleines 3D Multiplayer Spiel in Unity erstellen, was mit deinem dedicated Server arbeiten.

Ich hab mir einige Guides angesehn, allerdings hab ich eine Sache noch nicht verstanden.
Eigentlich habe ich gedacht, dass der Server doch die Daten der Clients immer gegenprüfen muss. Wenn der Client zB eine Positions-Angabe schickt, muss der Server prüfen ob der Spieler da überhaupt sein darf. Sonst konnte doch jemand einfach falsche Positionsangaben verschicken und sich so durch Wände teleportieren oder ähnliches. Dazu muss der Server ja dann auch die Unity-Map kennen. Dazu hab ich bisher noch keine Informationen gefunden.

Wie wird sowas in der Praxis umgesetzt?


Gruß 

Tris

Treue Seele

Beiträge: 102

Wohnort: ~Stuttgart

  • Private Nachricht senden

2

25.02.2019, 21:24

Das würde mich auch interessieren, wobei ich eher denke, dass in der Map irgendwelche TriggerVolumes sind die erkennen wenn ein Spieler aus der Karte abhauen möchte und der Server nur die Positionsdaten der Spieler an die anderen Spieler schickt.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

3

25.02.2019, 22:08

Normalerweise sollte die Spiellogik auf dem Server ablaufen. Dafür muss dieser natürlich auch die Welt kennen. Wie die Welt für den Server aussieht kannst du am Ende natürlich selbst festlegen. Das hängt start vom Spiel ab.
Am besten guckt ihr euch mal ein Tutorial zu dem Thema an. Unter "unity network tutorial" ist einiges zu finde. Ansonsten ist es sicherlich nicht schlecht wenn ihr euch auch unabhängig von Unity mit dem Thema auseinander setzt. Es gab hier mal ein paar Links zu Multiplayer in Quake und in der Sourceengine. Ich kann die grad nicht finden. Vielleicht hat die ja noch jemand.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

25.02.2019, 22:26

Bei Unity und Netzwerk ist es momentan ein bisschen chaotisch, habe ich den Eindruck. Die alte API ist als "obsolete" markiert und wird bald entfernt, und die neue ist noch im Anfangsstadium ...

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

5

25.02.2019, 22:57

Der einfachste Weg das umzusetzen ist wohl Photon(ein kostenloses Asset). Dort ist der Ersteller des Raumes zuständig für die Verifizierung der Daten.
Der Server dient dann nur dazu die Daten zu übertragen. Das hat eine größere Verzögerung zufolge, ist aber wesentlich einfacher zu implementieren.
"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?

Schwarzefee

Treue Seele

  • »Schwarzefee« ist der Autor dieses Themas

Beiträge: 155

Wohnort: Ost-Sachsen

Beruf: Programmierer

  • Private Nachricht senden

6

26.02.2019, 15:58

Hi,

könnte man nicht einfach ein 2. Unity-Projekt erstellen, was im Prinzip wie ein Server fungiert, die Maps etc. als Prefabs vom Client-Projekt importiert hat, und sich so um die ganze Spiel-Logik kümmert?


Gruß

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

7

26.02.2019, 16:55


Hi,

könnte man nicht einfach ein 2. Unity-Projekt erstellen, was im Prinzip wie ein Server fungiert, die Maps etc. als Prefabs vom Client-Projekt importiert hat, und sich so um die ganze Spiel-Logik kümmert?


Gruß

Klar ginge das. An sich kannst du das auch alles in ein Projekt stopfen und den Anwender am Anfang auswählen lassen ob er nun als Server oder Client starten möchte. Dann wechselst du in die passende Szene und fertig. Dann musst du dich nicht um zwei Projekte kümmern. An sich kannst du den Server auch direkt als Client mit fungieren lassen. Dann hat man die Serveranwendung nicht nur im Hintergrund laufen sondern kann direkt mit spielen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Schwarzefee

Treue Seele

  • »Schwarzefee« ist der Autor dieses Themas

Beiträge: 155

Wohnort: Ost-Sachsen

Beruf: Programmierer

  • Private Nachricht senden

8

26.02.2019, 17:03

Hi,

danke für die Antwort.

Wie händle ich dann verschiedene Scenes? In meinem Projekt gibt es verschiedene Zonen, wo die Spieler sich bewegen kann.

Ich schau mir aktuell einen Guide auf Youtube an:
Unity Tutorial MMORPG

Kennt den jemand und kann mir sagen, ob der Guide (fachlich) gut ist?
Ich möchte kein MMO machen, aber so in die Richtung sollte es schon gehn (Eher in Richtung Minecraft).


Gruß

Schwarzefee

Treue Seele

  • »Schwarzefee« ist der Autor dieses Themas

Beiträge: 155

Wohnort: Ost-Sachsen

Beruf: Programmierer

  • Private Nachricht senden

9

27.02.2019, 19:20

Hat keiner ne Idee wie ich verschiedene Scenes handle?

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

10

27.02.2019, 21:50

Was heißt für dich verschiedene Szenen handlen? Wie du in Unity verschiedene Szenen haben kannst? Das hat ja nichts mit Multiplayer zutun. An sich sollte da alles in der Doku von Unity stehen was du wissen musst. Gibt es ein konkretes Problem?
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige