Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
game:start [2009/11/06 01:04]
kerli verschoben (jetzt auf englisch :-) )
game:start [2022/09/22 19:58] (aktuell)
Zeile 11: Zeile 11:
 ==== Planung u. Designdokument ==== ==== Planung u. Designdokument ====
  
-An erster Stelle sollte natürlich eine gute Planung stehen mit einem ausführlichem Designdokument. In Designdokument sollten wir so genau wie möglich festhalten wie unser Spiel ausschauen und ablaufen soll und wie, d.h. mit welchen Mitteln und Techniken wir das erreichen wollen. Wie man an so etwas herangehen kann ist zum Beispiel in folgendem Artikel auf gamasutra.com ganz gut beschrieben:​ [[http://​www.gamasutra.com/​features/​19970912/​design_doc.htm|Creating a Great Design Document]] (Englisch)+An erster Stelle sollte natürlich eine gute Planung stehen mit einem ausführlichem Designdokument. In Designdokument sollten wir so genau wie möglich festhalten wie unser Spiel ausschauen und ablaufen soll und wie, d.h. mit welchen Mitteln und Techniken wir das erreichen wollen. Wie man an so etwas herangehen kannist zum Beispiel in folgendem Artikel auf gamasutra.com ganz gut beschrieben:​ [[http://​www.gamasutra.com/​features/​19970912/​design_doc.htm|Creating a Great Design Document]] (Englisch)
  
-Im professionellen Bereich ist ein Designdokument natürlich Pflicht, da so der Publisher einschätzen kann was er bekommt und der Produzent weiß was er genau Produzieren ​soll. Es ist also sozusagen die Auftragsbeschreibung für ein Spiel von dessen Erfüllung schließlich auch die Bezahlung abhängt.+Im professionellen Bereich ist ein Designdokument natürlich Pflicht, da so der Publisher einschätzen kannwas er bekommt und der Produzent weißwas er genau produzieren ​soll. Es ist also sozusagen die Auftragsbeschreibung für ein Spiel von dessen Erfüllung schließlich auch die Bezahlung abhängt.
  
-Als Hobbyentwickler ist das nicht so wichtig, aber leider nimmt es zu oft eine zu kleine Rolle ein. Wenn wir uns von vornherein einmal Gedanken zum Grundaufbau unseres Spieles machen können wir schon frühzeitig möglicherweise auftretende Probleme erkennen und dadurch auch vermeiden. Nichts ist schlimmer als ein Code den man Monate oder Jahre bearbeitet und dann bemerkt das man eine groben Fehler im Design hat und große Teile des Codes neu schreiben muss. Ein anderer Grund ist das ein Designdokument uns auf einem gewissen Weg hält, denn zu oft gerät man in Versuchung eine plötzliche gekommene neue Idee ins Spiel einzubauen und immer weiter vom eigentlichen Inhalt des Spieles ab zukommen. Grundsätzlich ist das ja nicht schlecht, aber meistens kommt man dann zu keinem spielbaren Ergebnis mehr, und verliert leicht die Motivation das ganze noch durch zu ziehen, ​auch wenn es deutlich mehr Aufwand erfordert als erwartet.+Als Hobbyentwickler ist das nicht so wichtig, aber leider nimmt es zu oft eine zu kleine Rolle ein. Wenn wir uns von vornherein einmal Gedanken zum Grundaufbau unseres Spieles machenkönnen wir schon frühzeitig möglicherweise auftretende Probleme erkennen und dadurch auch vermeiden. Nichts ist schlimmer als ein Code den man Monate oder Jahre bearbeitet und dann bemerkt das man eine groben Fehler im Design hat und große Teile des Codes neu schreiben muss. Ein anderer Grund ist das ein Designdokument uns auf einem gewissen Weg hält, denn zu oft gerät man in Versuchung eine plötzliche gekommene neue Idee ins Spiel einzubauen und immer weiter vom eigentlichen Inhalt des Spieles ab zukommen. Grundsätzlich ist das ja nicht schlecht, aber meistens kommt man dann zu keinem spielbaren Ergebnis mehr, und verliert leicht die Motivation das Ganze noch durch zu ziehen, ​gerade ​wenn es deutlich mehr Aufwand erfordert als erwartet.
  
 ==== Grafiken und Modelle ==== ==== Grafiken und Modelle ====
Zeile 65: Zeile 65:
  
 === Engine === === Engine ===
-Wer nicht direkt einen der beiden Renderer verwenden möchte, der wird am Besten ​eine Engine verwenden. Engine heißt nichts anderes als Motor und stellt einfach eine Menge Funktionen zur Verfügung, die dir Programmierung eines Spieles erleichtern. Ein Engine ist aber nicht gleich eine Engine sondern man kann mehrerer Typen unterscheiden die meistens mehrere Module haben, die gewisse Aufgaben erledigen:+Wer nicht direkt einen der beiden Renderer verwenden möchte, der wird am besten ​eine Engine verwenden. Engine heißt nichts anderes als Motor und stellt einfach eine Menge Funktionen zur Verfügung, die dir Programmierung eines Spieles erleichtern. Ein Engine ist aber nicht gleich eine Engine sondern man kann mehrerer Typen unterscheiden die meistens mehrere Module haben, die gewisse Aufgaben erledigen:
  
 == Grafikengine == == Grafikengine ==
Zeile 109: Zeile 109:
  
 ===== Einstieg in die Programmierung ===== ===== Einstieg in die Programmierung =====
 +
 +==== Ohne Computer ====
 +Bevor man überhaupt mit dem programmieren anfängt, sollte man sich kurz alles struktorieren und aufbauen, damit das programmieren selbst möglichst zugüg vorran geht. Es gibt einige Dinge, die zu beachten sind und einige Fragen, die man sich stellen sollte. Für diesen Prozess braucht man nichtmal einen Computer. Man könnte alles auf Stift und Papier planen. Zuerst sollte man sich darüber Gedanken machen, was für ein Spiel das ganze überhaupt wird. Man sollte sich überlegen, wozu man bereits in der Lage ist, ob es einem Möglich ist das Spiel so ohne weiteres zu vollenden. Mittendrin abzubrechen macht niemanden glücklich und am Ende seid ihr nichts weiter als heiße Luft. Vor der Spieleprogrammierung selbst könnt ihr euch ein Basisspielmodell,​ eine Story(falls vorhanden), die Basis der Physik im Spiel und, wie ihr die Dateien speichern/​verwalten wollt, durch den Kopf gehen lassen. Dies kann man natürlich auch überspringen,​ allerdings würde ich dies nur für erfahrene Programmierer und auch nur bei kleinst Projekten empfehlen. Denn je mehr Gedanken man sich vorher macht, desto weniger braucht man hinterher beim Codeschreiben. Denn wenn der Code einmal steht, wer hat denn dann Lust wegen einer Fehlkalkulation den kompletten Inputteil neu zu schreiben. Dies führt zu Frustration und im schlimmsten Fall zum Projektabbruch. Also macht euch Gedanken und scheut euch auf keinen Fall "​Erfahrereneren"​ Fragen zu stellen, z.B. im [[http://​forum.proggen.org/​|Forum]]!
  
 ==== Ohne Engine ==== ==== Ohne Engine ====
  
-Wenn wir wissen möchten wie man von Grund auf ein Spiel programmiert sollten wir am Besten ohne eine Engine zu programmieren beginnen. Da wir aber nicht für jede Grafikkarte eigenen Code schreiben können werden wir aber trotzdem auf Bibliotheken zurückgreifen müssen die uns dass abnehmen. Für 3D Grafik können wir entweder OpenGL oder wenn es nur unter Windows laufen soll auch DirectX verwenden. Für einen Einstieg in die Spieleprogrammierung in 2D ist die SDL ein guter Einstieg:+Wenn wir wissen möchten wie man von Grund auf ein Spiel programmiert sollten wir am Besten ohne eine Engine zu programmieren beginnen. Da wir aber nicht für jede Grafikkarte eigenen Code schreiben können werden wir aber trotzdem auf Bibliotheken zurückgreifen müssen die uns dass abnehmen. Für 3D Grafik können wir entweder OpenGL oder wenn es nur unter Windows laufen soll auch DirectX verwenden. Für einen Einstieg in die Spieleprogrammierung in 2D sind die SDL oder auch Allegro ​ein guter Einstieg. Die SDL kann aber auch ein OpenGL Kontext erzeugen, weshalb man mit einer Kombination aus SDL und OpenGL sehr gut Spiele mit 3D Grafik schreiben kann:
  
   * [[sdl:​start|SDL Tutorial]]   * [[sdl:​start|SDL Tutorial]]
-  * [[ogl:​start|OpenGL Tutorial]] (Noch im Aufbau)+  * [[allegro:​start|Allegro Tutorial]] 
 +  * [[frameworks:​opengl:​start|OpenGL Tutorial]] (Noch im Aufbau)
  
 ==== Mit (Grafik)Engine ==== ==== Mit (Grafik)Engine ====
Zeile 121: Zeile 125:
 Wollen wir uns aber nicht mit den Grundlagen abmühen sondern gleich mit dem Programmieren eines Spieles an sich, sollten wir besser eine bereits vorhanden Engine verwenden, die uns grundlegende Sachen wie das Anzeigen und Laden von Modellen, Texturen und Ähnlichem abnimmt. Vor allem im kommerziellen Bereich werden oft Lizenzen für Engines sehr teuer gekauft, aber für uns interessanter werden wohl die inzwischen zahlreich erhältlichen kostenlos verwendbaren Engines sein. Hier nur eine kurze Auflistung der wichtigsten:​ Wollen wir uns aber nicht mit den Grundlagen abmühen sondern gleich mit dem Programmieren eines Spieles an sich, sollten wir besser eine bereits vorhanden Engine verwenden, die uns grundlegende Sachen wie das Anzeigen und Laden von Modellen, Texturen und Ähnlichem abnimmt. Vor allem im kommerziellen Bereich werden oft Lizenzen für Engines sehr teuer gekauft, aber für uns interessanter werden wohl die inzwischen zahlreich erhältlichen kostenlos verwendbaren Engines sein. Hier nur eine kurze Auflistung der wichtigsten:​
  
-  * [[allegro:​start|Allegro]] 
   * [[http://​www.clanlib.org/​|ClanLib]]   * [[http://​www.clanlib.org/​|ClanLib]]
   * [[http://​irrlicht.sourceforge.net/​|Irrlicht]]   * [[http://​irrlicht.sourceforge.net/​|Irrlicht]]
   * [[http://​www.ogre3d.org/​|Ogre]]   * [[http://​www.ogre3d.org/​|Ogre]]
   * [[http://​www.sfml-dev.org/​|SFML]]   * [[http://​www.sfml-dev.org/​|SFML]]