Jump to content
Unity Insider Forum
Sign in to follow this  
  • entries
    14
  • comments
    32
  • views
    42,365

Auto-Matchmaking #3: Konzept und wie weit ich bin.

Sign in to follow this  
MaZy

349 views

In diesem Blog geht es darum wie ich meinen eigenen Auto-Matchmaking-system schreibe (bin schon viel weiter).

Hallo endlich kommen wir zum Konzept.

Ihr fragt euch schon wie ich mir das ganze machen möchte bzw. bereits gemacht habe. Wie das wohl mit Unity Networking gehen soll? Vergisst nicht. Es geht mir ausschließlich um Auto-Matchmaking-System.

[Erst mal was ich bis jetzt habe.
-
Ich habe einen Masterserver mit einer Szene, wo man die verbundenen Spieler sehen kann. Außerdem sollte der Server noch anzeigen, was sie machen, jedoch hab ich dort ein Problem. Unity Networking kann nicht mit zwei Servern verbunden werden. Masterserver enthält außerdem eine Playerklasse, wo nochmal die wichtigen Informationen enthalten sind.

BILD DAZU

http://i.imgur.com/Bj9VYPP.png

In dem selben Projekt habe ich eine weitere Szene. Dort hab ich noch ein Server programmiert, welches als Gameserver benutzt wird. Wird so ähnlich wie Photon aufgebaut. Einfach nur Daten hin und her schicken. Das wars so weit.

Vielleicht habt ihr bereits verstanden, was ich vorhabe.

Das Konzept ist einfach. Ich brauche ein Gameserver, wo die Spieler beitreten und spielen und ein Masterserver, der die Spieler dazu verhelfen soll auf diese Gameserver zu kommen. Also ein Auto-Matchmaking.
Also wird ein System auf dem Masterserver entwickelt, wo Beispiel die Spieler auf ein Button klicken, wo dann dieser Spieler eine RPCall zum Serverschickt, dass er suchen möchte. Dazu schickt der Masterserver zurück "ok du kannst suchen". Wie gesagt. Autoritativer Server "beste" für mich . Auf jeden Fall läuft die Suche auf dem Masterserver. Darum brauchen wir ein Array und noch besser "List" oder so, um die Spieler in einer Queue zu setzen und zusammen zu picken. Da habe ich noch keine Erfahrung, aber ungefähr habe ich die genannte Vorstellung.

Jetzt kommt noch ein Teil
Der Masterserver muss wissen, ob ein Gameserver gestartet wurde, läuft, oder beendet wurde. Denn er soll ja schließlich wissen, wann er nochmal diesen Server benutzen kann.
Der Gameserver läuft in meinem Beispiel auf dem selben IP, aber die PORTS variieren. Geht auch anders nicht .

Dazu hab ich was simples gedacht. Der Gameserver startet und verbindet sich mit dem Master und sagt "Ich bin startklar, mein Prozess ID". Die ID brauch ich damit der Masterserver weiß, ob der Server abgestürzt ist. Wenn ja ist das Spiel automatisch vorbei und zählt nicht.
Danach wird die Verbindung zum Masterserver wieder getrennt und stellt sich als Server mit Network.InitializeServer() bereit. Ansonsten am Ende verbinden wir uns nochmal mit dem Masterserver und schicken, dass das Spiel erfolgreich beendet wurde.

Das Problem könnte hier allerdings kleine Delays sein. Was wenn der Serverstart also Network.InitializeServer() plötzlich 10 Sekunden dauert, weil es gerade Performanz-Probleme gibt? Weiß nicht, ob das überhaupt möglich ist.

So mehr fällt mir gerade nicht ein.

Im nächsten Teil zeige ich die Fortschritte

Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×