Jump to content
Unity Insider Forum

Datenbankserver mit Photon


Tiwaz

Recommended Posts

Hallo,

 

also ich hab ja von Networking und Server einrichten etc noch überhaupt keine Ahnung und wollte mal wissen wie man folgendes konkret umsetzen kann:

 

Ich hab nen "alten" Laptop rumliegen und auf dem würd ich gerne für ein Handyspiel einen Datenbankserver einrichten.

Die wichtigste Tätigkeit für den Server wären Warteschlangen abarbeiten. Also müsste ich nen Timer auf dem Server laufen lassen um am Schluss was in der Datenbank zu ändern, weil wenn ich es beim Spieler laufen lasse, würden die Prozesse natürlich beendet werden wenn er das Spiel schließt oder das Handy ausschaltet. Das wäre ziemlich blöd ^^

 

Ich hab dafür Photon ins Auge gefasst aber wie gesagt hab ich keine Ahnung von Networking und somit weiß ich auch nicht ob ich mit Photon richtig bedient bin.

Wenn ja würd ich mich direkt mal auf die Suche nach guten Tutorials für ne Umsetzung von Datenbankservern begeben ^^

 

Auch weiß ich noch nicht wie man eine Client-Server Communication in Unity (oder Photon, etc) bewerkstelligen kann.

Von Client zu Datenbank benutze ich PHPScripte (mit PDOs) die ich über die WWW Klasse aufrufe und über Ngrok kann ich auch auf eine Localhost-Datenbank von außen zugreifen.

Aber von Client zu Server? Da müsste ich erst mal wissen wie so ein Server aussieht und arbeitet.

Also wie würde ich mit meinem Handy den Server anpingen und eine Anfrage übermitteln bzw. den Server wieder eine Antwort schicken lassen?

Kann dafür jemand ein Tutorial empfehlen?

 

Und besteht der Server dann aus nem Unity Programm das ich einfach laufen lasse? Ich hätte nämlich bereits ein C# Script mit dem ich in der Datenbank regelmäßig Werte updaten lasse. Könnte ich das dann weiter benutzen oder läuft das alles ganz anders ab?

 

Vielen Dank im Voraus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Auf das Tutorial bin ich auch schon gestoßen und hab schon bisschen reingeschnuppert aber ich bin mir nicht ganz sicher ob ich das überhaupt alles brauchen werde. Photon im Allgemeinen.

 

Am liebsten wäre es mir ja wenn ich das mit der WWW Klasse machen könnte oder etwas vergleichbarem.

Dass ich hald auf ne domain zugreife aber dort kein PHP Script gestartet wird sondern, dass auf dem Server ein Unity Programm läuft das angesprochen wird und dann brav vor sich hinarbeiten kann.

Kann man sowas machen?

Also weil nen Chatserver, Lobbys und Co brauch ich alles nicht. Das wird ne GUI basierte App wo einfach nur die Warteschlangen an den Server ausgelagert werden müssen um zu gewährleisten, dass sie nicht stoppen wenn der die App beim Client beendet wird.

Also gibts sowas oder muss ich da nen vollwertigen Server aufziehen um so ne Kommunikation zu erreichen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das, was du beschreibst hört sich eher nach einem klassischen Anwendungsfall für einen WWW-Server an (auf den du dann naheliegenderweise mit der WWW-Klasse aus der Unity API zugreifen würdest). Photon bräuchtest du, wenn du viele Spieler hast, die alle miteinander kommunizieren (oder zumindest einige davon untereinander). Aber so, wie es sich anhört ("Warteschlangen, die abgearbeitet werden") ist es wahrscheinlich am einfachsten, wenn du einen einfachen WWW-Server aufbaust (PHP, ASP.NET - was dir halt am vertrautesten ist ... bei ASP.NET könntest du dein C#-Script wahrscheinlich weiter verwenden). Der WWW-Server spricht dann über die entsprechenden APIs direkt mit der Datenbank, und deine Unity Clients sprechen über ein von dir selbst definiertes Protokoll über HTTP (implementiert über die WWW-Klasse).

 

Falls deine "Warteschlangen" natürlich Funktionalitäten von Unity brauchen würden, wäre die Sache etwas komplizierter. Du könntest dann einen "Unity Server" aufsetzen, der wiederum mit dem WWW-Server kommuniziert (genau so, wie die Clients, aber halt in einer anderen Rolle). Oder über Unity's Built-In Networking gehen (mit einem persistenten Server-Programm, das mit Unity umgesetzt ist und z.B. auf dem von dir beschriebenen Notebook läuft, und der dann wiederum direkt mit der Datenbank kommuniziert - da würde ich den Umweg über HTTP-Kommunikation der Einfachheit halber nicht nehmen). Oder du nimmst doch Photon. Aber wie gesagt: Ich denke, für das was du brauchst, brauchst du Photon (oder Unity Networking) nicht, sondern nur einen simplen WWW-Server.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hm.. ich hab mir mal alle 4 Teile durchgelesen aber das ist ja eigentlich ein Tutorial wie man eine Datenbankverbindung herstellt, oder hab ich da irgendwas überlesen?

Sowohl meine Datenbank als auch meine Datenbankanbindung vom Spieler als auch vom Server besteht bereits.

Auch kann ich schon von meinem Handy auf die Datenbank zugreifen.

 

 

Ums nochmal kurz klar zu sagen was ich grad nicht begreife:

Auf dem Laptop wird ein spezielles, selbsterstelltes Programm (in Unity erstellt) laufen womit ich die Datenbank administrieren kann. Zum Beispiel, dass in regelmäßigen Abständen bestimmte Werte aktualisiert werden.

Wenn der Spieler jetzt eine Warteschlange startet soll dieses Programm das irgendwie mitkriegen und selber einen Timer mitlaufen lassen und den Spieler wissen lassen wie lange die Warteschlange läuft, bzw. noch läuft.

 

Und irgendwie will mein Gehirn die Connection zwischen Client (sein Handy) und Unityprogramm (auf meinem Laptop) nicht verstehen.

Wie kann man einem Unityprogramm von außen sagen, dass es irgendwas machen soll?

Kann man das vllt über PHP machen?

 

Ich schau mich mal bisschen in der WWW und Networking Klasse und so um, vielleicht find ich ja was passendes.

 

@edit: Sry für so "Wie macht man das" Fragen aber heute ist kein Googlen möglich.. Hab so ein bescheidenes Internet heute, dass ich froh bin wenn ich die Seite aktualisieren kann ohne, dass die Internetverbindung abbricht.. Und das bei nem 16000er -.-

 

@edit2: Habs endlich geschafft mal für ne Minute zu googlen ohne permanente Verbindungsabrisse :D

Hab mir da mal den Network Reference Guide durchgelesen und so vom Gefühl her würde ein Non-Authoritative Server mit RPCs genau das sein, was ich brauche ^^

Denke ich komme mit der Network Klasse ziemlich gut für meine Anforderungen aus. Ich werd in den nächsten Tagen mal versuchen was aufzusetzen und meld mich hier dann wieder wenns was neues gibt :D

 

Vielleicht sucht ja jemand mal nach sowas.. Google spuckt nämlich nicht gerade die hilfreichsten Artikel zu dem Thema aus (könnte auch sein, dass ich schlechte Suchanfragen gestellt hab ^^)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...