Blog

Heroes 3: Office Wars - Wie man eine echte Unternehmenskultur aufbaut

Adam Gościcki

Aktualisiert Oktober 15, 2025
13 Minuten

Kommunikation. Respekt. Integrität. Innovation. Streben nach Großartigkeit. Passion. Menschen.
Aufrüttelnde Worte, nicht wahr? Lassen Sie mich Ihnen eine Geschichte erzählen, wie wir diese Werte wirklich in eine Unternehmensstruktur integrieren können, und zwar mit Spielen und nicht mit einem weiteren uninspirierten Ausflug auf die Kartbahn.

Das Abenteuer beginnt

Anno Domini 2019, mein allererster Tag bei GetInData. Ich war in einem Raum stationiert, der mit einem großen TV-Bildschirm mit einem Compute Stick ausgestattet war - natürlich für "Überwachungszwecke" wie die Anzeige von Grafana Dashboards. Äußerst unpraktisch, also wollten wir ihn für Netflix verwenden. Leider konnte der Compute Stick die Systemanforderungen von Netflix nicht erfüllen, also erkundeten wir, was er unterstützen könnte. So kamen wir dazu, Heroes 3 zu spielen. Maus, Tastatur, $5 bei GOG und schon konnte es losgehen. Für diejenigen unter Ihnen, die nicht das unbestreitbare Vergnügen hatten, in einem postsowjetischen Land aufzuwachsen, ist Heroes of Might and Magic III (kurz Heroes 3) ein rundenbasiertes Strategiespiel, in dem die Spieler eine Reihe von Charakteren steuern, die Armeen durch Fantasielandschaften führen, Ressourcen erobern und Feinde bekämpfen. Das Ziel ist es, Ihre Städte und Helden effektiv zu verwalten, um Ihre Gegner auszumanövrieren und zu besiegen, sei es durch Gewalt oder strategische Diplomatie. Ideal für eine Gruppe von Nerds. Da es sich um ein rundenbasiertes Spiel handelt, konnte jeder, der ins Büro kam, regelmäßig daran teilnehmen. Sie schlenderten einfach zum Fernseher, spielten ihren Zug und riefen dann die nächste Person in der Rotation. So entstand der Slack-Kanal "Helden", ein wesentliches Element unserer Geschichte, das später noch ins Spiel kommen wird. Für den Moment möchte ich nur erwähnen, dass es ein Ort war, an dem wir Memes und Strategien austauschen konnten.



Aus der Ferne gehen

Natürlich dauerte es nicht lange, bis das bürointerne Spielsystem seine Schwächen zeigte. Wenn auch nur eine Person nicht an der Reihe war, wurde das gesamte Spiel gestoppt, bis sie es ins Büro schaffte. Bei einigen Gelegenheiten kamen die Leute nur ins Büro, um ihre Runden zu spielen (oder wurden dazu gedrängt, weil die anderen nicht spielen konnten). Bald kamen wir auf die Idee, einen Remote-Desktop zu verwenden, mit dem wir bequem von zu Hause aus spielen konnten. Unsere erste Wahl war Team Viewer, aber dessen Spielleistung ließ zu wünschen übrig, so dass wir zu AnyDesk wechselten. Das Verfahren war einfach: Sie spielen Ihren Zug, melden sich ab, pingen den nächsten Spieler im #heroes Slack-Kanal an und der Zyklus wiederholt sich. Wenn es zu einer Schlacht kommt, pingen Sie Ihren Gegner an. Diese Methode hat uns einige Wochen lang gute Dienste geleistet und ein nahtloseres Spielerlebnis ermöglicht als unser ursprüngliches System vor Ort. Allerdings gab es noch einige Herausforderungen:

  • AnyDesk war gelegentlich instabil und stürzte ab, so dass wir keine andere Wahl hatten, als ins Büro zurückzukehren und es neu zu starten.
  • Die kostenlose, nicht-kommerzielle Version erlaubte nur eine Verbindung zur gleichen Zeit, was die Kämpfe, bei denen sich zwei Spieler abwechseln mussten, ziemlich frustrierend machte.

Als IT-Unternehmen war ich zuversichtlich, dass wir es besser machen könnten...

Umzug in die Cloud

