Dota 2 News - Zwischen den Spuren: Eine Bombe entschärfen
Es gibt eine neue News zu dem Steam Game Dota 2 vom 27.07.2023. Folgendes hat dabei der Entwickler von Dota 2 veröffentlicht:
Vorstellung von "Between the Lanes", einer neuen Blog-Funktion, bei der Mitglieder unseres Entwicklungsteams über Herausforderungen, Fehlerbehebungen und gelegentliche glückliche Zufälle berichten, die wir bei der Arbeit an einem so einzigartigen Spiel wie Dota erleben.
Jedes Dota-Update gibt uns die Möglichkeit, neue Helden, Gegenstände und Fähigkeiten in das Spiel einzuführen - ganz zu schweigen von unzähligen Anpassungen alter Elemente. Dadurch entwickelt sich Dota ständig weiter, bringt aber auch eine unermessliche Anzahl potenzieller Interaktionen mit sich. Während dies bedeutet, dass es in jedem Spiel immer etwas Neues zu erleben gibt, erhöht es auch die Wahrscheinlichkeit, dass einige unserer Änderungen gelegentlich den ein oder anderen Fehler einführen. Oder zwanzig.
Glücklicherweise experimentiert und erkundet die Dota-Community ständig und entdeckt versteckte Vorteile, neue Metas und sogar spielbrechende Fehler, die selbst uns überraschen.
Der Fehler mit den klebrigen Bomben der Techies ist ein perfektes Beispiel dafür. Die Wurzeln des Fehlers wurden bereits im letzten Jahr mit dem Techies-Update gelegt, als wir eine Überarbeitung ihrer Fähigkeiten und Spielweise enthüllten. Diese Überarbeitung führte zu einem Fehler, bei dem die klebrigen Bomben der Techies nicht abgelaufen sind und in einigen Fällen vom Spieler kontrolliert werden konnten. Interessanterweise konnte der Fehler aufgrund der Spielparameter zu dieser Zeit jedoch nicht in einem Match auftreten. Also blieb er ruhend, bis die Twin Gates mit dem Update "The New Frontiers 7.33" im Frühjahr dieses Jahres erschienen.
Plötzlich konnten Techies-Spieler gesteuerte klebrige Bomben erstellen, die sie über die Karte bewegen konnten und unbegrenzt tödliche Sprengstoffe auf feindliche Spieler regnen ließen. Das war... ein gewisser Vorteil. Es dauerte also nicht lange, bis wir auf unserem GitHub Gerüchte darüber hörten.
Ein häufiges Muster in der Gameplay-Programmierung im Allgemeinen und insbesondere in Dota besteht darin, etwas Neues zu schaffen (das das Spiel nicht zerstört), indem man etwas Ähnliches findet, das bereits existiert (und funktioniert und das Spiel nicht zerstört) und es als Ausgangspunkt für Änderungen verwendet. Die klebrigen Bomben basierten auf den klassischen Fernminen der Techies. Ihr werden als Beschwörung eines "npc_dota_techies_remote_mine" implementiert - demselben Basistyp des alten Fernminen-NPC.
Die klebrigen Bomben der Techies nutzen eine "Wurf"/"Verfolgung"/"Countdown bis zur Explosion"-Sequenz, die von einer Reihe von serverseitigen Modifikatoren (Buffs) am NPC verwaltet wird, um die Bewegung und das Verhalten der Einheit in jedem Schritt der Sequenz zu steuern. Die Modifikatoren "Verfolgung" und "Countdown" verhinderten Spielerbefehle über Zustandsflags im Modifikator selbst. Der Modifikator "Wurf" verhinderte viele Arten von Spielerbefehlen aufgrund seiner Funktion als Bewegungssteuerung sowie der Natur des npc_dota_techies_remote_mine selbst (insbesondere dass der NPC die Angriffsfähigkeit DOTA_UNIT_CAP_NO_ATTACK hat).
Da Fernminen von Techies manuell durch eine Fähigkeit an der Mine selbst gezündet werden konnten, durfte der Fernminen-NPC Fähigkeiten verwenden. Das bedeutet, dass er sowohl als im Besitz des ausführenden Spielers (für Tötungspunkte) als auch als vom ausführenden Spieler steuerbar markiert war. Das Rechtsklicken auf ein Twin Gate (oder eine andere kanalisierbare Kartenentität) funktioniert mechanisch, indem ein Angriffsklick in einen Fähigkeitszauber auf das Kanalziel umgewandelt wird (man "zaubert" auf das Twin Gate während des Kanalisierens). Andere Kartenentitäten erfordern einen Helden, der die Kanalisierung durchführt. Da Roshan die Twin Gates verwenden kann, dürfen Nicht-Helden-Einheiten sie kanalisieren.
Damit kommen wir zum Fehler mit den klebrigen Bomben: Während der sehr kurzen Dauer, in der eine klebrige Bombe in der Luft ist, nachdem sie geworfen wurde, wenn ein Spieler sowohl auf ein Twin Gate als auch auf Techies und die Bombe mit vereinheitlichten Einheitenbefehlen geklickt hat, würde die Bombe auch das Twin Gate kanalisieren. Dadurch geriet die klebrige Bombe in einen Kanalisierungszustand, der den "Wurf" beendete und die Sequenz der Modifikatoren unterbrach, was zu unerwünschtem Verhalten führte.
Die Lösung, sobald all dies verstanden war, war ziemlich einfach. Die klebrige Bombe muss vom ausführenden Spieler nicht kontrollierbar sein. Durch Entfernen dieser Markierung von der Bombe wurde die erwartete Sequenz der Modifikatoren immer wie vorgesehen ausgeführt, was schließlich zur Detonation führte.
Wie bei so vielen Fehlern besteht 99% der Zeit, die für die Behebung aufgewendet wird, normalerweise darin, ihn zu finden. Die eigentliche Lösung reduziert sich in der Regel auf eine einzige Zeile Code - möglicherweise dieselbe Zeile Code, die Ihr geschrieben haben, um einen früheren Fehler zu beheben. (Deshalb wird oft gesagt, dass das Debuggen von Code wie das Lösen eines Mordes ist, bei dem man sowohl der Mörder als auch der Detektiv ist.)
Also: So wurde der Fehler mit den klebrigen Bomben versehentlich eingeführt, das kurzzeitige Chaos, das er verursachte, und wie er von der Community bemerkt und behoben wurde. Was passiert als Nächstes? Nun, jetzt warten wir ab, um herauszufinden, welchen neuen Fehler wir durch das Löschen dieser Codezeile zur Behebung des ursprünglichen Fehlers verursacht haben. Wenn Ihr darauf stoßen, sehen wir uns auf GitHub.
Jedes Dota-Update gibt uns die Möglichkeit, neue Helden, Gegenstände und Fähigkeiten in das Spiel einzuführen - ganz zu schweigen von unzähligen Anpassungen alter Elemente. Dadurch entwickelt sich Dota ständig weiter, bringt aber auch eine unermessliche Anzahl potenzieller Interaktionen mit sich. Während dies bedeutet, dass es in jedem Spiel immer etwas Neues zu erleben gibt, erhöht es auch die Wahrscheinlichkeit, dass einige unserer Änderungen gelegentlich den ein oder anderen Fehler einführen. Oder zwanzig.
Glücklicherweise experimentiert und erkundet die Dota-Community ständig und entdeckt versteckte Vorteile, neue Metas und sogar spielbrechende Fehler, die selbst uns überraschen.
Der Fehler mit den klebrigen Bomben der Techies ist ein perfektes Beispiel dafür. Die Wurzeln des Fehlers wurden bereits im letzten Jahr mit dem Techies-Update gelegt, als wir eine Überarbeitung ihrer Fähigkeiten und Spielweise enthüllten. Diese Überarbeitung führte zu einem Fehler, bei dem die klebrigen Bomben der Techies nicht abgelaufen sind und in einigen Fällen vom Spieler kontrolliert werden konnten. Interessanterweise konnte der Fehler aufgrund der Spielparameter zu dieser Zeit jedoch nicht in einem Match auftreten. Also blieb er ruhend, bis die Twin Gates mit dem Update "The New Frontiers 7.33" im Frühjahr dieses Jahres erschienen.
Plötzlich konnten Techies-Spieler gesteuerte klebrige Bomben erstellen, die sie über die Karte bewegen konnten und unbegrenzt tödliche Sprengstoffe auf feindliche Spieler regnen ließen. Das war... ein gewisser Vorteil. Es dauerte also nicht lange, bis wir auf unserem GitHub Gerüchte darüber hörten.
Ein häufiges Muster in der Gameplay-Programmierung im Allgemeinen und insbesondere in Dota besteht darin, etwas Neues zu schaffen (das das Spiel nicht zerstört), indem man etwas Ähnliches findet, das bereits existiert (und funktioniert und das Spiel nicht zerstört) und es als Ausgangspunkt für Änderungen verwendet. Die klebrigen Bomben basierten auf den klassischen Fernminen der Techies. Ihr werden als Beschwörung eines "npc_dota_techies_remote_mine" implementiert - demselben Basistyp des alten Fernminen-NPC.
Die klebrigen Bomben der Techies nutzen eine "Wurf"/"Verfolgung"/"Countdown bis zur Explosion"-Sequenz, die von einer Reihe von serverseitigen Modifikatoren (Buffs) am NPC verwaltet wird, um die Bewegung und das Verhalten der Einheit in jedem Schritt der Sequenz zu steuern. Die Modifikatoren "Verfolgung" und "Countdown" verhinderten Spielerbefehle über Zustandsflags im Modifikator selbst. Der Modifikator "Wurf" verhinderte viele Arten von Spielerbefehlen aufgrund seiner Funktion als Bewegungssteuerung sowie der Natur des npc_dota_techies_remote_mine selbst (insbesondere dass der NPC die Angriffsfähigkeit DOTA_UNIT_CAP_NO_ATTACK hat).
Da Fernminen von Techies manuell durch eine Fähigkeit an der Mine selbst gezündet werden konnten, durfte der Fernminen-NPC Fähigkeiten verwenden. Das bedeutet, dass er sowohl als im Besitz des ausführenden Spielers (für Tötungspunkte) als auch als vom ausführenden Spieler steuerbar markiert war. Das Rechtsklicken auf ein Twin Gate (oder eine andere kanalisierbare Kartenentität) funktioniert mechanisch, indem ein Angriffsklick in einen Fähigkeitszauber auf das Kanalziel umgewandelt wird (man "zaubert" auf das Twin Gate während des Kanalisierens). Andere Kartenentitäten erfordern einen Helden, der die Kanalisierung durchführt. Da Roshan die Twin Gates verwenden kann, dürfen Nicht-Helden-Einheiten sie kanalisieren.
Damit kommen wir zum Fehler mit den klebrigen Bomben: Während der sehr kurzen Dauer, in der eine klebrige Bombe in der Luft ist, nachdem sie geworfen wurde, wenn ein Spieler sowohl auf ein Twin Gate als auch auf Techies und die Bombe mit vereinheitlichten Einheitenbefehlen geklickt hat, würde die Bombe auch das Twin Gate kanalisieren. Dadurch geriet die klebrige Bombe in einen Kanalisierungszustand, der den "Wurf" beendete und die Sequenz der Modifikatoren unterbrach, was zu unerwünschtem Verhalten führte.
Die Lösung, sobald all dies verstanden war, war ziemlich einfach. Die klebrige Bombe muss vom ausführenden Spieler nicht kontrollierbar sein. Durch Entfernen dieser Markierung von der Bombe wurde die erwartete Sequenz der Modifikatoren immer wie vorgesehen ausgeführt, was schließlich zur Detonation führte.
Wie bei so vielen Fehlern besteht 99% der Zeit, die für die Behebung aufgewendet wird, normalerweise darin, ihn zu finden. Die eigentliche Lösung reduziert sich in der Regel auf eine einzige Zeile Code - möglicherweise dieselbe Zeile Code, die Ihr geschrieben haben, um einen früheren Fehler zu beheben. (Deshalb wird oft gesagt, dass das Debuggen von Code wie das Lösen eines Mordes ist, bei dem man sowohl der Mörder als auch der Detektiv ist.)
Also: So wurde der Fehler mit den klebrigen Bomben versehentlich eingeführt, das kurzzeitige Chaos, das er verursachte, und wie er von der Community bemerkt und behoben wurde. Was passiert als Nächstes? Nun, jetzt warten wir ab, um herauszufinden, welchen neuen Fehler wir durch das Löschen dieser Codezeile zur Behebung des ursprünglichen Fehlers verursacht haben. Wenn Ihr darauf stoßen, sehen wir uns auf GitHub.
Die vollständige News zu Zwischen den Spuren: Eine Bombe entschärfen findet ihr auf der Dota 2 Steam Seite