Spiele programmieren lernen

Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
[gesichtete Version][gesichtete Version]
(Python-Buch aktualisiert)
(SDL Dokulink korrigiert, da dieser zu einer nicht existenten Seite verbindet (dasselbe wie bei korrigierten Allegrolinks))
 
(5 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 240: Zeile 240:
 
<xh4>C++-Bücher</xh4>
 
<xh4>C++-Bücher</xh4>
  
* {{Amazon|3446432167|"C++ für Spieleprogrammierer" von Heiko Kalista}}: Dieses Buch vermittelt die wichtigsten Grundlagen der Programmiersprache C++ und richtet sich dabei speziell an angehende Spieleprogrammierer. Im Buch wird nach der Vermittlung der C++-Grundlagen ein einfaches 2D-Spiel Schritt für Schritt entwickelt. Am Ende erhält der Leser noch einige Tipps, wie er nach der Lektüre dieses Buches weitermachen sollte, und wie er die Angebote des Internets wie Communitys/Foren richtig nutzen kann.
+
* {{Amazon|3446446443|"C++ für Spieleprogrammierer" von Heiko Kalista}}: Dieses Buch vermittelt die wichtigsten Grundlagen der Programmiersprache C++ und richtet sich dabei speziell an angehende Spieleprogrammierer. Im Buch wird nach der Vermittlung der C++-Grundlagen ein einfaches 2D-Spiel Schritt für Schritt entwickelt. Am Ende erhält der Leser noch einige Tipps, wie er nach der Lektüre dieses Buches weitermachen sollte, und wie er die Angebote des Internets wie Communitys/Foren richtig nutzen kann.
  
 
<xh4>C++-Tutorials</xh4>
 
<xh4>C++-Tutorials</xh4>
Zeile 286: Zeile 286:
 
* [http://docs.python.org/tutorial/ "The Python Tutorial"]: Das offizielle, sehr umfangreiche Python-Tutorial.
 
* [http://docs.python.org/tutorial/ "The Python Tutorial"]: Das offizielle, sehr umfangreiche Python-Tutorial.
  
* [http://tutorial.pocoo.org/ "Das Python-Tutorial"]: Eine deutsche Übersetzung des offiziellen Python-Tutorials.
+
* [https://py-tutorial-de.readthedocs.org/de/python-3.3/ "Das Python-Tutorial"]: Eine deutsche Übersetzung des offiziellen Python-Tutorials.
  
 
== Auswahl einer passenden Bibliothek ==
 
== Auswahl einer passenden Bibliothek ==
Zeile 305: Zeile 305:
 
* [http://www.sfml-dev.org/tutorials/ Tutorials]
 
* [http://www.sfml-dev.org/tutorials/ Tutorials]
 
* [http://www.sfml-dev.org/documentation/ Dokumentation]
 
* [http://www.sfml-dev.org/documentation/ Dokumentation]
 +
* [https://www.spieleprogrammierer.de/wiki/SFML_Einsteiger-Tipps SFML Einsteiger-Tipps]
 
|-
 
|-
 
| [http://www.libsdl.org/ SDL] (Simple DirectMedia Layer) || C++, C#, Java, Python || Eine Bibliothek, die grundlegende Funktionalität wie Grafikausgabe, Audio, Eingabe und Netzwerk bereitstellt. ||
 
| [http://www.libsdl.org/ SDL] (Simple DirectMedia Layer) || C++, C#, Java, Python || Eine Bibliothek, die grundlegende Funktionalität wie Grafikausgabe, Audio, Eingabe und Netzwerk bereitstellt. ||
 
* [[SDL-Tutorial]]
 
* [[SDL-Tutorial]]
 
* [http://wiki.libsdl.org/moin.cgi/SDL1.2Tutorials Weitere Tutorials]
 
* [http://wiki.libsdl.org/moin.cgi/SDL1.2Tutorials Weitere Tutorials]
* [http://www.libsdl.org/cgi/docwiki.cgi Dokumentation]
+
* [http://wiki.libsdl.org/FrontPage Dokumentation]
 
|-
 
|-
 
| [http://pygame.org/ Pygame] || Python || Pygame basiert auf SDL, bietet aber noch zusätzliche Funktionalität. ||
 
| [http://pygame.org/ Pygame] || Python || Pygame basiert auf SDL, bietet aber noch zusätzliche Funktionalität. ||
Zeile 316: Zeile 317:
 
|-
 
|-
 
| [http://alleg.sourceforge.net/ Allegro] || C++, C#, Python || Eine robuste Bibliothek für die Spieleprogrammierung, die noch aus der MS-DOS-Zeit stammt, aber mittlerweile stark modernisiert wurde. ||
 
| [http://alleg.sourceforge.net/ Allegro] || C++, C#, Python || Eine robuste Bibliothek für die Spieleprogrammierung, die noch aus der MS-DOS-Zeit stammt, aber mittlerweile stark modernisiert wurde. ||
* [http://alleg.sourceforge.net/docs.html Tutorials]
+
* [https://liballeg.org/docs.html Tutorials]
* [http://alleg.sourceforge.net/api.html Dokumentation]
+
* [https://liballeg.org/a5docs/trunk/ Dokumentation]
 
|-
 
|-
 
| [http://msdn.microsoft.com/en-us/aa937791.aspx XNA] || C# || XNA ist eine umfangreiche Bibliothek für C#, mit der man sowohl PC- und Windows Phone 7- als auch Xbox-Spiele programmieren kann. ||
 
| [http://msdn.microsoft.com/en-us/aa937791.aspx XNA] || C# || XNA ist eine umfangreiche Bibliothek für C#, mit der man sowohl PC- und Windows Phone 7- als auch Xbox-Spiele programmieren kann. ||
Zeile 348: Zeile 349:
 
Solch ein Projekt (oder etwas Vergleichbares) ist zwar nicht besonders innovativ, aber als erstes eigenes kleines Spiel eignet es sich hervorragend. Der technische Anspruch ist gering, und am Ende wirst du mit Sicherheit sehr stolz auf dich und dein Spiel sein. Jeder Spieleprogrammierer erinnert sich sicherlich noch an sein erstes Spiel und an das damit verbundene gute Gefühl, etwas eigenes erschaffen zu haben. Auch wenn so ein erstes Spiel andere Spieler vermutlich "nicht gerade vom Hocker reißt" – lass dich davon nicht verunsichern. Jeder hat einmal klein angefangen, und der gewöhnliche Spieler hat gar keine Vorstellung davon, wie viel Aufwand es bedeutet, ein Spiel zu programmieren.
 
Solch ein Projekt (oder etwas Vergleichbares) ist zwar nicht besonders innovativ, aber als erstes eigenes kleines Spiel eignet es sich hervorragend. Der technische Anspruch ist gering, und am Ende wirst du mit Sicherheit sehr stolz auf dich und dein Spiel sein. Jeder Spieleprogrammierer erinnert sich sicherlich noch an sein erstes Spiel und an das damit verbundene gute Gefühl, etwas eigenes erschaffen zu haben. Auch wenn so ein erstes Spiel andere Spieler vermutlich "nicht gerade vom Hocker reißt" – lass dich davon nicht verunsichern. Jeder hat einmal klein angefangen, und der gewöhnliche Spieler hat gar keine Vorstellung davon, wie viel Aufwand es bedeutet, ein Spiel zu programmieren.
  
Eine gute Idee ist es, dein erstes Spiel der Spieleprogrammierer-Community ([http://www.spieleprogrammierer.de/12-projekte-workshops/ Forum zur Projektvorstellung]) vorzustellen. Die Community-Mitglieder sind sowohl Spieler als auch Programmierer/Entwickler. Sie können dir daher sehr wertvolles Feedback geben: einerseits zum Spiel an sich (Gameplay, Grafik, Sound, Steuerung, Schwierigkeitsgrad, ...), andererseits zur programmiertechnischen Umsetzung. Damit Letzteres möglich ist, solltest du auch den Quellcode veröffentlichen. Hier solltest du dich ''kritikfähig'' zeigen, denn es ist nicht unwahrscheinlich, dass buchstäblich jede Zeile deines Codes auseinander genommen wird. Das ist jedoch völlig normal, denn Programmieren ist hauptsächlich eine Erfahrungssache. Je mehr du programmierst, desto mehr wirst du erkennen, wie du gewisse Dinge schöner, kürzer, schneller und eleganter lösen kannst. Die erfahreneren Programmierer werden darum sehr viele Stellen in deinem Code erkennen, die du besser machen könntest, und dich darauf hinweisen. Es ist wichtig, dass du diese Kritik nicht persönlich nimmst, sondern versuchst daraus etwas zu lernen, so dass du es im nächsten Spiel besser machen kannst.
+
Eine gute Idee ist es, dein erstes Spiel der Spieleprogrammierer-Community ([https://www.spieleprogrammierer.de/12-projektvorstellungen-und-stellenangebote/ Forum zur Projektvorstellung]) vorzustellen. Die Community-Mitglieder sind sowohl Spieler als auch Programmierer/Entwickler. Sie können dir daher sehr wertvolles Feedback geben: einerseits zum Spiel an sich (Gameplay, Grafik, Sound, Steuerung, Schwierigkeitsgrad, ...), andererseits zur programmiertechnischen Umsetzung. Damit Letzteres möglich ist, solltest du auch den Quellcode veröffentlichen. Hier solltest du dich ''kritikfähig'' zeigen, denn es ist nicht unwahrscheinlich, dass buchstäblich jede Zeile deines Codes auseinander genommen wird. Das ist jedoch völlig normal, denn Programmieren ist hauptsächlich eine Erfahrungssache. Je mehr du programmierst, desto mehr wirst du erkennen, wie du gewisse Dinge schöner, kürzer, schneller und eleganter lösen kannst. Die erfahreneren Programmierer werden darum sehr viele Stellen in deinem Code erkennen, die du besser machen könntest, und dich darauf hinweisen. Es ist wichtig, dass du diese Kritik nicht persönlich nimmst, sondern versuchst daraus etwas zu lernen, so dass du es im nächsten Spiel besser machen kannst.
  
 
=== Kritischer Rückblick und die nächsten Spiele ===
 
=== Kritischer Rückblick und die nächsten Spiele ===

Aktuelle Version vom 3. März 2019, 20:19 Uhr

Klicke hier, um diese Version anzusehen.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge