Bugsmashers Episode 2

Hallo zusammen,

willkommen zu Episode 2 von Bugsmashers. Ich wurde noch nicht abgesetzt, das sind also gute Neuigkeiten. Vielen Dank euch, für all das Feedback und die Unterstützung von Episode 1. Wir haben alles durchgelesen, es durchkämmt, um herauszufinden, was ihr sehen möchtet, was ihr anders sehen wollt, solche Sachen. Wir werden also einige andere Sachen ausprobieren, hoffentlich werden wir wegen dieser neuen Dinge nicht abgesetzt. Man weiß nie, doch wir wagen einen Versuch. Los geht’s.

In Ordnung.

Hallo zusammen, in der ersten Episode von Bugsmashers erhielten wir eine Menge Feedback, das besagte: “Hey, wie bist du in der Lage das Spiel mehrfach laufen zu lassen?” Im Besonderen: “Was für wahnsinnige Hardware hast du?” Also, wie ihr sehen könnt, habe ich ein paar Instanzen des Spiels auf meinem dedizierten Server laufen. Läuft ziemlich gut für ein Entwicklungs-Build. Lasst mich euch zeigen, was ich hier habe.

Also ich habe den i7 3930, was im Grunde 6 Kerne mit 12 Threads sind, der mir erlaubt das Spiel ziemlich fehlerlos zu betreiben. Ist ziemlich gut. Und was meine Nvidia-Karte angeht, habe ich nur eine GTX 780, gar nicht so übel. Ich denke, ein paar von euch haben auch so eine. Funktioniert ganz gut.

Dogfight also … ich kann es sehr gut starten. Es ist der Hangar, der mein System außer Gefecht setzt, wenn ich ein paar davon geöffnet habe, aber es funktioniert trotzdem noch. Das System ist also ein kleines Biest. Und ich glaube die nächste Frage, die ihr hattet war: “Wie machst du deine Arbeit? Welche Werkzeuge benutzt du eigentlich?” Lasst es mich euch zeigen.

Also eines der Dinge, die oft passieren ist, dass das Spiel einfriert, wenn ich nicht Visual Studio geöffnet habe, sodass man den Standard Taskmanager benutzen muss. Doch wenn du dieses Extra-bisschen Information darüber brauchst, was im Inneren der Ressourcen und Threads vorgeht, dann möchtest du vielleicht einen fortgeschritteneren Explorer benutzen, und das zeigt dir, was auf deinem CPU, in jedem der Threads, vorgeht. Ein schönes kleines Bisschen an Extrainformationen.

Das nächste, was ich als Hilfsmittel benutze … ich habe eine Menge Ordner, die sich überall verteilen. Und wenn ich mehrere Explorer geöffnet habe, könnte meine Taskleiste total ausflippen.

Outtake

“Hallo zusammen, willkommen zu … Hallo zusammen, willkommen zu Episode 2 von Bugsmashers. Ich wurde noch nicht abgesetzt, was eine gute Neuigkeit ist … verdammt.”

Disco Lando: “Du wirst abgesetzt werden, wenn du das nicht hinkriegst.” *lacht*

“Ich werde abgesetzt!”

Was mir damit hilft ist dieses Ding, dass Total Commander heißt, was einem nicht nur erlaubt durch verschiedene Verzeichnisse zu tabben, sondern man kann auch mehrere Viewports haben und Dinge kopieren und einfügen, wie man möchte.

Das nächste Werkzeug, das ich habe – ihr habt es vielleicht schon in alten Episoden gesehen – ist der Netzwerkemulator. Dieser erlaubt mir Dialup, DSL und alle Arten von kuriosen Interneteinstellungen zu simulieren. Ich kann Pakete ausfallen lassen, ich kann Pakete verzögern, und all so Zeugs. Wenn ich also einen dedizierten Server auf einem andern Gerät laufen habe, dann kann ich zu diesem verbinden, als ob ich ein beschissenes Modem, oder so etwas ähnliches, verwenden würde. Dadurch können wir testen, wie robust unser Netzwerkbetrieb ist. Das ist ein ziemlich lustiges Werkzeug.

Das nächste, was ich habe ist Telemetry. Das ist ziemlich cool, da es mir zeigt, was in einem Frame passiert. Im Grunde sind das ein Haufen Threads, also das ist der Haupt-Thread und zwischen Frame 57 und 58 kann ich sehen, was passiert und was die meiste Zeit beansprucht um etwas zu berechnen. In diesem Fall ist es also ein älteres, älteres, älteres, altes Ding, dass … wo ist es … einiges an Zeit brauchte, 1300 Millisekunden, doch es war vielleicht im schnellen Debug, da es ein altes Profil ist.

