Ich möchte Spiele programmieren, wie geht das
-
Da hier im Forum immer mal die Frage auftaucht
"Ich möchte Spiele programmieren, wie geht das ?"
habe ich mich entschlossen das ganze mal für die
FAQ festzuhalten. Ich poste den Text zuerst hier,
wenn ihr noch Ergänzungen/Fragen o.ä. habt könnt
ihr die dann hier auch hinschreiben...Ich möchte Spiele programmieren, was für Vorkenntnisse
brauche ich ?
Du solltest sehr gut in C/C++ programmieren können.
"Sehr gut programmieren können" heißt dass du das
Prinzip von C/C++ verstanden hast. D.h. du musst
wissen was Pointer, Arrays, Referenzen usw sind, und
du musst wissen wie man sie anwendet...
C++ ist meiner Meinung nach die optimalere Sprache
wenn du Spiele programmieren willst. Klar, in C geht
das auch, aber C++ ist eben objektorientiert.
Besonders wenn deine Spiele größer werden, werden
Klassen, Vererbungen, Kapselung von Daten...
unentbehrlich.
Kenntnisse in der WinAPI sind auch sehr hilfreich,
wenn IMHO nicht zwingend erforderlich. Es ist eben
hilfreich wenn man weiß was HWNDs, HANDLES, HINSTANCES,
WM_??? Messages usw sind.
Mit der MFC musst du dich nicht auskennen. Man
kann zwar auch Games mit der MFC proggen, das ist
aber sehr unüblich (die MFC ist zu "fett" für Games,
viel von dem Ballast braucht man gar nicht)So, dass sind die Programmierkenntnisse die du haben
solltest bevor du dich ernsthaft mit der Spieleprogrammierung
auseinandersetzen möchtest.
Natürlich brauchst du noch jede Menge Zeit (!!), viel
Gedult und Motivation und natürlich Spaß dich mit
neuen Techniken auseinanderzusetzen.Die Mathematik die in der Spieleprogrammierung verwendet
wird (besonders in 3D Games) sollte für jeden zu
schaffen sein der in der 10.ten Klasse ist
Es ist IMHO nicht wichtig alles zu verstehen, es ist
wichtig zu wissen wie man die Sachen anwendet !Was für Software brauche ich ?
Du brauchst erstmal einen C oder C++ Compiler.
Der Standardcompiler, der von ca. 90% aller Spieleentwickler
eingesetzt wird ist Visual C++ von Microsoft.
Es gibt soweit ich weiß auch ne Testversion die du
dir kostenlos aus dem Internet runterladen kannst.
Einzige Einschränkung : Du darfst die EXEcutables nicht
weitergeben...- Wenn du dich entscheidest in DirectX zu programmieren,
brauchst du das DirectX8 SDK. Das gibts
bei Microsoft, ein genauer Link im FAQ.
Die Dateigröße beträgt ca 120 MB... - Wenn du dich entscheidest OpenGL zu verwenden
brauchst du das OpenGL SDK. Das gibts
bei www.zfx.info und www.flipcode.com
HILFEE ! Gibts das Tutorial/Buch auch in Deutsch,
hier ist alles Englisch
Nein ! Es ist leider so, fast alle gute Tuts/Books zum
Thema Spieleprogrammierung sind nunmal auf Englisch...Was soll ich lernen ? OpenGL ? DirectX ? Beides ??
Was von beiden ist besser/schneller ?
Es gab hier schon dutzende von Flamewars die sich
damit beschäftigt haben was jetzt besser/schneller/einfacher
ist.
Gehen wir die Punkte der Reihe nach durch :- Welche API ist besser ?
Beide unterstützen so ziemlich die gleichen Features.
Keine der beiden APIs ist der anderen in einem Punkt
stark unter/überlegen. - Welche API ist schneller ?
Beide sind gleich schnell ! Es kommt auf den Programmierer
an was er aus "seiner" API rausholt... - Welche API ist einfacher ?
Gute Frage !
Allgemein gilt : 90% der Arbeit in DirectX liegt im
Initialisierungscode, d.h. dem Ändern der Auflösung,
aktivierung der verschiedenen Features usw.
Meine D3D Initcode hat ca. 500 Zeilen (natürlich
per Copy&Paste übernommen, nicht selbstgeschrieben
Die Funktionen und das Handling von DirectX ist -wenn
es denn mal initialisiert wurde- mehr oder weniger
gleichschwer mit OpenGL.
OpenGL ist relativ einfach zu verwenden, der Initcode
erstreckt sich über relativ wenig Zeilen (oder ??).Der Große Vorteil von DirectX ist für Anfänger aber
sicherlich DirectDraw, eine recht einfach zu benutzende
API für 2D Spiele. Leider gibts im aktuellen
DirectX8 SDK keine Hilfe mehr dazu, viele ältere Bücher handeln
aber noch über DirectDraw.
Außerdem gibts bei DirectX noch DirectInput (für die
Eingabe), DirectSound (für Sound *surprise*), DirectPlay (fürs
Netzwerk) ...Was jetzt aber die einfachere der beiden APIs ist, will/kann ich
pauschal aber nicht sagen.
(Kleiner Denkanstoß am Rande : 90% aller Games werden
in Direct3D programmiert, 10% in OpenGl. Dafür werden fast 90%
aller professionellen Anwendungen (CAD, 3D Modeller..)
in OpenGL programmiert... OpenGL gibts auch für Linux, DX nicht)Ich habe ein Problem mit ??? / Eine Frage zu ??? Wer hilft mir
Die wichtigste Quelle für Informationen ist sicher www.google.de !!
Auch sehr gut ist www.google.de.
Natürlich kannst du deine Fragen auch hier
(www.c-plusplus.net/forumstart.html) im Spiele&Grafikforum posten.
Guck aber vorher mal im FAQ nach, die Chancen stehen gut dass
deine Frage dort schon beantwortet wurde.
Achja, hab ich www.google.de schon erwähnt *g* ?
- Wenn du dich entscheidest in DirectX zu programmieren,
-
Original erstellt von Headhunter:
- **Wenn du dich entscheidest OpenGL zu verwenden
brauchst du das OpenGL SDK. Das gibts
bei www.opengl.org (oder ??).
Die Dateigröße beträgt ca. ?? MB
**
Nicht unbedingt. Die Dateien sollte jeder Compiler schon von Haus aus dabei haben. (Sollten vielleicht die Leute wissen, die sich die 130MB nicht ziehen können)
- **Wenn du dich entscheidest OpenGL zu verwenden