AntiAC: Server-Infrastruktur
Wie unser Gründer vor Nohn IT ein Spielnetzwerk mit eigener Cloud gebaut und unter hoher Last betrieben hat.
Früheres Projekt, kein Kundenprojekt
AntiAC war ein früheres Projekt des Gründers aus der Zeit vor Nohn IT, bis 2022. Es ist kein Kundenprojekt der Jannik Nohn UG. Wir zeigen es, weil es belegt, wie wir Systeme für viele gleichzeitige Nutzer bauen.
Stand
abgeschlossen
Rolle
Mitgründung, Entwicklung und Betrieb der Systeme
Für wen
Früheres Projekt des Gründers, vor Nohn IT
Kurz gesagt
AntiAC war ein deutsches Minecraft-Netzwerk für Wettkampf-Training, das unser Gründer Jannik Nohn vor Nohn IT mitgegründet und zu zweit entwickelt hat. Die gesamte Server-Infrastruktur war Eigenbau: eine eigene Cloud-Steuerung, ein eigenes Netzwerkprotokoll und Spielserver in Deutschland und den USA. In der Spitze waren knapp 2.000 Spieler gleichzeitig online.
Hinweis zur Marke
Minecraft ist eine Marke von Mojang. AntiAC war kein offizielles Minecraft-Produkt, nicht von Mojang oder Microsoft genehmigt und nicht mit ihnen verbunden.
Auf dieser Seite gibt es deshalb keine Spielbilder.
Die Aufgabe
Ein Trainingsnetzwerk für Brückenbau, Block-Clutches und Duelle braucht kurze Wege, auch für Spieler in Nordamerika. Dutzende Spielserver aus Vorlagen mussten auf mehreren Rechnern starten und stoppen, und gegen Crash-Angriffe mit präparierten Paketen brauchte es einen eigenen Schutz. Die gesamte Technik dafür war Eigenbau.
Zwei Kontinente
Spieler in Europa und in Nordamerika, gesteuert von einer zentralen Stelle in Deutschland.
Rund 15 Modi
Training, Bridge, Clutches, Knockback, MLGRush, BedWars, SkyWars und weitere, alle selbst programmiert.
Was Jannik Nohn mitgebaut hat
Sechs Bausteine, jeder selbst entwickelt. Was er tat und was er dem Betrieb brachte.
Eine eigene Cloud
Der Master hält den Gesamtzustand: Server, Spieler, Ränge, Partys, Clans, Warteschlangen, Turniere und Moderation. Auf jedem Rechner startet und stoppt ein Wrapper die Spielserver aus 36 Vorlagen.
Für den Betrieb hieß das: neue Spielserver per Vorlage statt von Hand, und ein Bild vom ganzen Netzwerk an einer Stelle.
Ein eigenes Protokoll
88 Nachrichtentypen auf Netty, ohne fremden Message-Broker. Proxys, Spielserver und Steuerung sprechen direkt miteinander.
Eine Schutzschicht
Sie filtert Positionspakete und Plugin-Kanäle auf Crash-Angriffe, damit präparierte Pakete keinen Spielserver zum Absturz bringen.
Replays
Auf Befehl zeichnet das System eine Runde auf, packt sie mit Zstandard und legt sie auf einem eigenen Dateiserver ab.
Ein Zugang für Nordamerika
Eine eigene US-Adresse mit US-Proxy und einem Rechner in den USA für die Trainingsmodi, bei denen jede Verzögerung zählt. Gesteuert vom Master in Deutschland.
150.235
Verwarnungen im eigenen Moderationssystem mit Bannpunkten, Mutes, Reports und Chatprotokollen, 2020 bis 2022.
So ist es gebaut
Spieler kommen über Proxys an zwei Standorten. Eine zentrale Steuerung in Deutschland lenkt alle Spielserver.
- Eigenbau von AntiAC
- Mensch oder Kanal
- Direkter Aufruf
- Weg der Spieler und Daten
- Pakete pro Sekunde, Schätzung
- Schritt im Ablauf
Der Weg eines Spielers
- Spieler in Europa verbinden sich mit Minecraft 1.8 über die Hauptadresse mit einem EU-Proxy.
- Der Proxy verteilt die Spieler auf Lobbys und Spielserver. In der Spitze liefen über die Spielserver schätzungsweise 90.000 bis 900.000 Netzwerkpakete pro Sekunde, also Hunderttausende (Schätzung nach dem Protokoll von Minecraft 1.8 für knapp 2.000 Spieler, nicht gemessen).
- Proxys und Spielserver tauschen sich mit dem Master über ein eigenes Netzwerkprotokoll mit 88 Nachrichtentypen aus, zum Beispiel für Serverwechsel und Spielerstatus.
- Der Master gibt dem Wrapper auf jedem Rechner Vorlagen sowie Start- und Stoppbefehle.
- Die Spielserver schreiben Spielerkonten und Statistiken je Modus direkt in die MongoDB.
- Auf Befehl im Spiel zeichnet das Replay-System die Pakete einer Runde auf, packt sie mit Zstandard und legt sie auf einem eigenen Dateiserver ab.
- Spieler in Nordamerika verbinden sich über eine eigene US-Adresse mit dem US-Proxy und spielen die Trainingsmodi auf einem Rechner in den USA.
Was nebenher lief
- Der Wrapper startet und stoppt die Spielserver auf seinem Rechner.
- Auch die Spielserver in den USA steuert der Master in Deutschland, über eine feste Zuordnung der US-Vorlagen.
- Neben der MongoDB nutzt der Master für Teile der Verwaltung eine MySQL-Datenbank.
- Das Team arbeitet über eine Admin-Oberfläche, die per REST-Schnittstelle mit dem Master spricht.
Die Technik im Einzelnen
- Sprache
- Java 8 für alle Dienste, auf Linux-Servern
- Spielserver
- Spigot 1.8.8 mit eigenem Plugin, Pakete über ProtocolLib
- Proxys
- BungeeCord und Waterfall, je Standort
- Protokoll
- eigene Serialisierung auf Netty 4.1
- Daten
- MongoDB für Konten und Statistik, MySQL für Teile der Verwaltung
- Replays
- gepackt mit Zstandard, abgerufen per SFTP von einem eigenen Dateiserver
Was das Projekt zeigt
Gebaut für Last, selbst betrieben
Zwei Jahre lang waren im Schnitt rund 250 Spieler gleichzeitig online, rund um die Uhr, in der Spitze knapp 2.000. Die Technik dafür haben zwei Entwickler gebaut, Moderation und Support übernahm ein eigenes Team. Daher planen wir Systeme von Anfang an so, dass sie im Betrieb tragen, nicht nur in der Vorführung.
Verteilte Systeme mit klaren Wegen
Proxys, Spielserver und Steuerung an zwei Standorten, verbunden über ein eigenes Protokoll mit 88 Nachrichtentypen.
Sicherheit gehört zum Betrieb
Eine eigene Schutzschicht gegen Crash-Angriffe, und im Dezember 2021 kam der Schutz gegen die Log4Shell-Lücke dazu.
Gezählt, 2020 bis 2022
Aus der Datenbank des Netzwerks, 12. August 2020 bis 9. August 2022. Die Spitze stammt aus einer öffentlichen Serverliste.
1,06 Mio.
Spielerkonten haben sich zwischen 2020 und 2022 mit dem Netzwerk verbunden, genau 1.061.525.
1.992
Spieler gleichzeitig in der Spitze, öffentlicher Serverlisten-Rekord.
248
Spieler gleichzeitig im Schnitt über zwei Jahre, rund um die Uhr.
4,33 Mio.
Spielstunden zusammen in zwei Jahren
12.025
aktive Konten am stärksten Tag, mindestens
104.071
neue Spieler im stärksten Monat, Januar 2021
Aus dem Quellcode
Rund 200.000 Zeilen selbst geschriebener Java-Code, zu zweit entwickelt. Der größte Teil davon stammt von Jannik Nohn. Dazu 88 Nachrichtentypen im eigenen Protokoll und rund 15 selbst programmierte Spielmodi.
Pakete pro Sekunde
Wie viel in der Spitze über die Spielserver lief. Eine Schätzung, nicht gemessen: Der Code enthält keine Paketzähler.
230.000
Rund so viele Netzwerkpakete pro Sekunde liefen in der Spitze nach der mittleren Annahme, also Hunderttausende. Eine Schätzung nach dem Protokoll von Minecraft 1.8, nicht gemessen.
- Untere Annahme: rund 90.000 meist Duelle, wenige sichtbare Mitspieler, Abschlag für neuere Clients
- Mittlere Annahme: rund 230.000 etwa 5 sichtbare Mitspieler je Spieler
- Obere Annahme: rund 900.000 volle Arenen, etwa 15 sichtbare Mitspieler
Die Annahmen
- Knapp 2.000 Spieler, gestützt auf den Serverlisten-Rekord 1.992.
- Ein 1.8-Client sendet 20-mal je Sekunde ein Bewegungspaket.
- Je Spieler und Sekunde 21 bis 55 Pakete zum Server und 32 bis 390 zurück, je nach Zahl sichtbarer Mitspieler.
- Gerechnet an den Spielservern, ohne Verdopplung über die Proxys.
bis zu rund 40.000
Positionsdaten pro Sekunde prüfte die Schutzschicht in der Spitze auf Crash-Angriffe. Schätzung, Obergrenze.
Leistungen und Referenzen
Gespräch vereinbaren
Ihr System muss viele Nutzer gleichzeitig tragen? Schildern Sie das Vorhaben in zwei Sätzen.
Individuelle Software
Betriebssoftware, die zu Ihren Abläufen passt: Aufträge, Planung, Dokumente und Abrechnung in einem System.
Web-App-Entwicklung
Plattformen und Portale im Browser, vom ersten Entwurf bis zum laufenden Betrieb.
KeinBock.io: Lernplattform
Eigenes Produkt: Konzeption, Entwicklung und Betrieb
Molderings: Betriebsplattform
Referenz für einen Dachdeckerbetrieb am Niederrhein
MCP-Server und Schnittstellen
Fragen zu AntiAC
Ist AntiAC ein Kundenprojekt von Nohn IT?
Nein. AntiAC war ein früheres Projekt unseres Gründers Jannik Nohn aus der Zeit vor Nohn IT, bis 2022. Es ist kein Kundenprojekt der Jannik Nohn UG. Wir zeigen es, weil aus diesem Projekt unsere Erfahrung mit Last, Echtzeit und Betrieb stammt.
Welche Rolle hatte Jannik Nohn bei AntiAC?
Er war Mitgründer und einer von zwei Entwicklern, die die gesamte Technik ohne weitere Entwickler gebaut haben. Der größte Teil der rund 200.000 Zeilen Java stammt von ihm. Moderation und Support übernahm ein eigenes Team.
Wie belastbar sind die Zahlen auf dieser Seite?
Spielerkonten, Spielstunden und Tageswerte sind aus der Datenbank des Netzwerks für August 2020 bis August 2022 gezählt. Die Spitze von 1.992 gleichzeitigen Spielern ist ein öffentlicher Serverlisten-Rekord. Die Paketrate ist eine Rechnung nach dem Protokoll von Minecraft 1.8 und ausdrücklich nicht gemessen.
Was hat ein Spielnetzwerk mit Software für Unternehmen zu tun?
Die Aufgaben sind dieselben: viele gleichzeitige Nutzer, Daten, die stimmen müssen, Rechte für ein Team, Schutz gegen Angriffe und ein Betrieb, der rund um die Uhr läuft. Wer so ein System selbst gebaut und betrieben hat, plant von Anfang an für den Betrieb und nicht nur für die Vorführung.
Welche Technik steckte hinter AntiAC?
Alle Dienste waren in Java 8 geschrieben und liefen auf Linux-Servern. Die Spielserver liefen auf Spigot 1.8.8, die Proxys auf BungeeCord und Waterfall. Ein eigenes Protokoll auf Netty 4.1 verband alles mit der zentralen Steuerung, die Daten lagen in MongoDB und MySQL.
War AntiAC ein offizielles Minecraft-Produkt?
Nein. Minecraft ist eine Marke von Mojang. AntiAC war kein offizielles Minecraft-Produkt, nicht von Mojang oder Microsoft genehmigt und nicht mit ihnen verbunden.