Das nächste Werkzeug, dass ich hier habe ist Etwas, das Very Sleepy heißt. Dieses Hilfsmittel ist gut, wenn man die tieferen, inneren Abläufe sehen möchte, von dem was das eigene Programm auf jedem Thread macht. Wenn man also jemals einen Absturz im Physik-Tread hat, während man im Haupt-Thread ist, man sieht vielleicht ein Haufen Müll in Visual Studio, dann kann man also Very Sleepy starten, einen Blick auf den Prozess werfen, zum Physik-Thread wechseln, und sehen was passiert. Das ist ziemlich schön. Man sollte das nur für tiefsitzenden Probleme nutzen, da Visual Studio einem mehr Informationen zu einem Absturz liefert, als Very Sleepy, doch wenn Visual Studio einem keine Informationen geben kann, kann man von Very Sleepy zumindest ein paar erhalten.

Das nächste große Hilfsmittel, dass ich natürlich benutze ist Visual Studio. Und damit schreibe ich grundsätzlich den Code und compiliere ihn. Da wir einen riesigen Haufen von Projekten und Lösungsdateien und Millionen von Codezeilen haben (eines Tages werde ich das schaffen) braucht es sehr, sehr lange um sich aufzubauen. Es brauch ungefähr 45 Minuten um sich aufzubauen, was absurd ist. Darum haben wir dieses großartige Ding, dass Incredibuild heißt, was tatsächlich alle unsere Computer im Raum benutzt um das Spiel für mich aufzubauen. Also etwas, das normalerweise 45 Minuten erfordern würde, braucht nun 10 Minuten. Sehr schön.

Ein anderes witziges Werkzeug, das ich hier habe, ist Etwas, das Recode heißt. Wenn ich eigentlich im Spiel bin, kann ich den Quellcode ändern – etwa so – drücke Recode, es compiliert das und injiziert den neuen Code und betreibt dann das Spiel. Ich kann also live Änderungen vornehmen und sehen was passiert. Ich muss nicht das Spiel beenden, compilieren und zurück gehen. Das spart viel Zeit.

Die letzte Sache, die ich habe sind Productivity Power Tools. Diese geben mir hier einen Scrollbalken, ich kann einige kleine Texte betrachten, einige Warnungen ansehen und so weiter. Ich kann sogar in eine Email kopieren und einfügen und es formatiert das und behält die Farben. Das ist ein sehr raffiniertes Hilfsmittel für die Entwicklung.

Das waren also einige der Dinge. Ich hoffe es hat euch gefallen. Nun weiter zum Bug!

Hier habe ich also einen kleinen simplen Bug, der von Brandon Evans, einem HUD-Typen, gemeldet wurde. Er arbeitete an unserem kleinen Leistungs-Display wo, wenn man eigentlich alle Energie abzieht, das Triebwerk quasi ausschaltet, und ich flog, dann würden meine Manöverdüsen Leistung verlieren, doch sie wären immer noch funktionstüchtig. Das Pipe-System (Leitungssystem) meldete, dass sie okay wären, und so machten sie weiter, was ein großes Problem war.

Wenn ich in ein lustiges, kleines Pipe-Debuging gehe, und wir uns mein Fahrzeug-wippen anzeigen, und nur mein Fahrzeug-wippen. Es könnte ein bisschen verschwommen auf euren Monitoren sein, oder vielleicht ist es auch okay. Doch ihr seht im Grunde im oberen Teil – hier ist meine Maus – wenn ihr grundsätzlich auf diese Bereiche schaut, seht ihr, dass sie ihre Farben ändern. Dies sind die Datenbasen, jedes dieser grünen Dinge …

Outtake

“Ich nehme an, dass du eine Menge Änderungen machen wirst.”

Disco Lando: “Das mache ich immer.”

“Ausgezeichnet.”

… Das ist im Grunde eine Düse, und das Orangene und Rote darunter sind die Datenbasen, und die entleeren sich langsam. Und unter diesen Datenbasen ist eine weitere Reihe von Texten, die der Pipe-Status sind, welcher zeigt, dass sie in Ordnung sind. Also sobald die Datenbasis weg ist, und es im Grunde keine Energie mehr gibt, meldet die Pipe immer noch: ‘Alles gut’. Wie ihr also sehen könnt bin ich also immer noch in der Lager herumzufliegen und zu manövrieren. Nicht besonders gut, wie ihr euch vorstellen könnt, aber es ist immer noch möglich, was nicht gut ist. Ich sagte mir also: “Das ist seltsam, was passiert da?” Das Pipe-System scheint korrekt zu funktionieren, lasst uns einen Blick auf das Script werfen.

