Was sind die typischen Alltagsaufgaben eines Einsteiger-Spieleprogrammierers? [geschlossen]


64

Was ich wissen möchte, ist: Was sind die täglichen Aufgaben eines Diplom-Programmierers am Arbeitsplatz der Spielebranche? Codiert, analysiert, entwirft oder was?

Danke.

PS: Ich bin im Moment in meinem zweiten Studienjahr und arbeite daran, mich auf Spieleprogrammierung zu spezialisieren, insbesondere auf Gameplay, Tools oder UI-Programmierung.

Antworten:


103

Aufgrund meiner Erfahrung (in den USA wurde ich für ein Projekt angestellt, das gerade aus dem Prototyping hervorgegangen war und aus einem Team von etwa 50 Personen bestand), wurde es dann abgesagt und wir machten im Laufe der vier Jahre zwei weitere Spiele war dort mit einer Gesamtentwicklerbasis von ca. 200),

  • Sie werden wahrscheinlich ungefähr 50-70% Ihrer Zeit mit Programmieren verbringen. In dieser Zeit schließe ich das 'lustige Zeug' mit ein, wie das Erlernen einer wirklich cleveren Funktion sowie die Zeiten, in denen Sie 8 Stunden lang auf einen Speicherauszug starren, um herauszufinden, was abgestürzt ist. Möglicherweise sind 25-50% davon tatsächliche Langform-Programmierung, wenn Sie sich an Ihre Tastatur setzen und in die Zone einsteigen.
  • Weitere 15-25% in Meetings und administrativen Aufgaben, wie Bug Triage, Meetings über Bug Triage, Planung, Dokumentation auf hoher Ebene für andere Programmierer und Produzenten, E-Mail, Updates des gesamten Projekt- / Firmenstatus und so weiter. Dies hängt davon ab, wie viel Autonomie Sie haben. Wenn Sie keine Autonomie haben, müssen Sie mehr Zeit für die Programmierung aufwenden, da Sie weniger Zeit für die Festlegung Ihres eigenen Zeitplans benötigen. Wenn Sie mehr Kontrolle über Ihren Zeitplan haben, können Sie vielleicht an interessanteren Dingen arbeiten, aber dann müssen Sie Zeit damit verbringen, diese Dinge zu tun.
  • Weitere 15-25% helfen Designern / Künstlern, nehmen an kreativen Meetings zum Spiel teil, halten sich mit den Dokumenten zum Spieldesign auf dem Laufenden und so weiter.

Wenn Sie in der Gehaltsklasse aufsteigen, wird die Zeit, die Sie mit Programmieren verbringen, wahrscheinlich sinken . Sie müssen mehr administrative Entscheidungen treffen, weniger erfahrene Mitarbeiter im Team unterstützen und mehr Zeit für die Dokumentation sowie die Überprüfung von Code und Architektur aufwenden. Auf der positiven Seite wird die Qualität der Programmierung wahrscheinlich steigen; Sie werden an interessanteren Funktionen (und frustrierenderen Fehlern) arbeiten.

Ob die Zeit, die Sie damit verbringen, Designern und Künstlern zu helfen, steigt, sinkt oder sich nicht wirklich ändert, hängt von dem Bereich ab, in dem Sie arbeiten möchten. Wenn Sie an der Benutzeroberfläche, den Tools und dem Gameplay arbeiten möchten, müssen Sie damit rechnen, dass diese Zeit zunimmt auf über 50%, wenn Sie mehr Erfahrung sammeln. Sie setzen sich mit erfahrenen Designern zusammen, um neue Tools zu planen und zu testen und zu sehen, wie sie die vorhandenen verwenden. Leider kommt diese Zeit auch aus Ihrem Programmierplan.


Nicht ganz so, wie ich es mir erinnere, aber es hilft, wenn dein Trainingspartner dir tatsächlich Dinge
beibringt ;-)

@coderanger: Ich glaube keiner von uns hat viel Hilfe von unserem Trainingspartner bekommen. ;)

26

