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

Auto-Matchmaking #4: Serverstart erleichtern.

Sign in to follow this  
MaZy

277 views

[font=lucida sans unicode,lucida grande,sans-serif]Hallo Leute,

diesmal habe ich nicht viel machen können aus Zeitdruck.
Ich habe ja in der letzten Teil gesagt, dass ich zwei Projekte in einem Unity-Projekt mache. Den "Cloudserver" bzw "Gameserver" und den "Masterserver". Dazu hab ich logischerweise zwei Szenen erstellt wo jeweils die GameObjects mit Scripts darauf warten gestartet zu werden.

Das Problem wäre hier, dass ich beim Compilen immer die erste Szene verändern müsste, damit die Szene beim Start geladen wird. Außerdem hätte ich dann zwei verschiedene "Spiele" bzw. Server. Das mochte ich gar nicht.

Daher habe ich 3 Szenen erstellt wo ich quasi am Anfang was auswählen KÖNNTE. Jedoch gefiel mir dieser Gedanke auch nicht. Warum? Unity hat zum Beispiel "-background" als Commandline implementiert. Damit kann eine Unity-Instanz angeblich ohne 3D oberfläche gestartet werden. Das ist sehr gut als Serverinstanz benutzbar. Commandlines sind die man hinter jeder Ausführung anhängen kann. Damit kann man quasi beim Programmstart ein Befehl mit geben. Meistens macht das per Verknüpfung erstellen und in der Eigenschaft einstellen, aber man kann auch eine BATCH Datei erstellen oder in Linux eine Shell Datei erstellen und so die Parameter übergeben. Und genau diesen Background will ich später benutzen. Wieso soll das Spiel ganze Zeit geöffnet sein, wobei es so oder so nur als Server dient und sonst nichts?

Daher habe ich an einer Lösung gedacht. Eigene Commandlines erstellen. Habe dazu zwei batch Dateien erstellt.
Die in der selben Ordner wie die .exe Datei ist. So sieht das dann aus.

[CODE]Dateiname: start_gameserver.bat
Inhalt: Matchmaking.exe -port 23000 -startserver

Dateiname: start_matchmaker_server.bat
Inhalt: Matchmaking.exe -port 24130 -matchmakingserver[/CODE][/font]
[font=lucida sans unicode,lucida grande,sans-serif]Hier fehlt noch -background. Das habe ich erst mal weggelassen.[/font]
[font=lucida sans unicode,lucida grande,sans-serif]Demonstration mit Video
Klickt dazu auf das Bild.

[url="http://puu.sh/iB2jw/99d30cedf9.mp4"][img]http://puu.sh/iB2F0/2e33a78387.png[/img][/url][/font]

[font=lucida sans unicode,lucida grande,sans-serif]Der Vorteil hierbei ist, dass der Gameserver mit verschiedenen Ports gestartet werden kann, wenn mehrere Matches gibt.[/font]

[font=lucida sans unicode,lucida grande,sans-serif]Falls ihr das Video gesehen habt:
Die Konsole und das Spiel bleibt auch für immer geöffnet. Jetzt könnte man hinten und noch -background anhängen und schon wäre nur die Konsole da. Leider finde ich noch keine "gute" Lösung dafür, dass man per Konsole ins Spiel Befehle senden kann. Das wird aber erst mal auch nicht beachtet.[/font]


[font=lucida sans unicode,lucida grande,sans-serif][b]Part #5[/b] wird wohl der Gameserver und die Clients sein. Der Server macht nichts außer auf Connection hören. Wir wollen nun Parallel zu Client programmieren, dass sie miteinander kommunizieren können.[/font]

[font=lucida sans unicode,lucida grande,sans-serif]Natürlich wird der Teil nicht wie bei Photon sein. Photon hat eine universelle Lösung. Mein Vorhaben ist aber nur speziell für mich bzw. für ein Spiel gedacht. Entweder übernimmt man das beim nächsten Spiel oder man schreibt neue Logiken auf. (Ist doch fast jedes mal so, wenn man auch ein Spiel neu beginnt :P). Der Vorteil trotzdem dabei ist, dass wir unsere eigene logischen Bedingungen auf dem Server ausführen können. Beispiel Punkte vergeben. Yay.[/font]
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
×