In der AAA-Spieleentwicklung werden die Ingenieure hauptsächlich C ++ verwenden
Aber die Spieledesigner werden hauptsächlich Bleistifte, Whiteboards und einiges an „Fluchen“ verwenden (eine speziell entwickelte Sprache zur Erleichterung des Teamverständnisses)
Einige des Spieledesignteams verwenden möglicherweise eine Computersprache, um anzugeben, was wann passiert. In Spielen wie GTA5 wird diese Art der Codierung manchmal als Scripting bezeichnet. Es ist keine Hardcore-Programmierung. Es schreibt Skripte für Ereignisse. Dieses Feld löst dieses Ereignis aus. Das passiert, wenn er stirbt oder wenn sie durch das Dach fällt.
Scripting wird manchmal in einer bereits existierenden Sprache ausgeführt. Manchmal ist es ein Inhouse-System.
- Lua wird häufig für Skripte verwendet.
Wenn Sie nicht AAA-Spiele tun – und erwägen mobile Entwicklung aussehen.
- C ++ (für Android und iOS)
- Java (für Android)
- C# (für Unity-Apps auf vielen Plattformen)
- Objective-C oder Swift (für iOS)
Und schauen Sie sich die verschiedenen APIs an, die die Spieleentwicklung beschleunigen können
- OpenGL ES (Grafik-API für alle Plattformen)
- Unity (eine Game-Engine-Lösung für 3D- und 2D-Spiele)
- Cocoa (für alle iOS-Apps)
- Cocos2D (eine 2D-API)
Was Sie also lernen, hängt davon ab, wohin Sie gehen möchten.
Die meisten sehr älteren Spielingenieure, die ich getroffen habe, kennen Computersysteme auf eine Suppe-zu-Nüsse-Art und Weise. Sie sind Architekten, die wissen, wie jeder Nagel und Ziegel es zusammen. (Und wo die Nägel gemacht werden)
Sie sind ebenso komfortabel in Low-Level-Assembler. Old School C und objektorientierte Sprachen, und kann Shader-Code alle mit gleicher Leichtigkeit schreiben.
Die erfahreneren Ingenieure haben die Aufgabe, aus scheinbar langsamer oder eingeschränkter Hardware eine wunderbare Leistung herauszuholen. Sie können dies tun, weil sie intuitiv wissen, was funktionieren wird, was langsam sein wird und was zehn Bilder pro Sekunde aus einer Renderschleife rasieren wird.
Diese Fähigkeit zur Optimierung beruht darauf, wirklich zu verstehen, wie CPUs und GPUs-Prozessoren in Hardware implementiert sind. Wo die Engpässe und Bandbreitenprobleme sind. Diese Art von Verständnis hat wenig mit Sprachen zu tun.
Wenn Sie dieses Handwerk erlernen möchten ….
Schreibe etwas Triviales in Assembler, um zu sehen, wie das zu Opcodes wird. Und Shunts Sachen aus dem Hauptspeicher in CPU-Register.
Schreiben Sie etwas in C – und sehen Sie, wie diese Sprache in Assembler übersetzt wird. Sehen Sie, wie einige Daten auf dem Stapel, einige auf dem Heap, einige in Registern gespeichert werden.
Schreiben Sie etwas in C ++ und sehen Sie, wie das in Code umgewandelt wird.
Schreiben Sie etwas in Direct X oder Open GL, das Vertex- und Fragment-Shader erfordert.
Mit anderen Worten, erleben Sie die letzten 30 Jahre der Computerentwicklung noch einmal. Und Sie haben vielleicht eine Ahnung, wie das alles funktioniert.
Wenn Sie verstehen, wie all diese Dinge zusammenpassen, können Sie die Fähigkeiten entwickeln, die Sie benötigen, um ein großartiger Spieleentwickler zu sein.
Aber wenn Sie all dieses Zeug hassen. Wenn Sie nur möchten, dass sich Sprites auf dem Bildschirm bewegen und die Leute zum Lächeln bringen, sollten Sie meinen Rat wahrscheinlich ignorieren. Und verwenden Sie jede API, die Sie können, um das Leben einfach zu machen – und Pixel tanzen zu Ihrer Melodie.