Wie viele von euch bereits wussten, ist das neue ATB bereits seit Monaten in der Entwicklung. Und Entwicklung ist hier durchaus wörtlich zu nehmen. Das Ding ist eine professionelle Eigenentwicklung mit locker 8 Mannwochen Aufwand, die investiert wurden.
Das ATB hat derzeit folgende Features:
- Sortierung basierend auf einem Skill-Wert und darauf, ob der Spieler bereits vor kurzem gewechselt wurde
- Ein Team, was zurück liegt, bekommt "mehr Skill" als das führende Team
- Skill-Wert basiert auf der aktuellen Score des Spielers sowie den gameME-Statistiken
- Nach dem Warm-UP wird einmalig sortiert rein anhand der Statistiken in der gameME-Statistiken
- Spieler sind nach einem Wechsel am Ende der Runde unverwundbar
Auf der technischen Seite arbeitet das neue ATB mit einen evolutionären Sortieralgorithmus - also ein an der natürlichen Auslese (Evolution) angelehntes Optimierungsverfahren (mit näherungsweiser Lösung). Als grobe Orientierung diente das Paper "
A Genetic Algorithm to Solve the Multidimensional Knapsack Problem".
Der Sortieralgorithmus selbst wurde komplett in C++ geschrieben und entwickelt. Letztlich wurde auf dieser Code-Basis eine Extension in Sourcemod eingefügt. Diese Extension im Gegensatz zu einem Plugin hat den Vorteil, dass wir den Code nicht von C++ nach Sourcepawn portieren mussten. Eine etwaige Portierung hätte auch für so viele Probleme (Arbeit, mehr Code-Komplexität, schlechtere Performance) gesorgt, die so umgangen wurden. Als Trade-Off pflegen wir nun zwei verschiedene Teile: Eine Extension in C++ und ein Plugin in Sourcepawn, was diese ansteuert.
Bitte erwartet nicht, dass alles sofort rund läuft. Hier und da müssen wir noch die Settings tweaken, was in den kommenden Tagen und Wochen passieren wird. Deswegen ist Feedback ausdrücklich erwünscht.