Als der Ninja/Rockstar unter den DevOps-Experten, der ich bin, dämmerte es mir, dass ich über private Server verfügte. Warum also spielten wir immer noch auf einem Fernseher im Büro wie wilde Tiere? Also machte ich mich auf den Weg, um eine vollständig cloudbasierte Lösung zu entwickeln. Die Installation von Heroes 3 auf Linux erwies sich als verblüffend... einfach. Ein paar meiner Kollegen hatten Heroes 3 bereits mit Hilfe von Wine auf ihren Macs und Linux-Systemen installiert, dank dieses hilfreichen Blogbeitrags: https://rogulski.it/blog/heroes-3-on-wine/. Ein großes Lob an einen Kollegen aus Polen und Heroes 3-Enthusiasten.

Überraschenderweise war der schwierigste Aspekt, eine Verbindung mit dem entfernten Bildschirm herzustellen. Als eingefleischter Linux-Administrator verachte ich jede Form von grafischer Benutzeroberfläche auf Servern, daher war das Spielen ohne Kopfhörer die einzige akzeptable Lösung für mich. Bei meiner Suche nach fertigen Lösungen stieß ich auf ein altes Docker-Image mit VNC und einer Heroes 3-Demo: https://github.com/bmustiata/docker-heroes3-demo. Es funktionierte hervorragend, und da ich seit meiner High School-Zeit eine Schwäche für VNC hatte, machte ich mich voller Enthusiasmus an die Arbeit... nur um dann spektakulär zu scheitern. Durch eine verschlungene Reihe von Abzweigungen und doppelten Abzweigungen war VNC zu einem Relikt der Vergangenheit geworden - eine verlorene Technologie, die die Menschheit einst im Griff hatte, die aber aufgrund unserer eigenen Dummheit und Hybris verworfen wurde. Egal, was ich versuchte, ich konnte es einfach nicht zum Laufen bringen. Und NEIN, ich hatte nicht vor, eine grafische Benutzeroberfläche auf meinem Server zu installieren. Aber als erfahrener Technikprofi hatte ich noch mehr Tricks in petto. Ich erinnerte mich an ein anderes praktisches Fernzugriffs-Tool, mit dem ich bereits Erfahrung im Headless-Betrieb hatte - NoMachine. Da es sich dabei um ein kommerzielles Produkt handelt, habe ich etwas gezögert (Freie/Libre und Open Source Software ist der richtige Weg). Aber es hat einwandfrei funktioniert. Und zwar so einwandfrei, dass wir fast vier Jahre lang auf diese Weise gespielt haben! Der einzige Nachteil war, dass wir mit der kostenlosen Version nur eine Verbindung gleichzeitig herstellen konnten, was die Kämpfe etwas mühsam machte. Die Enterprise-Version bot eine 30-tägige Testphase an, nach der eine Neuinstallation erforderlich war (dies wird sogar auf der Website https://www.nomachine.com/faq bestätigt ). Bis heute wird das Spiel auf meinem privaten Server gehostet. Dafür, dass ich einen überraschend zuverlässigen SLA aufrechterhalten habe (einschließlich eines Falls, bei dem ich ein Problem innerhalb von Minuten gelöst habe, während ich im Skilift saß), haben mir die Spieler freundlicherweise einen maßgeschneiderten Hoodie zum Geburtstag geschenkt.



Eine Handvoll lustiger Geschichten

Problem mit VPN-Anbieter

Eines Tages kontaktierte mich mein Serveranbieter mit dem Verdacht auf Cryptocurrency-Mining. Sie waren alarmiert, weil eine CPU ständig zu 100% ausgelastet war. Dies war nicht auf illegale Mining-Aktivitäten zurückzuführen, sondern vielmehr darauf, dass alte Spiele, die unter Wine laufen, schlecht optimiert sind und dazu neigen, die CPU zu drosseln. Der Provider war zunächst skeptisch gegenüber meiner Erklärung und veranlasste mich, eine Serverinspektion durch einen seiner Techniker zuzulassen.

Aber hier ist die Wendung. Als ich Heroes 3 zum ersten Mal auf meinem privaten Server einrichtete, wusste ich, dass ich einer Gruppe von relativ Fremden Zugang gewähren würde (ich war neu in der Firma). Daher habe ich mich sehr bemüht, die Konten und die SSH-Verbindung so gut wie möglich abzusichern. Meine Sicherheitsmaßnahmen waren sogar so streng, dass sich der Techniker des Providers nicht über den Hypervisor (den VPN-Server in KVM) beim Root-Konto anmelden konnte. Ich musste die Sicherheitsprotokolle vorübergehend lockern, um ihnen den Zugriff zu ermöglichen. Am Ende ging alles gut aus. Es wurden keine Kryptominer gefunden; der Übeltäter war einfach ein ehrwürdiges altes Spiel.

