2 Bücher, welches besser zum Einstieg?



  • Möchte endlich in die DX-Spiele-/Grafik-Programmierung einsteigen. 2 Bücher liegen momentan bei mir rum. Welches ist besser zum Einstieg (WinAPI und C++ kann ich bereits, das Problem ist DirectX, da fehlt mir noch die Übersicht)?

    1. Alexander Rudolph, 3D-Spiele mit C++ und DirectX, 2003 (M&T)
    2. Ulrich Kaiser, Spieleprogrammierung in C++, 1.Aufl., 2003 (Galileo Computing)

    Womit soll ich beginnen? 🙂



  • Mit Programmieren. 😎

    Bye, TGGC \-/



  • Du machst mich wirklich fröhlich. 😉 Hast aber im Grunde Recht!

    Hat jemand die beiden Bücher durchgearbeitet? Habe jetzt mit dem 21-Tage-Buch begonnen. Stark C-lastig, eben typisch WinAPI-Programmierung, aber interessanter Stil. Leider wird die Mathematik und Physik unnötig kompliziert und zu wenig beispielhaft erklärt, und das von Kapitel 3 bis 7. Die Game-Engine, die der Autor entwickelt, macht allerdings einen brauchbaren Eindruck.



  • Da ich hierzu nur die "knochentrockene" Antwort von TGGC erhalten habe, möchte ich nach Einstieg in beide Bücher zum Ausdruck bringen, dass ich das Buch von Ulrich Kaiser inzwischen für meinen Einstieg klar präferiere, da es den richtigen Mix aus notwendigem theoretischen Unterbau, schöner Spielidee und Praxis hat.

    Viele Einsteiger haben offensichtlich zusätzlich das Problem, dass sie C++ und das WinAPI-Grundmodell nicht richtig verstehen. Daher sollten diese zuvor einen C++-Kurs, z.B. http://www.cpp-tutor.de/cpp/index.html , und einen WinAPI-Einstieg, z.B. http://www.henkessoft.de/api1.htm , zumindest im Schnelldurchgang durchlaufen. Für die Spieleprogrammierung ist es wichtig, ein klares Verständnis von Klassen, Zeigern und Arrays zu haben.

    Sehr gut zum Verständnis des Innenlebens der Windows-Grafik (GDI und DirectX), aber anspruchsvoll, ist das Buch von Feng Yuan, Windows Graphics Programming Win32 GDI and DirectDraw, Prentice Hall PTR.

    Die anderen Namen (Zerbst, Lamothe, ...) sind hier ja ausführlich bekannt und mehrfach besprochen.

    Das DirectX-Modell basiert auf dem COM (Component Object Model). Hierzu empfehle ich z.B. http://www.henkessoft.de/mfc_einsteigerbuch_kapitel15.htm



  • Erhard Henkes schrieb:

    Da ich hierzu nur die "knochentrockene" Antwort von TGGC erhalten habe

    Lesen ist doch noch viel knochentrockener. 😎

    Bye, TGGC \-/



  • Das Buch von Ulrich Kaiser finde ich ehrlich gesagt ziemlich mau, da der Autor vielleicht erst mal einen C++-Kurs belegen sollte, bevor er versucht mit C++ Spiele zu programmieren.

    Entweder programmiert man in C, das ist Ok. Oder in C++, auch ok. Aber der Autor ist wieder mal ein typischer Vertreter der C+ Programmierung.

    Wenn jemand für jedes Eingabegerät eine eigene Klasse schreibt, aber dann mit Hilfe von switch zwischen den Objekten der Klasse für das aktuelle Eingabeobjekt umschaltet, dann fällt mir dazu nur Unaussprechliches ein.



  • Marc++us schrieb:

    Wenn jemand für jedes Eingabegerät eine eigene Klasse schreibt, aber dann mit Hilfe von switch zwischen den Objekten der Klasse für das aktuelle Eingabeobjekt umschaltet, dann fällt mir dazu nur Unaussprechliches ein.

    Dazu würdest Du sicher "OOP für Dummies" empfehlen, stimmt's!? 😃 👍

    😉



  • Naja, der liebe Herr Kaiser ist Professor an einer deutschen Hochschule, da wird er wohl kaum Ratschläge von mir annehmen. 🙂



  • Hallo Herr Kaiser! 😃

    Jo, diese Art von Leuten sind die schlimmsten!

    Einer unser Profs hat auch ein Buch geschrieben.... G-R-A-U-E-N-H-A-F-T !! 😡



  • Marc++us hat bezüglich C++ Recht. Da es mir aber um den Einstieg in das Game Programming geht, ist mir das didaktische Vorgehen und die Konzentration auf das Wesentliche wichtiger. Ich habe mich inzwischen daran gewöhnt, dass bei der WinAPI-Programmierung immer noch der C-Stil vorherrscht. Das kann man bei eigenen Projekten auf Basis anderer Vorbilder selbst gerade biegen.

    Die Bewertungen bei amazon sind auch sehr unterschiedlich. Das Buch ist allerdings noch nicht rund und enthält auch noch sachliche Fehler: http://www.amazon.de/exec/obidos/ASIN/3898422720/qid=1086473710/sr=1-4/ref=sr_1_11_4/302-9474399-0541648

    @Marc++us: Welches Buch empfiehlst Du zum Einstieg in das Game Programming?



  • schau mal auf www.scherfgen-software.net ,das buch ist meiner meinung nach sehr gut, da es auch wirklich aufs GAME-programming an sich eingeht,und nicht nur die technischen grundlagen vermittelt.

    und von M&T büchern lässt man GRUNDSÄTZLICH die Finger 🙄



  • ich find das scherfgen buch für den einstieg auch bestens geeignet.

    ulrich kaiser verwendet die ganzen klassen die im dx sdk enthalten sind.
    soll er von mir aus, aber damit erhält man imho nur eine referenz wie man die klassen ausm sdk verwendet und nicht was sich wirklich abspielt.

    apropos dx sdk:

    ich find den stil in dem das dx sdk mit seinen klassen und beispielen geschrieben is einfach grauenhaft.



  • NeHe reicht, wer braucht DirectX? WinAPI und OpenGL reichen aus. COM ist sowieso ein Flopp von Microsoft.



  • nix da schrieb:

    NeHe reicht, wer braucht DirectX? WinAPI und OpenGL reichen aus. COM ist sowieso ein Flopp von Microsoft.

    COM rult, Extensions lamen! 🕶 😉

    Aber wer dem DirectX SDK schlecht designten Code vorwirft, kann doch nicht ernsthaft als Positiv-Beispiel die NeHe-Tuts erwähnen...!!!??? 😮 😮 😕 *würg*



  • @nix da:

    deine aussage zeugt davon, wie eingehend viel ahnung von DirectX und COM du hast.

    wenn DX tatsächlich so ein flop wär, warum verwendet es dann jedes bessere spiel ( parallel zu OpenGL ).

    DirectX besteht außerdem nicht ausschließlich aus DirectGraphics ( Direct3D )

    schonmal was von DirectSound, DirectMusic, DirectInput, DirectPlay oder DirectShow gehört?

    die funktionalität die DirectX als ganzes bietet, is unter verwendung von OGL wenn überhaupt nur unter verwendung von nich gerade wenigen zusätzlichen APIs zu realisieren.

    zeig mir mal wie du einen ForceFeedback joystick oder eine DolbySurround Anlage mit OpenGL ansprichst und dann wiederhol deinen post von vorher.

    @Sgt. Nukem

    ich hab dem sdk unübersichtlichen, nicht schlecht designten code vorgeworfen.

    *hoffentlich wird das nicht wieder so eine sinnlose OpenGL vs. DirectX diskussion*



  • eine diskussion ist eh unnötig, D3d9 für windows ogl für alles andere 😉
    das einzige, was mich wirklich am D3D nervt ist, dass man für jede Klasse oder struktur eine spezielle Funktion aufrufen muss, können dass nicht ctor oder static member machen?



  • dot
    Ich habe mich seit DirectX3 mit DirectX und COM beschäftigt und kenne die Tücken von DirectX sehr gut. Für mich ist DirectX aus folgendem Grunde ein totaler Flopp gegenüber einer old-school-like-API:

    Interfaces, hast du mal ernsthaft versucht ein DirectDraw3 Programm auf DirectDraw7 umzusetzen oder ein Direct3D7 auf Direct3D9? Wenn ja, dann weißt Du genau was ich meine mit Tücken.

    Schön und gut mit abwärtskompatibel, doch das man erst neue Features der GraKa benutzen kann wenn man ein Interface höher geht, ist total umständlich, da ist OpenGL besser, wenn ein neues Feature nicht unterstützt wird, pech gehabt, ansonsten kann man es benutzen.



  • Als Einsteiger in DirectX hat man es nicht leicht, gerade auch wegen der häufigen Updates der Versionen (z.Z. von DX7 bis DX9) und der damit verbundenen unterschiedlichen Abdeckung durch Literatur. Das Buch von Ulrich Kaiser hat mir zumindest zu einem raschen Grundverständnis und Einstieg in die 2D-Programmierung geholfen. Sein Tetris Clone "Ultris" in 12 Projekt-Schritten ist recht gut nachvollziehbar. Mir hilft es, wenn ich sehe, wie man die Utility-Klassen verwenden kann, die DirectDraw verbergen und damit leichter handhabbar machen.

    Zu Ultris/Tetris eine konkrete Frage:
    Hat schon mal jemand eine AI entwickelt oder kennt ein Beispiel, so dass der Computer selbst Tetris spielt? Ich habe erste Ansätze probiert, stehe aber voll im Wald. Mich würde interessieren, ob Mensch oder Maschine besser "Ultris" spielen kann.



  • nix da schrieb:

    ...hast du mal ernsthaft versucht ein DirectDraw3 Programm auf DirectDraw7 umzusetzen oder ein Direct3D7 auf Direct3D9...

    nein, aber Direct3D8 auf 9 und das geht ohne probleme.
    von 7 auf 9 is klar, da ziemlich umgebaut wurde.

    nix da schrieb:

    ...Schön und gut mit abwärtskompatibel, doch das man erst neue Features der GraKa benutzen kann wenn man ein Interface höher geht, ist total umständlich, da ist OpenGL besser, wenn ein neues Feature nicht unterstützt wird, pech gehabt, ansonsten kann man es benutzen.

    ich hab mir sagen lassen, dass aus eben diesem grund DirectX zum teil dinge unterstützt die die hardware selber noch nicht drauf hat, die aber bald kommen werden.

    teilweise muss ich dir aber recht geben!



  • dot schrieb:

    @Sgt. Nukem

    ich hab dem sdk unübersichtlichen, nicht schlecht designten code vorgeworfen.

    Das bezog sich ja auch eher auf nix da's Anti-DX/Pro-NeHe - Aussage... 🤡

    dot schrieb:

    *hoffentlich wird das nicht wieder so eine sinnlose OpenGL vs. DirectX diskussion*

    Das wirst _DU_ nicht verhindern können!! 😉


Anmelden zum Antworten