Learn · modules
Was ist DevTest in einem Minecraft-Client?
DevTest ist ein verbliebenes Entwicklermodul bei einigen Kunden, das erstellt wurde, um unfertigen Code zu testen, und nicht, um Spielern eine echte Funktion oder Einstellung zu bieten.
Was ist DevTest in Minecraft?
DevTest ist ein Modul, das man gelegentlich in der Modulliste eines Clients findet, ohne dass eine klare Aufgabenbeschreibung vorliegt. Es ist weder eine Variante von KillAura noch ein getarntes Aim-Bot: Es handelt sich um einen Rest-Hook, den Entwickler nutzen, um unfertigen Code während des Aufbaus des Clients zu testen. Da es für die Personen geschrieben wurde, die die Software ausliefern, und nicht für die Spieler, hat DevTest kein konsistentes Verhalten. Was es in einer bestimmten Version macht, hängt vollständig davon ab, was die Entwickler beim letzten Bearbeiten debuggt haben, und das kann sich zwischen Versionen oder sogar zwischen zwei Builds derselben Version ändern.
Die meiste Zeit sitzt DevTest in der Modulliste als Platzhalter, der entweder nichts tut oder etwas tut, das niemand sich die Mühe gemacht hat zu kennzeichnen. Es ist das Programmieräquivalent zu einem Kommentar wie "TODO: vor der Veröffentlichung entfernen", der die Qualitätssicherung passiert hat.
Wie DevTest funktioniert
DevTest hat keine feste, für den Spieler sichtbare Funktion, da dies nie der Sinn dahinter war. Entwickler verbinden das Modul mit dem, woran sie gerade arbeiten: einem neuen Render-Pfad, einem Packet-Handler, Bewegungscode oder einfach einem Testbereich, um zu bestätigen, dass etwas ohne Absturz des Clients läuft.
Deshalb neigt es auch dazu, in einem abgenutzten Zustand ausgeliefert zu werden. Es gibt keine Einstellungen, eine leere Beschreibung oder Platzhaltertext, wo ein echtes Modul sich selbst erklären würde. Das Aktivieren in einer Release-Version kann überhaupt nichts bewirken. Es kann auch beliebigen Testcode ausführen, den die Entwickler vergessen haben, vor der Auslieferung zu entfernen.
Client-Entwickler verlassen sich auf einen Modul-Slot wie diesen, weil ein Großteil dessen, was sie testen, nur gegen einen echten Server korrekt funktioniert, nicht gegen eine Sandbox. Ein schneller Ein-/Ausschalter im laufenden Client ist besser, als für jedes Experiment einen separaten Build aufzusetzen. Wenn der Client ausgeliefert wird, bleibt der Slot manchmal einfach in der Liste, weil das Entfernen zusätzliche Arbeit bedeutet oder weil das Team plant, ihn im nächsten Entwicklungszyklus wiederzuverwenden.
Warum es überhaupt existiert
Die meisten Client-Arbeiten erfolgen gegen echte Server. Das Testen eines neuen Bewegungsmoduls oder eines Render-Hooks erfordert, zu sehen, wie es sich gegen tatsächliche Anti-Cheat-Prüfungen und das Verhalten echter Spieler verhält, und nicht nur den Code zu laden und zu hoffen, dass er funktioniert. DevTest ist der Slot dafür. Entwickler verbinden ihn mit dem, was sie gerade bauen, starten den Client und testen gegen einen Live-Server.
Wenn der Build ausgeliefert wird, wird DevTest entweder bereinigt oder bleibt erhalten, weil es schneller ist, ihn an Ort und Stelle zu lassen, um den nächsten Testzyklus zu beschleunigen, als ihn zu entfernen, ihn nächste Woche wieder hinzuzufügen und ihn erneut zu konfigurieren.
Ist es sicher, es zu verwenden
Es gibt hier keine einzelne Antwort, denn DevTest ist keine Funktion mit einem einzigen Verhalten, sondern ein Platzhalter. Wenn es in deinem Build inaktiv ist, ändert das Umschalten nichts und birgt keinen größeren Risiken als jede andere ungenutzte Einstellung. Wenn es jedoch mit Testcode für etwas wie Paketmanipulation oder eine halbfertige Bewegungsschummele verbunden ist, kann das Aktivieren Verhalten auslösen, das nie gegen einen Anticheat eines echten Servers getestet wurde, weil es nie in einem echten Spiel laufen sollte.
Behandle ein unbeschriftetes Entwicklermodul als unvorhersehbar. Gehe nicht davon aus, dass es ein harmloser, inaktiver Schalter ist, und gehe auch nicht davon aus, dass es sich um eine geheime Funktion handelt. Es ist keines von beidem, bis du weißt, worauf der Build es eingestellt hat.
Was Produktionskunden stattdessen tun
Ein fertiger Client versendet Module mit Namen, die etwas bedeuten, Beschreibungen, die dem entsprechen, was sie tatsächlich tun, und Einstellungen, die sich so verhalten, wie sie beschriftet sind. Wenn eine Funktion nicht bereit ist, wird sie nicht in einem Build ausgeliefert. Wenn sie ausgeliefert wird, liegt das daran, dass die Entwickler Vertrauen in das haben, was sie tut, und bereit sind, es zu dokumentieren.
FAQ
Es hat keine feste Funktion. Es ist ein Platzhalter, den Entwickler für das verwenden, was sie gerade testen oder debuggen, wiederverwenden, sodass sich sein Verhalten von Build zu Build ändert und selten dokumentiert ist.
Nein. Es ist ein Überbleibsel aus der Entwicklung und wurde nicht als werkzeugorientiertes Element für Spieler konzipiert. Die meisten Builds werden ohne nennenswerte Einstellungen oder Beschreibungen ausgeliefert.
Es hängt vollständig davon ab, was die Entwickler beim Bau integriert haben. Ein inaktives DevTest tut nichts. Eines, das noch an unfertigem Exploit-Code gebunden ist, kann vor einem Servers Anti-Cheat unvorhersehbar reagieren.
Da das Entfernen zusätzlichen Reinigungsaufwand bedeutet und die meisten Entwickler planen, denselben Slot im nächsten Update-Zyklus erneut für Tests zu verwenden.