Abgesehen von den Diskussionspunkten auf hoher Ebene, die Joe angesprochen hat, gibt es noch ein paar andere Dinge, die Sie beachten sollten.

  • In der Regel verwenden Sie eine Art Fehlerverfolgungs- oder Aufgabenverfolgungstool, mit dem Ihr Lead Ihnen Aufgaben zuweist. Manchmal sind sie gleich (zB FogBugz). Manchmal wird Ihre Fehlerliste durch einen Herausgeber geführt und Ihre Aufgabenliste befindet sich in einem internen Wiki. Sie setzen sich nicht einfach hin und fangen an, was auch immer zu tun , Ihre Aufgaben werden geleitet.
  • Manchmal werden Sie gebeten, Ihre Aufgaben einzuschätzen. Dies ist implizit bei der Verwendung von Systemen wie FogBugz. Ein Teil Ihrer Verantwortung wird / sollte / kann darin bestehen, ein übergeordnetes Feature in Teile zu zerlegen, mit denen Sie richtig abschätzen können, wie lange es dauern würde, um zu sehen, wie weit Sie beim Erreichen von Meilensteinen sind usw.
  • Viele Studios sind zu agileren / scrumm-artigen Methoden übergegangen. Das Aktualisieren von Burn-Down-Diagrammen (dh Sie haben X Stunden mit Aufgabe Y verbracht und erwarten, dass dies in Z-Zeit erledigt wird) ist weit verbreitet. Tägliche Stand-up-Meetings sind wahrscheinlich etwas häufiger. In beiden Fällen erhalten Sie einen Überblick darüber, woran Sie arbeiten.
  • Sie verwenden die Versions- / Quellcodeverwaltung. Je größer das Studio, desto wahrscheinlicher ist es, dass sie Perforce verwenden. Sie sollten die Grundlagen kennen (Auschecken von Dateien, Festschreiben von Dateien, Beheben lokaler Zusammenführungskonflikte). Möglicherweise müssen Sie auch das Verzweigen und Zusammenführen von Zweigen verstehen. In einigen Studios erhalten alle Entwickler ihre lokale Niederlassung, und Sie können so viel einchecken, wie Sie möchten, und bei der Zusammenführung Ihrer Niederlassung. In anderen (unseren) Studios gilt lediglich die Richtlinie "Nicht unterbrechen". Sie müssen also sicherstellen, dass Sie ein Update durchführen, einen kurzen Test durchführen, um sicherzustellen, dass Sie nichts unterbrechen, und dann einchecken. In einigen Studios ist dies nicht der Fall Diese Politik und die Leute brechen die ganze Zeit die Scheiße und es ist super nervig und man muss lernen, wie man das umgeht.
  • Codeüberprüfungen sind ziemlich häufig. Manchmal sind sie Code-Abteilung-weit. Unser Team verwendet einen Code-Buddy-Ansatz, bei dem die Überprüfung der Eincheckvorgänge eins zu eins erfolgt. In jedem Fall sollten Sie erwarten, dass Sie gebeten werden, den Code anderer Personen kritisch zu analysieren.

11

Ich habe gerade ein 4-monatiges Praktikum bei der Arbeit an einem sehr großen Spiel beendet. Das Projekt war sehr spät, als ich dort ankam, also war das meiste, was ich tat, die Fehlerbehebung. Das wäre wahrscheinlich sowieso ein anständiger Teil meiner Zeit gewesen ... indem ich meine Erfahrung mit dem Programmieren genutzt hätte, um Fehler zu beheben, anstatt meine Unerfahrenheit mit der Spieleentwicklung, um Features zu entwerfen oder zu entwickeln.

Vieles von dem, was ich getan habe, hing auch mit der IT zusammen. Die Entwicklung interner Tools war eine große Sache - einige, um direkt bei der Entwicklung von Spielen zu helfen, andere, um Dinge zu automatisieren, die zuvor manuell gemacht wurden. Und natürlich Fehlerbehebungen für andere Tools, einschließlich des Microsoft Games for Windows Live-Installationsprogramms.

Das Testen von Spielen war ein weiterer anständiger Teil, und ich war auch dafür verantwortlich, einige der Builds zu erstellen, die an die Testspieler weitergegeben wurden. Bugs in der Spielwelt sind ziemlich schwer zu finden und erfordern viel Arbeit, um die Ursache herauszufinden.

Ich habe mich nicht auf Spiele oder Grafiken spezialisiert. Vermutlich hängt jede Aufgabe, die Sie erledigten, mehr mit Ihrem Fachwissen zusammen. Aber ich hoffe es gibt dir eine Idee.


4

Mein letztes Jahr Projekt ist auf HTML5 Canvas Element. Derzeit arbeite ich in den letzten zwei Monaten an einem Praktikum, in dem ich ein vorhandenes Flash-Spiel auf HMTL5-Canvas portieren muss.

Nach allem, was ich Ihnen über mein Leben hier erzählen kann, ist es hart. Das Anforderungsteam hat sehr spezifische Anforderungen. Welcher Mausklick soll was bewirken, wie sollen die Effekte auf das Spiel wirken. Unabhängig davon, wie schwierig es für den Programmierer ist, selbst wenn es um dümmste Anforderungen geht, muss darauf reagiert und schließlich die Anforderungen umgesetzt werden. Die Fehlerberichterstattung beginnt. Gott ist das ärgerlich. Es geht einem langsam auf die Nerven. Ein Offset von 1px für einen Klick kann dein Leben zur Hölle machen, vertrau mir! Dies kann eine neue Strukturierung Ihres gesamten Positionierungs- und Interaktionsraums bedeuten, damit Sie Ihren Launen und Vorstellungen gerecht werden können.

Aber es macht auch Spaß! :) Die Freude am Schreiben dieser wirklich intelligenten Funktion, die mit der Community interagiert, wie Sie eine Funktion erstellen können, die Flash automatisch ausführt. Alles davon. In Zeiten wie diesen bereust du es nicht, diesen Job zu haben. Es fühlt sich an wie der beste Job der Welt und für meine Neffen der coolste der Welt.

Ein normaler Tag in meinem Job würde also vorbeikommen, um eine Funktion zu implementieren. Nach dieser einen Funktion suchen, die eine Funktion ermöglicht. Den Code zum Teufel rausholen. Den Code reparieren. Besprechen Sie mit der Community, wie dieser Code optimiert werden kann. Dann schreiben, was ich für das beste Programm der Welt halte: P

Am Ende des Tages bin ich meistens zufrieden mit dem, was ich erreicht habe, und manchmal bin ich immer noch gespannt, wo ich es besser hätte machen können und was ich anders hätte tun und das perfektionieren können. Ich bin gerade in der Anfängerphase und daher kann ich dich vielleicht nicht beraten, wie es in der Zukunft wird, aber ab sofort. Ich denke, ich muss den coolsten Job machen :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.