Was sind die grundlegenden Fähigkeiten, die ein professioneller Spielprogrammierer haben muss? [geschlossen]

11

Ich habe eine sehr allgemeine Frage, die mich stört, aber ich möchte zuerst einige Details hinzufügen. Ich bin ein Java-Kernprogrammierer. Ich habe zum Spaß einige kleine Spiele in Java erstellt. Je mehr ich mich mit professioneller Spieleentwicklung beschäftige, desto verwirrter werde ich. Dies liegt daran, dass ich immer dann, wenn ich über einige Spieleentwicklungsthemen google oder Foren usw. besuche, auf verschiedene Vorschläge stoße.

Einige werden sagen, dass C ++ gut ist, während andere sagen werden, dass JAVA besser sein könnte, während andere sagen werden, dass eine andere Sprache die Ur-Sprache ist, wie Python, Lua, UnrealScript usw. Außerdem wird empfohlen, dass man Kenntnisse darüber haben sollte Spiel-Engines wie Unreal, Torque, Blender, Panda usw. und Kenntnisse in OpenGL, AI und Kollisionserkennung sind erforderlich. Ich habe sogar ein Spiel mit Android SDK erstellt.

Was ich fragen möchte ist:

  • Was sind die grundlegenden Fähigkeiten, die ein professioneller Spielprogrammierer haben muss? Ist es eine 1 Programmiersprache + 1 Skriptsprache + 1 Game Engine Wissen + OpenGL? (Puh!!)
  • Wenn ich als Gameplay-Programmierer oder KI-Programmierer in die Spielebranche einsteigen möchte, kann ich dann mit meinen aktuellen Fähigkeiten und meinem Portfolio (wie oben angegeben) darauf zugreifen?
  • Reicht das Erlernen einer Programmiersprache für die Spieleentwicklung aus?

Jede Richtlinie wird hilfreich sein.

GamDroid
quelle

Antworten:

6
  1. Sie sollten mit mindestens einer Programmiersprache kompetent und kompetent sein. Auf diese Weise können Sie andere Sprachen leichter erlernen. Die Art der Stelle, für die Sie sich bewerben, hängt davon ab, welche Sprache Sie wahrscheinlich vorher kennen sollten. Die meisten auf PC und Konsole veröffentlichten Triple-A-Titel werden höchstwahrscheinlich in C ++ entwickelt. Mobile Anwendungen und Spiele hingegen verwenden höchstwahrscheinlich Java (Google Android und andere Telefone) oder Objective-C (iPhone). Wenn Sie sich in Stellenangeboten für Softwareentwickler auf Entwickler-Websites umschauen, wird in der Regel angegeben, welche Spracherfahrung Sie benötigen. Zum Beispiel "Kompetent und kompetent in C ++" oder "Erfahrung mit C ++ seit mindestens zwei Jahren". Das Erlernen einer Skriptsprache wird Ihnen nicht schaden. Es wird nur Ihnen zugute kommen. Lernen kommt immer zugute, Sie müssen keine Kenntnisse über eine Spiel-Engine haben, aber wenn Sie sich bei einem Unternehmen bewerben, das diese spezielle Engine verwendet, hilft dies Ihnen wahrscheinlich bei der Wiederaufnahme. Wenn Sie ein Experte für die Source-Engine sind, sich jedoch für ID-Software bewerben und nichts über die ID-Tech-Engines wissen, ist dies nicht wirklich hilfreich (aber das Lernen von Vorteil ist immer von Vorteil).

  2. Wenn Sie Projekte von Anfang bis Ende abgeschlossen haben und zeigen, dass Sie Projekte abgeschlossen haben, würde dies Ihrer Meinung nach dazu beitragen, Ihren Lebenslauf zu verbessern. Ich bin mir jedoch nicht sicher, ob es eine Vielzahl von Tech-Demos gibt. Viele Leute scheinen Tech-Demos zu machen und sie haben keine oder nur wenige Spielprojekte abgeschlossen. Der Gameplay-Programmierer ist in der Regel ein jr. Level Position, also ja, abhängig von Ihrem Lebenslauf sollten Sie in der Lage sein, irgendwo einen Job zu finden.

  3. Ich denke, dass es besser ist, eine Sprache zu kennen und sie kompetent und kompetent zu verwenden, als 5 Sprachen zu kennen und kaum zu wissen, wie man sie verwendet.