Es gibt Arbeit, aber es gibt auch HELDEN

Als unsere Spielsitzungen immer intensiver wurden und die Spieler ihre Fähigkeiten verfeinerten, wurde klar, dass Regeln notwendig waren, damit das Spiel reibungslos ablief. Urlaub, freie Tage und Feiertage galten nicht länger als Ausrede, um das Spiel aufzuhalten. Wir haben auf Slack ein System eingeführt, bei dem jede voraussichtliche Abwesenheit vor dem eigenen Zug als 'OOH' (Out Of Heroes) gemeldet werden sollte, eine Abwandlung des üblichen 'OOO' (Out Of Office). Wir haben sogar die so genannte 'PP-Zeit' (benannt nach den Initialen eines Spielers) eingeführt, um plötzliche Anrufe oder Ereignisse zu berücksichtigen, die das Spiel zum Stillstand bringen könnten. Eine Zeit lang gab es sogar einen Slack-Bot im Kanal, dessen Aufgabe es war, die Spieler anzupingen und sie daran zu erinnern, dass sie an der Reihe waren. Und ja, es gab Fälle, in denen Spieler an Flughäfen (mehrmals), auf Booten im Urlaub und sogar auf einer Hochzeit an der Reihe waren.

Die Geschichte eines bestimmten Bildes

Das bereits erwähnte OOH war eine Idee, die wir uns ausgedacht hatten, um anderen Spielern im Voraus mitzuteilen, dass sie nicht spielen werden, aber es machte nur Sinn, wenn Sie es nutzten... im Voraus. Es gab zahlreiche Fälle, in denen Spieler OOH erklärten, nachdem sie bereits für ihren Zug angepiepst worden waren, und so die Dynamik des Tages unterbrachen. An einem Punkt erwähnte einer unserer Spieler humorvoll, dass es eine "schlechte Praxis" sei, OOH zu erklären, wenn man bereits am Zug ist, und dass man sich dafür schämen sollte. Natürlich wurde diese Aussage für die Nachwelt auf einem Screenshot festgehalten. Als dieser Spieler unweigerlich das Gleiche tat, wurde der Screenshot schnell geteilt. Als es dem ursprünglichen Screenshotschreiber das nächste Mal passierte, machte jemand einen Screenshot von diesem Screenshot und fügte unserem Insider-Witz eine weitere Ebene hinzu. Nun entwickelte sich "das Bild" zu etwas wie diesem:


Helden Wächter

Unser Unternehmen ist in den letzten Jahren erheblich gewachsen, was Änderungen in unseren Managementstrukturen erforderlich machte. Eine dieser Anpassungen war die Rolle eines 'Guardian' - jemand, der Sie durch das Unternehmen führt und Sie mit dem nötigen Wissen und der nötigen Unterstützung versorgt. Zu dieser Zeit beherrschten nur wenige Spieler Heroes 3, was zu einem deutlichen Kompetenzgefälle zwischen erfahrenen Spielern und Neueinsteigern führte. Um dieses Problem zu lösen, haben wir die Rolle eines 'Heroes Guardian' eingeführt. Neue Spieler konnten einfach nach einem Guardian fragen, einem erfahrenen Spieler, der sie durch das Spiel führen und ihnen helfen würde, die Feinheiten des Spiels zu verstehen.

Kurze Anekdoten

  • Es kam der Zeitpunkt, an dem Bewerber für ein Vorstellungsgespräch nach ihrer Lieblingsstadt im Spiel gefragt wurden. Natürlich war Inferno keine akzeptable Antwort.
  • Ein Kollege hat sogar nach seinem Ausscheiden aus dem Unternehmen darum gebeten, in unserem Slack-Kanal zu bleiben, um weiter mit uns zu spielen - eine Bitte, die unsere Vorgesetzten gnädigerweise angenommen haben.
  • Als Beweis für unsere gemeinsame Leidenschaft haben wir ein Konzert mit dem Heroes Soundtrack besucht, das von dem phänomenalen Heroes Orchestra aufgeführt wurde. Sie können sich ihre Auftritte hier ansehen: https://www.youtube.com/@HeroesOrchestra
  • Mehrere von uns haben an verschiedenen Heroes 3-Turnieren teilgenommen, und ein Kollege hat es bei der polnischen Meisterschaft sogar aus der Gruppenphase geschafft! Zugegeben, dieser Erfolg kam mit Hilfe von zwei Freilosen zustande, aber es war trotzdem ein Sieg!



