Jump to content
Unity Insider Forum

Webplayer, Stand Alone Server.


Slayer

Recommended Posts

Hallo zusammen.

 

Ich habe eine Frage wo ich bislang durch Tests und viel nachlesen nicht weiter gekommen bin. Vielleicht übersehe ich ja was, oder es ist einfach nicht möglich, oder einen anderen Ansatz :) Ich will den Aufwand möglichst gring halten um das Problem zu lösen.

 

Ich habe ein Webplayer Browsergame. Mit anbindung an eine mysql Datenbank.

(All das ist kein Problem)

 

Jetzt können die Spieler ein Match erstellen und anderen Matches beitreten. (Auch das ist kein Problem)

 

Doch jetzt kommt das Problem. Erstmal möchte ich zu dem Kampf sagen das die Spieler und Zuschauer und wer weiß wer noch alles nichts machen können ausser mit einer Camera in der neuen Match Szene herrumzufliegen. Sie können mit nichts Interagieren oder sonst was. Sie sollen nur sich in der Scene Frei bewegen können und alles sehen können was dort passiert. Dabei müssen sie nicht mal die anderen Spieler sehen. (Auch das ist kein Problem)

 

Im endefekt sind in der scene dann zb 2 NPCs. Einer von Team A und der andere Team B. Die Werte der NPCs und Eigenschaften sollen alle aus der Datenbank direkt geholt werden. (Auch der ablauf ist kein Problem. NPCs bekommen die richtigen werte aus der Datenbank und tun was sie sollen)

 

Das Problem ist nun nur. Die Spieler sehen nicht was passiert. Ihnen wird nichts gezeigt. Ihnen werden blos bekannte Serverdaten gezeigt. Die NPCs sind jetzt nicht alle für Multiplayer Programmiert weil ich das auch garnicht möchte vom Aufwand her. Ich hatte gehofft oder versucht sozusagen das ganze zu Streamen. Die Kameras sind ja Serverelemente und sollen einfach alles Zeigen von der Scene und was darin passiert weil der Spieler ja auf den Server verbunden haben.

 

So wahr mein gedanke. Es sollte möglichst klein gehalten werden und eigentlich blos den Kampf zeigen. Wenn das Wörtchen blos nicht währe^^

Ich habe leider keine Idee mehr. Ich habe es eben dann mit einem Stand Alone Server versucht der dann vielleicht auf meinem Webserver diese Kämpfe Handeln kann. Dennoch muss es ja auch im Webplayer bei den Spielern angezeigt werden.

 

Vielleicht ist es doch nötig die komplette KI Multiplayerfähich zu machen und alles auch über die UNet schnitstelle an die Webplayer clients zu schicken...

 

Was meint Ihr? Ich hoffe ich konnte erklären was ich meine. :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe mir jetzt noch nicht alles genau angeschaut. Bis jetzt hatten meine weiteren versuche noch nicht gefruchtet :(

 

Ich habe zb jetzt bei allen NPCs und ihren Objekten folgendes hinzugefügt: Network Identity, Network Transform und den Network Animator.

Jetzt habe ich zumindest bissl etwas angezeigt bekommen. Offt aber sehr unterschiedlich. Meist sind beim Client die Objekte des NPCs irgendwo umhergeflogen^^ Auch wurde zum teil das eine Objekt aus dem Unterobjekt herrausgenommen.

 

Auch ist die Bewegung sehr ruckelig gewesen bei den Client. Aber die NPCs liefen durch Wände und alles mögliche. Hab denen aber auch eine id und transform gegeben. Sehr komisch.

 

Andere Frage diesbezüglich. Bei meinem Tests habe ich nun immer den Server Kopiert und als Client gestartet. Da er immer alle Objekte und alles drum und tran benötigte um überhaubt was darzustellen. Das ja wenig sinvoll bei einem Stream. Ich will eigendlich nicht im Webbrowser alles mitgeben müssen wie Level usw usw. Lässt sich das denn vermeiden? Ansonsten macht es garkeinen sinn da weiter zu machen wo ich hinnaus möchte^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 months later...

Hi!

 

Verstehe ich das richtig, du möchtest die NPC's allen anderen zeigen ?

Wenn du das so meinst solltest du dir überlegen ob du nicht einen Serverbuild baust. Du kannst auch deinem Spiel auch einen Code verpassen der einfach überprüft ob er in Headlessmode ist oder nicht. Das heißt also du machst eine Funktion die prüft ob du in Headlessmode bist oder nicht. Wenn ja -> Wird Servercode ausgeführt und es bietet sich ein Server an. Die Spieler können dann beitreten.

So nun sollte der Server alle Berechnungen für NPC's ausführen. Das heißt auf ihm sollte deine Logik liegen. Hat Vorteile, dass es unabhängig von deinen Lokalen spielern fungiert. So nun aktualisierst du nur die Positionen usw für die NPC's für alle Spieler. Solch einen Server kannst du ja auf Linux aufsetzen und die IP in deinen NEtworkmanager einbinden. Sinnvoll wäre vielleicht noch eine Art Managment auf deinem Server. Der z.b 3 Server bereithält. Wenn es zu wenig sind dann macht er einen neuen auf. Wenn der letzte Player vom Server gegangen ist und es z.b der 4. ist so schließt er sich selber und somit hält er also ungefähr immer so ein Auge auf die Anzahl der Spieler.

 

Also ich rate dir NPC code auf jedenfall auf einen Server zu machen. Spielerbewegungen sollten eigentlich auch auf den Server gemacht werden. Du sendest nur Inputs die der lokale Spieler tippt und der Server rechnet wieviel der Spieler vorgeht. Optimal wäre dann dass du es lokal auch ausführst und gleichzeitig auf dem Server - und falls der lokale zu viel Abweichung hat, so wird das korrigiert bzw interpoliert. Sowas ist aber am Anfang irreführend also würde ich erst mit den NPC's anfangen. Vorteile sind auf jedenfall dass du damit mehr Anticheat hast also sonst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...