Haftungsausschluss: Ich habe noch nie in der Industrie gearbeitet. Dies sind nur meine Meinungen, die sich nach dem Lesen mehrerer Threads und Artikel über Spieleprogrammierungsjobs gebildet haben, basierend auf den meiner Meinung nach vernünftigsten Artikeln / Meinungen, die ich gelesen habe.

ShrimpCrackers
quelle
7
Ich würde Punkt 1 mit "Kenntnissen einer Programmiersprache , die Zeiger verwendet " ergänzen . Zeiger sind eine so grundlegende Voraussetzung, um zu verstehen, was mit einer Sprache vor sich geht, dass es ein großer Nachteil sein kann, wenn man sich für eine Sprache entscheidet, die sie benötigt. C ++ ist für Nicht-Web-Spiele extrem verbreitet, daher können Sie auch dort anfangen.
Tetrad
@ ShrimpCrackers Sie wissen, dass Sie mit dem Editor tatsächliche "Bullet Points" erstellen können , oder? ;)
Ben
Sie sollten zeigen, dass Sie zumindest eine Programmiersprache kennen, die in der Industrie nicht weit verbreitet ist, aber einige interessante Besonderheiten aufweist: Dies zeigt, dass Sie aufgrund des Interesses an der Gelegenheit lernen, dass Sie ein Polyglot sind, der verschiedene Philosophien / Ansätze versteht und dies (hoffentlich) kann ) das Beste aus beiden Welten zusammenführen.
FxIII
2

Je mehr ich mich mit diesem Thema beschäftige und mit professionellen Spieleentwicklern spreche, desto mehr denke ich, dass es wirklich auf ein paar Dinge ankommt. In keiner bestimmten Reihenfolge:

  • Fähigkeit, in einer Teamatmosphäre gut zusammenzuarbeiten. Das Erstellen von Spielen erfordert eine außergewöhnliche Anzahl von Leuten. Das Lesen der Credits in einigen der AAA-Spiele dauert heutzutage mehr als 10 Minuten. Wenn Sie nicht gut mit Leuten zusammenarbeiten können und Ihr Ziel darin besteht, mit anderen Leuten zusammenzuarbeiten, um ein großartiges Spiel zu machen, dann ich Ich fürchte, das ist nicht die richtige Branche. Dies ist eine dieser Soft Skills, die normalerweise im Laufe der Zeit aus der Arbeit an Projekten mit anderen Personen entwickelt werden.
  • Finden Sie, was Sie gerne tun. Dies ist eine Art offenes Ende, aber finden Sie heraus, was Sie an der Spieleentwicklung mögen und welche Fähigkeiten Sie benötigen, um dies zu erreichen. Ich weiß, dass dies die Antwort ist, nach der Sie suchen, aber ich könnte alle Fähigkeiten, die Sie als Engine-Entwickler, Grafikentwickler oder Gameplay-Entwickler benötigen, auf den Kopf stellen, aber Sie können viele dieser Informationen ziemlich einfach online finden. Ihre Fähigkeiten müssen sehr eng mit dem verknüpft sein, woran Sie interessiert sind. Beispiel: Machen Sie sich keine Sorgen über die Vor- und Nachteile von OpenGL und DirectX, wenn Sie wirklich an der serverseitigen Entwicklung interessiert sind und umgekehrt.
  • Beherrschen Sie eine Sprache auf niedrigem Niveau Nachdem das oben Gesagte gesagt wurde, stimme ich den anderen Postern zu, dass eine Sprache auf niedrigem Niveau eine gute Idee zum Lernen ist. Ich weiß, als ich von C # zu C ++ wechselte, habe ich viel darüber gelernt, wie die Magie von C # funktioniert. Dieses Wissen gibt Ihnen ein gutes Verständnis dafür, wie Sie unabhängig von der Sprache effektiv mit einem Computer kommunizieren können.
  • Computerarchitektur verstehen - Damit meine ich nicht, dass Sie einen Abschluss in CE oder EE haben müssen, um wirklich jeden Teil einer Computerarchitektur zu verstehen, sondern die Grundlagen der Funktionsweise von Speicher, CPU und GPU kennen. Unabhängig davon, in welchem ​​Bereich der Spieleentwicklung Sie tätig sind, ist es von Vorteil, zumindest zu verstehen, wie diese funktionieren. Wenn Sie in die Grafikprogrammierung oder Engine-Programmierung einsteigen möchten, müssen Sie in diesem Bereich noch mehr verstehen.