Heroes 3 mit NoMachine

Sind Sie daran interessiert, wie wir in der Cloud zu spielen? Wenn ja, richten Sie einen privaten Server mit Linux Debian ein, kaufen Sie Heroes 3 auf GOG und folgen Sie einfach diesen Schritten:

apt-get install -y wget xauth xvfb

Installieren Sie wine. Die folgenden Befehle funktionieren unter Debian, Anweisungen für andere Systeme finden Sie auf der offiziellen wine-Website https://wiki.winehq.org/Download

mkdir -pm755 /etc/apt/keyrings
wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bullseye/winehq-bullseye.sources
dpkg --add-architecture i386 \
       && apt-get update -y \
       && apt-get install -y --install-recommends winehq-stable

Installieren Sie NoMachine. Beachten Sie, dass die kostenlose Version nur eine Verbindung zur gleichen Zeit zulässt.

wget -O nomachine.deb "https://www.nomachine.com/free/linux/64/deb"
dpkg -i nomachine.deb
rm nomachine.deb

Führen Sie den virtuellen X-Server aus. Dadurch wird ein virtueller Bildschirm erstellt, auf dem Sie sich verbinden und spielen können.

COOKIE=`ps -ef | md5sum | cut -f 1 -d " "`
AUTHFILE=$HOME/Xvfb-0.auth
xauth -f $AUTHFILE add :0 MIT-MAGIC-COOKIE-1 $COOKIE
xauth add :0 MIT-MAGIC-COOKIE-1 $COOKIE
Xvfb :0 -auth $AUTHFILE -screen 0 1280x720x24 &
export DISPLAY=:0

Installieren Sie NoMachine auf Ihrem PC. Nachdem Sie sich damit mit dem Server verbunden haben, sollten Sie einen schönen schwarzen Bildschirm sehen, was bedeutet, dass Sie bereit sind, Heroes 3 zu installieren. Schließen Sie es nicht - und folgen Sie den Anweisungen in diesem Blogbeitrag: https://rogulski.it/blog/heroes-3-on-wine/ . Der erste Weinbefehl sollte das Fenster des Installationsassistenten auf dem schwarzen Bildschirm öffnen, so dass Sie sich wie auf einem normalen PC einfach durchklicken können.

Um Heroes 3 auszuführen, gehen Sie einfach in den Installationsordner und starten Sie es mit wine.

cd /home/${USER}/.wine/drive_c/GOG\ Games/HoMM\ 3\ Complete/
DISPLAY=:0 /opt/wine-stable/bin/wine HD_Launcher.exe 

Helden 3 in Docker


Um ehrlich zu sein, habe ich mich schon seit über einem Jahr darauf gefreut, diesen Blogbeitrag zu schreiben. Aber zuerst wollte ich mein Magnum Opus vollenden - Heroes 3 in Docker zu erstellen. Diese Idee köchelte in meinem Kopf, seit ich das bereits erwähnte Docker-Image entdeckt hatte. Leider reichte es nicht aus, die Demo einfach gegen die Vollversion auszutauschen - das Image basierte auf einer veralteten Ubuntu-Version, was ein Sicherheitsrisiko darstellte. Außerdem mussten wir Addons wie HeroesHD einbinden, was für Docker eine weitere Herausforderung darstellte.


Mein Traum war es, nahtlos einen Rechner in der Google Cloud aufzusetzen, eine Domain zu generieren und direkt über einen Browser mit Authentifizierung zu spielen, ohne dass die Spieler eine Client-Software wie NoMachine auf ihren Rechnern installieren müssen. Ich wusste, dass dies mit noHTML und VNC auf dem Server möglich war, aber ich habe mehr Abende mit diesem Vorhaben verbracht, als ich zugeben möchte, und VNC funktionierte immer noch nicht (und ja, ich lehne die Idee, eine grafische Oberfläche zu installieren, immer noch ab, selbst in Docker).