Ich ging in das Script und sah diese kleinen Ticks, genau hier. Und das sind die Pipe-Definitionen, und darin haben wir unsere Datenbasis und Stadien. Unsere Stadien sind grundsätzlich … ob ich fliege, oder im Standardstatus bin, ein Status sagt: ‘Hey, ich muss bla Energie anfragen.’

Outtake

“Wir nehmen diesmal wirklich auf, denke ich.”

In diesem Fall bezieht sich der Standardstatus, welcher jeden Standardstatus bedeutet, immer auf 0. Also wenn ich 0 erfrage und 0 erhalte, bin ich technisch gesehen immer noch in einem ‘guten’ Status, da ich erhielt, was ich erfragte. Was logisch gesehen Sinn ergibt. Doch wenn man eine Pipe hat, und man Energie erbitten möchte, dann kann man nicht wirklich 0 fordern.

Ich ging rüber zu den Designern und sagte: “Was macht ihr eigentlich?” Und anscheinend war das ein Bug, in der Weise wie das Script generiert wurde. Das wird behoben werden, doch in der Zwischenzeit änderte ich beide der Triebwerke so, dass sie zumindest ein kleines bisschen Energie akzeptieren. Lade meine Sachen neu, schlüpfe wieder ins Spiel.

Wie ihr sehen könnt … wir können einen Grünen auswählen, lasst uns gleich diesen nehmen, das ist ein Flex-Truster. Sein Status ist ‘Okay’, da er eine Datenbasis hat, doch seine normale Fähigkeit Zeug zu beziehen schlug fehl, er versucht also aus der Datenbasis zu schöpfen. Wir sind also im Moment ‘in Ordnung’, da die Datenbasis Energie hat, doch sobald sie verbraucht ist sollte alles rot werden, was bedeutet, dass wir nichts von der Energiequelle oder der Datenbasis bekommen, dadurch sollte ich aus meiner verrückten Drehung kommen.

Also setze ich diese Typen auf -10, sodass sie -10 Energie erhalten. Lasst uns in die Hornet hüpfen, die Energie wegnehmen. Auf Wiedersehen, Energie. In Ordnung, die Energie ist weg, schauen wir auf die Pipes, sie verbrauchen sich, und nun ist alles tot. Oder zumindest die Düsen.

Einer meiner Düsen hat noch immer Energie … ha, mein Haupttriebwerk, doch ich bin nicht mehr fähig zu drehen. Oh, ich kann nicht aus meiner Drehung herauskommen. Und das ist, was wir wollten: Man nimmt die Energie von den Manöverdüsen und fliegt immer weiter und weiter,weil es nichts gibt, dass einen aufhält, und jeder ist Newton’sche Physik.

Okay, ihr habt den heutigen kleinen Bug gesehen. Gutes altes Pipe-System, es macht immer Faxen. Doch dieses mal haben es die Designer verursacht, sodass die Pipe sagte: “Hey, ich brauche 0.” und dann erhält man 0, sodass man technisch gesehen das bekam, was man wollte, sodass die Manöverdüsen fähig waren herumzufliegen, selbst wenn sie 0 Energie hatten.

Mumpitz.

Das war also eine einfache kleine Korrektur in der XML. Die Designer werden das durchgehen und alles von da raus spülen, sodass diese Dinge startklar sind.

Ich Möchte nur noch sagen, dass ich all eure Fragen, Kommentare und Bedenken zur letzten Episode zu schätzen weiß. Ich kann es kaum erwarten, was ihr Leute zu dieser Episode sagt.

Falls ihr irgendwelche Fragen zur Spielentwicklung, Programmierung, Bugsmashing habt … alles was ihr euch im Bezug dazu vorstellen könnt. Sendet ein paar Fragen, vielleicht kann ich sie in der nächsten Episode beantworten. Bis dahin: see you in the ‘Verse.

Ist das noch aktuell?

Outtake

“Hallo zusammen, willkommen zurück zu einer weiteren Episode von *beeep*!”

Disco Lando: “Du kennst nicht mal den Namen der Show!”


// End Transmission

1 Kommentar

  • Avatar
    Blaubaer

    Hi,
    großes Lob an die Übersetzung auch wenn ich das Video mir schon angeschaut habe. Wahnsinn, was hier für eine Energie reingesteckt wird. Super Forum und weiter so.

    Grüße
    Blaubär

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.