Java Bücher oder Kurse zum Spieleentwickeln?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Sofern du dich noch nicht mit Grundlagen und OOP beschäftigt hast, würde ich dazu raten, dass du dich erst einmal nur darauf fokussierst. Du brauchst diese Kompetenzen unbedingt.

Für Minispiele (wie Pong, Snake, Tetris, Pacman, ...) benötigst du keine spezielle Literatur. Dennoch liefern diese Miniprojekte eine gute Einstiegsmöglichkeit. Schau dir dazu Processing an, denn diese Umgebung bietet eine Zeichenfläche sowie eine darauf spezialisierte Referenz, Elemente zu zeichnen. Du kannst Processing auch in ein Java-Projekt einbinden. Die später genannten Tools lassen sich natürlich ebenfalls für diese Minispiele einsetzen.

Für ein eigenes Großprojekt solltest du erst einmal damit beginnen, das geplante Spiel zu analysieren und zu schauen, welcher Ressourcen es bedarf (-> GCD/GDD: Game Concept/Design Document). Tools, die dich bei so einem Projekt unterstützen können, gibt es zudem in größerer Zahl (Bsp.: FXGL, jMonkeyEngine, JOGL, jPCT, libGDX, LitiEngine, LWJGL, Processing, ...). Manch eines ist etwas schwerer (und somit ist mehr Arbeitsaufwand für weitere Funktionalitäten notwendig), manch eines wiederum leichter. Wenn du ungefähr weißt, was du brauchst, kannst du auch einfacher eine Wahl über externe Abhängigkeiten treffen.

Ein paar hilfreiche Artikel zur Konzeptbeschreibung findest du hier:

Bezüglich Literatur zur Spiele-Entwicklung ist es nicht unbedingt notwendig, konkret für Java zu suchen. Es gibt meines Wissens nach eh nur wenige aktuelle Bücher zu LWJGL, libGDX oder JME. Vorziehen solltest du an der Stelle eher die offiziellen Dokumentationen, die manchmal auch selbst Buchvorschläge machen und Tutorials o.ä. zur Verfügung stellen. Zu LWJGL kannst du übrigens einmal hier schauen.

Ein paar Vorschläge (unabhängig von Java):

  • Game Coding Complete - McShaffry, Graham
  • Game Programming Patterns - Nystrom - schau dazu auch hier.
  • Rules of Play: Game Design Fundamentals - Tekinbas, Zimmerman
  • The Art of Game Design: A Book of Lense - Schell

Online-Quellen:

Es wäre zudem hilfreich, sich mit Design Pattern (wie dem ECS) auseinanderzusetzen. Zu mehreren anderen Themen, wie Collision Detection, Terrain generation, Sprite Animation, u.ä. (die Spiele-Entwicklung lässt sich nun einmal breit auffächern), gebe ich vorerst keine möglichen Lernquellen an. Dazu solltest du separat recherchieren, wenn du es brauchst (deswegen der Verweis auf das GCD/GDD). Berücksichtige ebenso, dass für Spiele oft nicht nur Programmierkenntnisse erforderlich sind. Sounds und Grafiken sind oft genutzte Ressourcenbeispiele.

Auf YouTube wirst du ganz sicher noch viele Tutorials finden. Diesbezüglich aber eine Warnung: Nicht jedes Tutorial ist zu empfehlen. Es gibt einige Exemplare (z.B. von FoX DeN), die eher zeigen, wie man es eben nicht machen sollte. Gerade deswegen noch einmal ein Verweis auf meinen allerersten Satz. Du solltest Quellen auch kritisch hinterfragen (das gilt übrigens nicht ausschließlich für YouTube).

Eine Entwicklung von Spielen mit Java AWT oder Swing (wie es einige Tutorials machen), kann ich übrigens ebenso nicht empfehlen, wenn es es dafür notwendig ist, Formen zu zeichnen. Diese Toolkits wurden nicht für die Programmierung von Spielen, sondern einfach nur für die Erstellung von Nutzeroberflächen mit grafischen Komponenten wie Buttons, Labels, etc. konzipiert. Das heißt, für Memory, Hangman oder Kartenspiele reichen sie völlig aus. Für Pacman, Super Mario, u.ä. würde ich sie für ungeeignet markieren.

Und zu guter Letzt noch ein Kommentar zur Sprache: Ich habe, wenn ich mich jetzt nicht täusche, durchweg nur englische Quellen genannt. Deutschsprachige Quellen sind eher rar und in der Qualität oft nicht so gut, wie englischsprachige. Wenn du ernsthaft in die Spieleprogrammierung einsteigen möchtest, sollte die englische Sprache für dich also keine Hürde darstellen.

Gibt es denn irgendeinen guten Grund für dich ausgerechnet mit Java Spiele machen zu wollen?

Wenn nein, solltest du dich vielleicht nochmal besser informieren, welche Sprache du am besten für die Spieleprogrammierung lernst. Java ist da zumindest soweit ich weiß keine gute Wahl. Ich kenne auch keine Spieleengine für Java?

Ich kenne mich selbst nicht wirklich aus in Sachen Spieleprogrammierung, weiß aber das Java nicht die optimale Wahl ist.