Daily Archives: 1. Dezember 2014

Gamingserver auf Azure hosten: ARMA III

Nachdem nun der erste Beitrag des Hosting eines Teamspeak Servers auf Azure so viel Aufmerksamkeit erlangt hat, habe ich mit einen Co Autoren gesucht. Er stammt aus meinen IT Kursen an einem Gymnasium und hat mich tatkräftig unterstützt diesen Beitrag zu verfassen:

Nun wollen wir euch kurz näher erläutern, wie man einen Arma 3 – Gameserver auf Azure hostet und betreibt. Das Hosting wird auf der Azure A1 Maschine durchgeführt, der auch schon für Teamspeak genutzt wurde. Teamspeak soll ebenso parallel laufen. Die VM A1 genügt für Spielerzahlen bis 100 Spieler und zeigt sich in einem Test performant. Es empfielt sich jedoch für ein besseres Spielerlebnis auf einen größeren Server zurückzugreifen, denn so hätte man noch einige Reserven. Die VM bei Azure schlägt mit rund 42 Euro pro Monat zu buche.

Anleitung:

1. Vorbereitung

  • Ihr müsst einen SteamAccount besitzen
  • Auf dem Server muss Windows Server 2008 oder höher laufen. Eine Anleitung für Linux folgt später. In Azure wäre dies ein Windows Server 2012 R2 Datacenter.

2. Nun installiert ihr DirectX auf Azure.

