Frage von Coder1337, 68

Wo anfangen mit Spieleprogrammierung?

Hallo, ich studiere Informatik und behersche Java und habe auch die Grundprinzipien der Objektorientierung verstanden(kleine Spiele haben wir auch in der Vorlesung gemacht, Galgenraten auf der Konsole und Schach z. B. mit JavaFX). Tatsächlich habe ich im Laufe eines Praxisprojekts im ersten Semester ein Spiel mit einer Sprache für Text-Adventures "Inform" innerhalb einer Gruppe geschrieben, wobei ich eigentlich den Großteil des Codes geschrieben habe. Dies machte mir sehr viel Spaß, auch das darauf folgende "polishing" bzw. Bugfixing.

Nun habe ich schon öfter überlegt in die Sieleprogrammierung weiter hinein zu schnuppern, aber auf einem elmentarerem Level z. B. Java oder C++. Gibt es gute Bücher speziell für meine Situation oder ähnliches? Oder sollte man erstmal bei solchen Sprachen wie bei Inform bleiben, die schon einiges mitliefern, um die Implementierung zu vereinfachen? Interessieren würden mich auch etwas kleinere Spiele für den Anfang wie Tetris, da habe ich aber keine wirkliche Idee, wie man das umsetzen könnte ohne schon bereits vorhandene Bibliotheken etc zu benutzen...

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von rmnstr, 37

Für die Spieleentwicklung würde ich dir auf jeden Fall empfehlen, eine vorhandene Spieleengine (Unity, CryEngine, ...) zu verwenden.

Prinzipiell bestehen aufwendigere Spiele aus Grafikengine, Physikengine und KI-Engine. Alle drei dieser Engines sind eine Wissenschaft für sich und nur sehr schwer selbst umzusetzen. Ich musste selbst schon für Unikurse (vereinfachte) Engines in diesen drei Bereichen schreiben und der Spaß hielt sich dabei in Grenzen. Es macht viel mehr Sinn, Grafik, Physik und KI von bereits fertigen Engines zu verwenden und den eigenen Fokus auf die Spielelogik selbst zu setzen.

Diese Demo habe ich beispielsweise mit der Grafikengine "Ogre" und der Physikengine "Bullet" in C++ programmiert:

Mit den genannten Komplettlösungen (Unity, CryEngine, ...) erzielst du aber weitaus schneller und einfacher bessere Ergebnisse.

Antwort
von DanielDewald, 21

Also solltest du wirklich Interesse daran haben professionell spiele zu entwickeln irgendwann (sprich nicht nur zum Spaß) solltest du als erstes eine in der Branche relevante Programmiersprache lernen. Im Moment wäre das entweder C++ oder C#. Java wird nur im Backend eingesetzt. Ich verstehe deine Frage aber so das du frontend Entwicklung interessant findest.

Ich persönlich empfehle eher C++ da es sich einfacher von C++ auf C# springen lässt als umgekehrt. Zusätzlich lernst du bei C++ mehr Grundlagen die im Bereich Spiele sehr häufig gebraucht werden (z.B. Memory Management).

Da du schon studierst ist es schon etwas spät damit jetzt erst anzufangen. Leider erwartet die Branche von studienabgängern bereits recht viel. Die Programmiersprache der Wahl sollte man als Minimum solide beherrschen. Gern gesehen werden auch ein paar Demos bzw. Projekte an denen man mit gearbeitet hat.

Nun zum eigentlichen Punkt. Mit engine Entwicklung anzufangen bevor man die Programmiersprache beherrscht ist natürlich Humbug. Eher z.B. unreal engine schnappen und damit üben. Allerdings gilt auch hier das solide Kenntnisse von C++ da sein sollten bevor man loslegt.

Lies dir auch meine ganzen anderen antworten zum Thema spieleentwicklung durch. Viele deiner fragen sollten so beantwortet werden. Wenn noch etwas unklar ist gerne nachhaken.

Antwort
von triopasi, 43

"ohne schon bereits vorhandene Bibliotheken etc"

Ohne schon vorhandene Dinge, wirst du gar nichts komplexeres schreiben. Kannst GANZ theoretisch schon auch GUI Steuerung usw selbst programmieren, aber da sitzt du dann ewig dran, damit du überhaupt mal paar Formen anzeigen kannst. Fast alles was du machst, benutzt iwelche Bibliotheken. Auch zB den Scanner und HashMaps usw müsstest du dann ja selbst schreiben, wenn du das nicht tun würdest. 

Kommentar von Coder1337 ,

Ja, das war etwas missverständlich ausgedrückt, hauptsächlich meinte ich damit etwas wie z. B. javafx etc..darauf soll es mir aber auch nicht auschließlich ankommen, vor allem geht es mir um die Frage "Wo anfangen mit Spieleprogrammierung?". Deine Antwort hilft mir da leider auch nicht viel weiter ;-).

Kommentar von triopasi ,

Kannst ne Engine wie die CryEngine oder Unity oder Source benutzen.. Ansonsten kannst du z.B. mit OpenGL viel selbst zeichnen, frage ist halt was dir das bringt, wenn es schon gute (teils kostenlose) Engines gibt, die du nutzen kannst.

Kommentar von LifeArtist1 ,

Es schadet nie sich intensiev und mit einem Thema zu beschäftigen. Ich selbst habe auch schon in Python mit opengl rumgespielt und einige "game-patterns" vom Grund auf implementiert. Ich finde, es hilft einem zu verstehen warum genau "das" jetzt so ist oder warum sollte man das so nicht machen etc etc.... .

Wenn du aber eben in kürzester Zeit etwas durchaus gutes produzieren möchtest, dann empfiehlt sich eine vorhandene Engine.

Wie eben: Unity, UE4, oder die CryEngine.

Kommentar von triopasi ,

Hatte es so verstanden, als wolle er etwas komplexeres machen (so 3D mäßig oder so), da wird man ja verrückt, wenn man das alles von Grund auf mach xD

Kommentar von LifeArtist1 ,

Ohhhh ja :) ... Achso .... Ja ich habe mich auch nur mit 2D befasst ;P

Keine passende Antwort gefunden?

Fragen Sie die Community