Kyle C.
quelle
5
Sie fühlen sich wirklich alt, wenn Leute C ++ eine niedrige Sprache nennen
dreta
@dreta Ich bin nicht so alt und sehe es auch nicht als einfache Sprache. Hat wahrscheinlich damit zu tun, dass C ++ die erste Sprache ist, die ich verwendet habe.
Paul Manta
2

Viel hängt von Ihren Karrierezielen ab. Wenn alles, was Sie wollen, "ein Job ist, der Spiele macht", bevor Sie die erforderlichen 5,5 Jahre absolvieren und ausbrennen und gehen, dann schauen Sie sich einfach die Stellenangebote für Einsteiger an und suchen nach dem, was sie wollen, lernen es und bewerben sich. Einfach. (Aber wenn Ihre Frage wirklich lautet: "Was ist der minimale Aufwand, den ich investieren muss, um einen Job zu bekommen?", Lautet die Antwort: "Wenn Sie den minimalen Aufwand betreiben, werden Sie den minimalen Job bekommen!" ")

Aber langfristig denke ich nicht, dass es so sehr darum geht, eine bestimmte Anzahl von Sprachen zu kennen oder eine bestimmte zu lernen. Die Sprachen ändern sich - vor zehn Jahren verwendete niemand Objective-C oder XNA oder C # oder AS3, und in zehn Jahren können Sie sicher sein, dass jede Sprache, die Sie heute lernen, bis dahin ohnehin veraltet sein wird.

Eine Sache, um sich zukunftssicher zu machen, ist, nicht nur "eine Sprache zu lernen", sondern zu lernen, wie man neue Sprachen lernt. Sobald Sie 3 Sprachen beherrschen, werden Sie feststellen, dass es nicht so schlimm ist, eine neue zu lernen. Die meisten Kernkomponenten sind ohnehin gleich - jede Sprache verfügt über Variablen, Arrays, Schleifen, Bedingungen usw. Es geht also nur darum, die Syntax zu lernen.

Die andere Hälfte davon besteht darin, die Kernkonzepte der Programmierung und der Informatik zu verstehen. Grundlegendes zur Speicherverwaltung, zu Zeigern, zur Rekursion usw. Wenn Sie die Konzepte verstehen, können Sie sie in nahezu jeder Sprache anwenden.

Wenn Sie sich marktfähiger machen möchten, lernen Sie eine Programmierspezialität kennen, die für Spiele relevant ist, unabhängig davon, was Sie interessiert ... KI, Datenbanken, Netzwerke, Tools, was auch immer.

Ian Schreiber
quelle
1

Es ist eine weitere sehr wichtige Fähigkeit erforderlich, die ein wenig übersehen zu werden scheint. Sie müssen wissen, wie man sich in ein Team von Leuten einfügt und mit ihnen zusammenarbeitet, von anderen Spielentwicklern über Designer und Projektmanager bis hin zu anderen. Es ist keine technische Fähigkeit, aber es ist immer noch sehr wichtig, da Sie der beste Entwickler im Haus sein könnten und wenn Sie nicht mit Leuten auskommen können, wird es ein Problem sein, große Spiele zu machen!

Da ShrimpCrackers eine Sprache gut kennen, ist es besser, als ungefähr 5 Sprachen zu kennen, und es ist sogar noch besser zu verstehen, was unter der Haube dieser einen Sprache vor sich geht, die Sie beherrschen. Bei Spielen müssen Sie wissen, wie Sie die beste Leistung erzielen aus der Sprache.

Last but not least, wenn Sie ein wenig über Hardware wissen, wird insbesondere die GPU nicht schaden!

dotminic
quelle
0

Für die Programmierung von Social Games sind nur die wichtigsten Fähigkeiten erforderlich.

  1. Programm-Aktionsskript (Sie können eine Elipse-Umgebung und einen SVN verwenden), das für das Front-End des Spiels (die Webseite) verwendet wird.

  2. Programm Java (das auch bei Eclipse und Use SVN ausgeführt werden kann), wird für die serverseitigen Aktionen verwendet, die von den Anforderungen der Webseite ausgeführt werden.

Mariana weicher
quelle