3. Nun erstellt ihr im Stammverzeichnis (meist C://) die Folgenden 2 Ordner:

(1) c:\\steamcmd

(2) c:\\Arma3_Server

4. Als nächstes müsst ihr die SteamCMD runterladen, in den Ordner (1) verschieben und dort entpacken.

5. Nun müsst ihr die steamcmd.exe öffnen.

6. Jetzt müsst ihr die Datei “ Arma3server_steamcmd_example.cmd ” erstellen und diese im Ordner (2) speichern.

7. Diese Datei muss den folgenden Inhalt haben, ihr müsst hierbei die rotgedruckten Variablen mit den Pfaden beziehungsweise euren Steam-Daten ersetzen. Diese werden benötigt, um die ServerFiles von den Steam-Servern runterzuladen.

@echo off
@rem http://media.steampowered.com/installer/steamcmd.zip
SETLOCAL ENABLEDELAYEDEXPANSION
    SET STEAMLOGIN=Steam-Benutzername Passwort
    SET A3serverBRANCH=233780 -beta
        :: For stable use 233780 -beta
        :: For Dev use 233780 -beta development
                :: Note, the missing qotation marks, these need to be wrapped around the entire "+app_data......"
                :: There is no DEV branch data yet for Arma 3 Dedicated Server package !!!

    SET A3serverPath=X:\Arma3_Server
        SET STEAMPATH=X:\steamcmd
:: _________________________________________________________
echo.
echo     You are about to update ArmA 3 server
echo        Dir: %A3serverPath%
echo        Branch: %A3serverBRANCH%
echo.
echo     Key "ENTER" to proceed
				

pause

%STEAMPATH%\steamcmd.exe +login %STEAMLOGIN% +force_install_dir %A3serverPath% +”app_update %A3serverBRANCH%” validate +quit

echo .

echo Your ArmA 3 server is now up to date

echo key “ENTER” to exit

pause

 

8. Nun lädt das Programm den Server selbstständig runter und ihr müsst nur warten.

9. Wenn das Programm fertig ist, erstellt ihr zur Arma3Server.exe eine Verknüpfung auf dem Desktop der VM.

10. Dieser Verknüpfung fügt ihr nun unter RechtsklickàEigenschaftenàDateipfad folgende Parameter hinzu:

“-profiles=d:\Games\Arma3\A3Master” -config=CONFIG_Vanilla.cfg -world=empty -port=2302

11. Nun müsst ihr das Port Forwarding einrichten. Hierbei müssen folgende Regeln erstellt werden:

Eingehend:

  • 2302 (Arma3 Game port) + (VON is now part of main gameport due to NAT issues)
  • 2303 (STEAM query )
  • 2304 (Steam port)
  • 2305 (VON port – not used, but allocated)

Ausgehend:

Ziel-Port

Protokoll

Ziel-IP

Kommentar

2344 TCP+UDP 81.0.236.111 BattlEye – arma31.battleye.com
2345 TCP 81.0.236.111 BattlEye – arma31.battleye.com
2302-2305 UDP any Arma Server zum Client Traffic
2303 UDP any Arma Server STEAM query port
2304 UDP any Arma Server to STEAM master traffic

 

12. Nun müsst ihr die CONFIG_Vanilla.cfg erstellen und diese im Ordner (2) speichern. Auch hier müsst ihr die Variablen ausfüllen. Diese muss folgenden Inhalt haben:

//

// server.cfg

//

// comments are written with “//” in front of them.

// STEAM

steamPort = 8766; // default 8766, needs to be unique if multiple serves on same box

steamQueryPort = 27016; // default 27016, needs to be unique if multiple servers on same box

// GLOBAL SETTINGS

hostname = “My Server: My Teamspeak address“; // The name of the server that will be displayed in the public server list

//password = “ServerPassword“; // Password to join the server

passwordAdmin = “AdminPassword“; // Password to become server admin. When you’re connected to the server, open the chat and type ‘#login password’

//reportingIP = “arma3pc.master.gamespy.com”; // not used anymore in Arma 3

logFile = “arma3server.log”;

verifySignatures = 2; // Prevent players with unknown mods from joining the server (best kept at 2 if you want to reduce the number of hackers)

equalModRequired = 0; // Prevent players who don’t have the exact same mods as the server from joining (best kept at 0)

requiredSecureId = 2; // was used to define type of secureID

// WELCOME MESSAGE (“message of the day”)

// It can be several lines, separated by comma

// Empty messages “” will not be displayed at all but are only for increasing the interval

motd[] =

{

    “Welcome to My Arma 3 Server“,

    “TS3 Server: teamspeak.somewhere.com“,

    “Web: www.example.com

};

motdInterval = 30; // Time interval (in seconds) between each message

// JOINING RULES

maxPlayers = 40; // Maximum amount of players. Anybody who joins the server is considered a player, regardless of their role or team.

kickDuplicate = 1; // Each player normally has its own unique ID. If set to 1, players with an ID that is identical to another player will be kicked

//requiredBuild = 12345; // Require clients joining to have at least this build version of game, preventing obsolete clients to connect

// VOTING

voteMissionPlayers = 1; // Tells the server how many people must connect before displaying the mission selection screen, if you have not already selected a mission in this config

voteThreshold = 0.33; // Percentage (0.00 to 1.00) of players needed to vote for something, for example an admin or a new mission, to become effective. Set to 9999 to prevent people from voting random players as admins.

// MISSIONS CYCLE

class Missions

{

    class Mission1

    {

        template=”MyMission.Stratis”;

        difficulty=”Regular”;

    };

};

// INGAME SETTINGS

disableVoN = 0; // If set to 1, voice chat will be disabled

vonCodecQuality = 10; // Supports range 1-30; 8kHz is 0-10 (narrowband), 16kHz is 11-20 (wideband), 32kHz is 21-30 (ultrawideband); higher = better sound quality

persistent = 1; // If set to 1, missions will continue to run after all players have disconnected

timeStampFormat = “short”; // Set the timestamp format used on each line of the server RPT log file. Possible values are “none” (default), “short”, “full”.

BattlEye = 1; // If set to 0, BattlEye Anti-Cheat will be disabled on the server (not recommended)

// FILE EXTENSIONS

allowedLoadFileExtensions[] = {“hpp”,”sqs”,”sqf”,”fsm”,”cpp”,”paa”,”txt”,”xml”,”inc”,”ext”,”sqm”,”ods”,”fxy”,”lip”,”csv”,”kb”,”bik”,”bikb”,”html”,”htm”,”biedi”}; // only allow files with those extensions to be loaded via loadFile command (since Arma 3 build 1.19.124216)

allowedPreprocessFileExtensions[] = {“hpp”,”sqs”,”sqf”,”fsm”,”cpp”,”paa”,”txt”,”xml”,”inc”,”ext”,”sqm”,”ods”,”fxy”,”lip”,”csv”,”kb”,”bik”,”bikb”,”html”,”htm”,”biedi”}; // only allow files with those extensions to be loaded via preprocessFile/preprocessFileLineNumber commands (since Arma 3 build 1.19.124323)

allowedHTMLLoadExtensions[] = {“htm”,”html”,”xml”,”txt”}; // only allow files with those extensions to be loaded via HTMLLoad command (since Arma 3 build 1.27.126715)

// SCRIPTING ISSUES

onUserConnected = “”; // command to run when a player connects

onUserDisconnected = “”; // command to run when a player disconnects

doubleIdDetected = “”; // command to run if a player has the same ID as another player in the server

// SIGNATURE VERIFICATION

onUnsignedData = “kick (_this select 0)”; // command to run if a player has unsigned data

onHackedData = “kick (_this select 0)”; // command to run if a player has data with invalid signatures

onDifferentData = “”; // command to run if a player has modified data

13. Nun startet ihr einmal die Arma3Server.exe und schaut, ob sich ein Konsolenfenster öffnet und dort keine Fehlermeldungen stehen. Jetzt schließt ihr den Server wieder.

14. Dann könnt ihr die nun generierten Dateien des Servers euren Wünschen nach editieren.

15. Startet nun den Server erneut. Ihr werdet diesen nun unter der externen IP eurer VM im Arma 3-ServerBrowser finden.

16. Loggt euch auf dem Server ein und meldet euch als Admin an. Dies macht ihr, indem ihr das Chatfenster ( Standard: – ) öffnet und dort #login Adminpasswort eingebt. Das Adminpasswort ist das Passwort aus der config-Datei.

17. Als letztes müsst ihr jetzt #missions eingeben. Ihr bekommt dann eine Übersicht über alle Spieler und Missionen und könnt diese dann auswählen.
Wir hoffen, das Erstellen eines Servers auf Azure ist euch durch unsere Anleitung leichter gefallen.

Also herzlichen Dank an Florian!

Als nächstes folgt ein Minecraft-Server.

 

Nun noch ein paar Screens aus dem Test:

 

Server startet in Azure auf einem WindowsServer2012R2 Datacenter

serverconsole.server.startet

 

Spieler auswählen im Client

User-Auswählen

Ping zum Azure Server in Dublin:

serverauslastung Client

parallel ein Screen des Taskmanagers auf dem Server in Azure:

server_mission-bearbeiten

Server im laufenden Betrieb

Mission-aktiv-vollauslastung

 

Client verbunden mit dem Server – Mapauswahl

Mission_laden

Mission_geladen1

 

Gamingserver auf Azure hosten

Mit Azure ist es aktuell möglich sehr nützliche Sachen zu machen im Bereich des Business zu machen. Alles auch sehr viele Dienste gehen in die Cloud und nutzen die Zentralisierung und das Ressourcenmanagement eines Rechenzentrums aus.

Neben dem Webseitenhosting, dem Angebot an mobilen Clouddiensten, Azure AD und noch vieles mehr, sind die Leistungen und Angebote von Azure aktuell hauptsächlich auf den Businessbereich konzentriert. Auch ich habe Azure bisher nur genutzt um eine Azure AD zu erstellen, um mobile Dienste in Apps zu nutzen oder rechenintensive Berechnungen durchzuführen. Natürlich nutze ich Azure auch als Trainer, so dass ich mit einem Surface Pro und einer guten Internetverbindung fast alle Trainings im Bereich IT Pro und Dev und gerade bei Office 365 erledigen konnte.

Nun sprachen mich Jugendliche in meinem vergangenen Cyber Security Kurs an, ob man ihre Gamingserver und Teamspeak nicht auch bei Azure hosten könnte. Nach einer kurzen Recherche zeigte sich, dass Microsoft und Dritte diese Zielgruppe noch nicht im Fokus haben. Also musste man selber testen und ausprobieren, wie man Gamingserver auf Azure hostet. Viele uns Geeks haben in ihrer Kindheit am Rechner gespielt, wer erinnert sich nicht noch an LAN-Parties, bei denen zu 2/3 manuell ein Netzwerk gebaut wurde und zu 1/3 gespielt oder gezockt.

 

Gamingserver:


Es ist  möglich eigene GamingServer zu hosten. Meiner Recherche nach können mehr als 80 Server selber gehostet werden. Davon sind ca. 60 Stück legal und unter den gegebenen Lizenzbestimmungen selber zu hosten. So können sich Gamer unabhängig von den Servern des jeweiligen Spieleanbieters machen und teilweise eigene Mission kreieren und diese mit den Freunden spielen.

Dementsprechend suchte ich mir als Beispiel drei Server aus, die es galt auf Azure zu hosten. Es besteht die Möglichkeit Server in AZURE entweder auf Linux Basis oder auf Windows Basis zu hosten. Der Preis bei Azure unterscheidet sich nicht, ob man sich nun für Linux oder für Windows als Hostplattform entscheidet.

Ich habe mich also dazu entschieden die WindowsPlattformen zu nutzen und damit einen Windows Server 2012 R2 Datacenter. Nun stand die Auswahl der richtigen VM. Ich entschied mich zunächst für eine A1 mit ca. 42 Euro im Monat (2 GB, 1 mal 2,20 GHZ). Diese sollte ausreichen um zwei Gamingserver und Teamspeak gleichzeitg zu hosten.

Damit dieser Artikel nicht zu lang wird, schaut bitte meine Beiträge in den anderen Posts an:

TeamSpeak (Anleitung findet ihr hier!)
Arma III  (Anleitung findet ihr hier!)
Minecraft folgt in Zukunft

Ich werde in Zukunft weitere Gamingserver testen und auch über deren Preis-Leistungsverhältnis sprechen. Auf dem Markt der Gamingserver findet man recht viele Anbieter, die neben Teamspeak auch unterschiedliche viele Gamingserver anbieten. Man zahlt wie bei Azure monatlich und kann entsprechend mit bis zu 10 oder mehr Usern diesen Server nutzen. Bei der Nutzung muss der Gamer jedoch immer auch das eigentliche Spiel besitzen, der Server alleine genügt nicht.

Interessant ist, dass die meisten Gamingserver über keine GUI verfügen, sondern per Scriptbefehle gesteuert werden. Sie sollen so wenig CPU und Ram für die Verwaltung aufbringen müssen, sondern ihre gesamte Leistung in ihre Aufgabe das Hosten der Spieleplattform stecken.

Der Unterschied der Leistungsanforderungen ist schon gewaltig. Da benötigt ein Teamspeak Server gerade einmal 100MB und 1-0,5% CPU und ein Arma III Server mit einer großen Karte, 50 Spielern und jede Menge Effekten  kommt da schon auf gut 95% CPU Auslastung und 700-800 MB Ram. Ich werde bezüglich der steigenden Anforderungen den Lastausgleich und auch das Hosten von Gamingservern als Serverfarm testen. Aber dies folgt.

Einfache Installation

Einen Gamingserver auf Azure zu hosten ist denkbar einfach. Server von Azure deployen lassen, Firewall einstellen, Endpunkte für die Ports setzen und den Server starten. Nun folgt die übliche Konfiguration, aber auch dies ist schnell erledigt.

Schauen wir uns den Teamspeak Server an, dauerte die Installation und Einrichtung nur für Azure 15 Minuten und für den gesamten Server unter 30 Minuten. Wenn Microsoft die Erstellung von mehreren Endpunkten gleichzeitig ermöglicht, wäre ich schon nach 10 Minuten fertig gewesen.

Für Teamspeak musste ich nur zwei Endpunkte setzen: TCP: 10011 & UDP: 9987

Azure als Hoster für Gamingserver

Wenn ich mir nun das Preis-Leistungsverhältnis von Azure zu anderen Drittanbietern ansehen, dann kann Azure eine gute Rolle spielen, wenn es als Plattform für Gamingserver gesehen wird. Vielleicht bietet Microsoft bald mit dem Minecraft-Server einen ersten Gamingserver auf Azure direkt als VM an.

Der Vorteil von Azure liegt auf der Hand: ein Rechenzentrum in der EU,  99,99 SLA, flexible Preisgestaltung (Server ausschalten und weniger zahlen),  Serverlizenz inbegriffen, Server kann auch als Fileserver etc genutzt werden, mehrere Gamingserver können installiert werden, besonders einfache Installation.

Mitmachen

Ich werde versuchen Microsoft bald zu besuchen und meine Fragen loszuwerden. Wer sich an meinem Experimenten gerne beteiligen möchte schreibe mir eine E-Mail: raphael.koellner@rakoellner.de

Wer für Lasttests zur Verfügung stehen will und einen Abend sein Business, Business sein lassen will, schreibe mir auch gerne eine E-Mail. Ich freue mich über den Erfahrungsaustausch.

Lizenzen bei Gamingservern

In einem der nächsten Blogbeiträge widme ich mich den Lizenzbestimmungen von Gamingservern. Auf einen ersten Blick laufen diese aktuell ähnlich der GPL, NPL, EPL, die wir schon aus dem OPEN Scource Bereich kennen. Alles weitere dann in einem er nächsten Blogposts.

 

 

 

 

 

 

 

 

 

Frage im Rahmen des AZURE Adventskalender:
Welche beiden Ports müssen über Endpunkte in Azure geöffnet werden, um einen  TeamspeakServer nutzen zu können?

Antworten:
1. 8080 TCP + 11011 UDP

2. 1459 UDP + 9857 TCP

3. 3389 TCP + 11011 UDP

4. 10011 TCP + 9987 UDP

 

Das eigene Videoportal für die (Hoch)-Schule mit Office 365 Video

Start-Kacheln

Seit ca. drei Wochen ist es nun möglich ein eigenes Videoportal in Office 365 zu betreiben. Auch ich habe nun in meinem Test-Tenant den Zugang erhalten und möchte heute im Rahmen des AZURE Adventskalender euch am Beispiel eines Videoportales einer Hochschule demonstrieren.

Zunächst stehen Bildungseinrichtungen vor dem großen Problem, dass auch sie eigene Video-Portale für das E-Learning anbieten müssen. Die Vorlesungen müssen aufgezeichnet und bereit gestellt werden. Nun könnte man auf YouTube und Co. zurückgreifen, aber diesbezüglich gibt es keine Rechteverwaltung, also nicht nur Angehörige der Bildungseinrichtung könnten auf die Videos zugreifen sondern alle.

Nun gibt es ein Office 365 Videoportal, welches sogar schon in den kostenlosen Office 365 Tenants A2 für Bildungseinrichtungen enthalten ist. Damit erweitert Microsoft das Angebot innerhalb von Office 365 um einen weiteren attraktives Feature. Aber auch muss man sich im Klaren sein, dass Office 365 Video noch neu ist und in der nächsten Zeit immer mehr Funktionen dazukommen. Ich hoffe sehr, dass man auch  Videos extern teilen kann und das Portal mit einer Subdomain extern erreichbar machen könnte. Theoretisch müsste dies über die Webseitenkonsole vom SharePoint Online möglich werden.

Das eigene Videoportal für die Hochschule einrichten:

1. Im Reiter auf Video klicken
2. neuen Channel einrichten, benennen und eine Farbe für den Channel auswählen
3. Videos hochladen
4. Videos kategorisieren: Spotlight (1. Video) erweiterte Spotlights
5. Berechtigungen (permissions) anlegen. Wer darf den Channel bearbeiten und Wer darf die Videos sehen

 Spotlights:
spotlight
Berechtigungen/Permissions:

permissions

In dem ersten Feld könnt ihr Nutzer des Office365 Tenants eintragen, die Videos in dem jeweiligen Channel bearbeiten können und auch den Channel bearbeiten.
Technischer Hintergrund:

Office 365 Video ist eine Kombination aus dem SharePoint Online und Azure. Die Videos werden im Azure Storage dupliziert und über den Azure Media Service wieder gestreamt. Dies ermöglicht es die Videos auf allen möglichen Geräten anzusehen. Ich habe meinen Test-Kanal mit iPad, WindowsPhone und Surface RT gestestet und war begeistert. Das Video lief flüssig und in guter Qualität. Ein schönes Video erläutert dies schöner als meine Worte es gerade könnten:

Unterstützte Codecs:

Nun habe ich euch einmal alle unterstützen Codecs zusammengestellt. Wie ihr sehen könnt, sind die gängigsten Codecs verfügbar.
Videocodecs
H.264 (Baseline, Main, and High Profiles)
MPEG-1 (Including MPEG-PS)
MPEG-2 (Simple and Main Profile)
MPEG-4 v2 (Simple Visual Profile and Advanced Simple Profile)
VC-1 (Simple, Main, and Advanced Profiles)
Windows Media Video (Simple, Main, and Advanced Profiles)
DV (DVC, DVHD, DVSD, DVSL)
Grass Valley HQ/HQX
Audiocodecs:
AC-3 (Dolby Digital audio)
AAC (AAC-LC, HE-AAC v1 with AAC-LC core, and HE-AAC v2 with AAC-LC core)
MP3
Windows Media Audio (Windows Media Audio Standard, Windows Media Audio Professional, and Windows Media Audio Lossless)
Videodateiformate:
3GPP, 3GPP2 .3gp, .3g2, .3gp2
Advanced Systems Format (ASF) .asf
Advanced Video Coding High Definition (AVCHD) [MPEG-2 Transport Stream] .mts, .m2ts
Audio-Video Interleaved (AVI) .avi
Digital camcorder MPEG-2 (MOD) .mod
DVD transport stream (TS) file .ts
DVD video object (VOB) file .vob
Expression Encoder Screen Capture Codec file .xesc
MP4 .mp4
MPEG-1 System Stream .mpeg, .mpg
MPEG-2 video file .m2v
Smooth Streaming File Format (PIFF 1.3) .ismv
Windows Media Video (WMV) .wmv

 

Video zur Vorstellung:

 

Link zum OfficeBlog: http://blogs.office.com/2014/11/18/introducing-office-365-video/

Digitale Agenda – Treffen Microsoft & Dobrint

Wo? Microsoft Office Berlin
Wann? ab 18.00 Uhr
Veranstaltung: Digitales Deutschland – Digitale Agenda auf der Überholspur

Ihr habt Fragen zur Digitalen Agenda und wollte diese direkt stellen? Dann kann ich euch den morgigen Tag im Microsoft Office in Berlin empfehlen. Denn dort wird Herr Dobrindt MdB als Bundesminister für Verkehr und digitale Infrastruktur treffen.

Er wird unter der Moderation von Herrn Dr. Wolfram Weimer Fragen zur Digitalen Agenda beantworten.

Anmelden könnt Ihr Euch noch hier:
http://www.microsoft.com/de-de/politik/events/digitales-deutschland/digitale_agenda.aspx