Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: FAQ - Grafik-/Spieleprogrammierung ::  Ich möchte Spiele programmieren, wie geht das     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Headhunter
Mitglied

Benutzerprofil
Anmeldungsdatum: 20.08.2000
Beiträge: 3567
Beitrag Headhunter Mitglied 08:03:00 17.10.2002   Titel:   Ich möchte Spiele programmieren, wie geht das            Zitieren

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.de/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* ?

  • _________________
    Viele Grüße, headhunter
    Werbeunterbrechung
    Wanderer
    Mitglied

    Benutzerprofil
    Anmeldungsdatum: 13.05.2001
    Beiträge: 713
    Beitrag Wanderer Mitglied 11:30:00 17.10.2002   Titel:              Zitieren

    Zitat:
    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)

    _________________
    "The only reason anybody ever does anything is to feed the ego" - P.C.
    c++.de :: FAQ - Grafik-/Spieleprogrammierung ::  Ich möchte Spiele programmieren, wie geht das   Auf Beitrag antworten

    Zeige alle Beiträge auf einer Seite




    Nächstes Thema anzeigen
    Vorheriges Thema anzeigen
    Sie können keine Beiträge in dieses Forum schreiben.
    Sie können auf Beiträge in diesem Forum nicht antworten.
    Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
    Sie können Ihre Beiträge in diesem Forum nicht löschen.
    Sie können an Umfragen in diesem Forum nicht mitmachen.

    Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

    c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

    Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.