Schließlich gelang es mir aber doch, die NoMachine-Lösung zu replizieren. Auch dies war ein zeitaufwändiger Prozess aufgrund von Komplikationen mit Wine und dem X-Server in Docker. Dennoch bin ich stolz darauf, meine Kreation - Heroes 3 in Docker - endlich vorstellen zu können.


Wenn Sie, lieber Leser, daran interessiert sind, es auszuprobieren, gibt es leider ein paar Komplikationen. Um rechtliche Probleme zu vermeiden, kann ich mit Heroes 3 selbst kein Docker-Image bereitstellen. Daher muss ein großer Teil des Einrichtungsprozesses, einschließlich der Erstellung des Docker-Images, manuell erfolgen. Bitte erwägen Sie, das Spiel bei GOG zu kaufen und es dann auf einem beliebigen x64-Linux-Host zu installieren (Sie können den aus dem NoMachine-Abschnitt oben verwenden).


Nachfolgend finden Sie die Dockerdatei und die Skripte, die Sie bei der Erstellung des Docker-Images einbeziehen müssen:


Dockerdatei

FROM debian:bullseye

ENV DEBIAN_FRONTEND=noninteractive

ENV USER heroes
ENV PASSWORD P@ssword123

RUN apt-get update -y && apt-get upgrade -y
RUN apt-get install -y wget xauth xvfb procps ssh policykit-1

RUN mkdir -pm755 /etc/apt/keyrings
RUN wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
RUN wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bullseye/winehq-bullseye.sources
RUN dpkg --add-architecture i386 \
       && apt-get update -y \
       && apt-get install -y --install-recommends winehq-stable

RUN wget -O nomachine.deb "https://www.nomachine.com/free/linux/64/deb"
RUN dpkg -i nomachine.deb
RUN rm nomachine.deb

RUN useradd -m ${USER}

EXPOSE 4000

ADD startup.sh /startup.sh
ADD start-h3.sh /start-h3.sh

# Install Heroes 3 Complete from GOG manually inside docker or move .wine folder from another Linux machine via command below
ADD .wine /home/${USER}/.wine

RUN chown -R ${USER}:${USER} /home/${USER}
RUN chmod a+x /start-h3.sh /startup.sh

RUN echo "${USER}:${PASSWORD}" | chpasswd
CMD ["/startup.sh"]

start-h3.sh

\#!/bin/sh

COOKIE=\`ps -ef | md5sum | cut -f 1 -d " "\`

AUTHFILE=$HOME/Xvfb-0.auth

xauth -f $AUTHFILE add :0 MIT-MAGIC-COOKIE-1 $COOKIE

xauth add :0 MIT-MAGIC-COOKIE-1 $COOKIE

Xvfb :0 -auth $AUTHFILE -screen 0 1280x720x24 &

cd /home/${USER}/.wine/drive_c/GOG\ Games/HoMM\ 3\ Complete/

DISPLAY=:0 /opt/wine-stable/bin/wine HD_Launcher.exe &

startup.sh

#!/bin/bash

/etc/NX/nxserver --startup &
su -c "/start-h3.sh" ${USER}
tail -f /usr/NX/var/log/nxserver.log

Sobald Sie all diese Dateien in das Home-Verzeichnis kopiert haben (wo sich der Ordner .wine aus dem vorherigen Abschnitt befindet), führen Sie einfach den folgenden Befehl aus, um das Image in Ihrem lokalen Repository zu erstellen:

sudo docker build -t heroes/heroes3:1.0.0 .

Nachdem Sie das Image erstellt haben, können Sie es mit dem folgenden Befehl starten:

sudo docker run -d -p 4001:4000 --cap-add=SYS_PTRACE heroes/heroes3:1.0.0

Das Image sollte anschließend NoMachine auf Port 4001 und Heroes 3 auf einem X-Server unter dem in der Dockerdatei angegebenen Benutzer heroes ausführen.

Viel Spaß beim Spielen!

Psst... Zu guter Letzt, wenn Sie ein DevOps-Enthusiast wie ich oder ein Data Engineer, Data Analyst, Data Scientist oder vielleicht einfach ein großer Fan von Heroes 3 wie wir sind, dann zögern Sie nicht, unsere Jobangebote und folgen Sie uns auf LinkedIn , wo wir regelmäßig die neuesten Stellenangebote in unserer "Hiring Friday"-Serie veröffentlichen!

Verfasst von

Adam Gościcki

Contact

Let’s discuss how we can support your journey.