Spieleprogrammierung 2D/3D OHNE MFC bzw. Microsoft



  • Guten Tag Leute,

    Ich habe mir bereits mehrere Bücher über C++ und DirectX angeschaut, komme aber immer wieder zu dem Ergebnis, dass diese entweder MFC verwenden oder Tools voraussetzen, die aber in MSVC 8 >>> EXPRESS <<<< nicht enthalten sind.

    Da die Standart/Professional Version (Ich bin kein Student) sehr teuer ist, würde ich gerne ausweichen.

    Ich möchte kleine Spiele für Windows mit C++ und z.B. OpenGL entwickeln aber nur fürs üben kein Geld ausgeben müssen.(Außer für Bücher und ein wenig Software (nicht unbedingt 300 Eier)

    Auch sind viele OpenGL Tutorials wieder mit MFC verbunden...

    Welche anderen APIs kann ich einsetzen bzw. mit welchen Werkzeugen arbeiten um kostenlos Spiele zu schreiben (ohne GamesCreator etc)



  • Wie wäre es zum Beispiel mit SFML? Es ist kostenlos und wie ich finde ist auch der Umgang damit relativ leicht, solange man ein gewisses "Grundwissen" in Sachen C++ mitbringt. Schaue es dir einfach mal an, vielleicht ist es ja das was du suchst :).



  • Sehr interessant, dankeschön. Davon hab ich ehrlich gesagt noch nicht mal was gehört.

    Ich werde mir die Sache diese Nacht mal anschauen.

    OpenGL Unterstütung ist schonmal dabei...



  • OpenGL-Bücher sind in Deuschland teuer. Es gibt einige gute englische, aber deutsche Bücher zu dem Thema sucht man mit der Lupe.

    Generell musst du entscheiden was du möchtest.
    3D oder 2D. Damit fängts an. Und es gibt so viele SDKS und Frameworks da draussen, da muss man selbst wissen was man mag.

    Hier mal ne kleine und nicht komplette Übersicht:
    SDL - Das "DirectX" für Linux, gibts auch für Windows.
    Irrlicht - 3D Rendering Engine. Kein direkter Zugriff auf Direct X oder OpenGL nötig. Und keine Kenntnis nötig. Windows, Linux.
    OGRE - Object oriented Graphics Rendering Engine. Kein direkter Zugriff auf Direct X oder OpenGL nötig. Und keine Kenntnis nötig. Windows, Linux.
    HGE - Haefs GameEngine (2D), Windows only. Nutzt DirectX.
    GLUT - OpenGL Utility, zur reinen Erstellung des Fensters und Zugriff auf Input und Threads, also alles was Platform-abhängig ist.

    Für OpenGL würde ich dir aber generell folgende Seite empfehlen zu lesen:
    http://nehe.gamedev.net
    Da kommt keiner drum rum :D.
    Der Code ist zwar mit WINAPI aber man sollte es verstehen und unten gibts den Tutorial Code auch zum Download mit GLUT, welches ja wie oben genannt, die WINAPI kapselt (auf anderen Systemen die entsprechende OS-API).

    rya.
    Am Rande bemerkt: Man braucht kein MFC um DirectX zu verwenden, es reicht die DirectX SDK die man auch mit Express installieren kann. Es wird halt keine Projektvorlage angelegt, was auch nicht schlimm ist. WinAPI fürs Fenster kann jede MSVC-Version.



  • http://www.allegro.cc - demnächst wird AllegroGL integriert.

    Die WinAPI wird hierbei gewrappt. Sie ist zwar effektiv vorhanden, aber Du merkst nichts davon, wenn Du nicht willst. Die Library ist nach wie vor in C gehalten, aber das sind simple Funktionsaufrufe, die Du in eigenen Klassen verwenden kannst.

    Download-Bereich: http://www.allegro.cc/files/

    Früher waren mal andere Compiler nötig um es selbst zu generieren, mittlerweile reicht MSVC (für 8.0 ist Servicepaket 1 nötig, lese ich gerade)
    Solltest aber die Runtime-Dinge trotzdem dazu nehmen, denn ich nehme mal an, dass diese mit der optimierenden Version generiert wurde - was Deine Version wahrscheinlich nicht kann.

    Limit: Max. Auflösung war mal 1024*768, weiß nicht, ob sich daran was geändert hat.
    Die Library hat mit der MFC nichts zu tun, (ist u.U. jedoch kombinierbar).
    Greift (ohne AllegroGL) grafikmäßig wahlweise auf's GDI oder DirectX zu.
    Doc ist in HTML dabei - kann sein, dass sogar auch in deutsch.
    AllegroGL ist derzeit eine eigenständige Zusatzlibrary.

    Hab's grad benutzt, um den guten alten Dungeon Master von 1988 nochmal auf dem PC ins Leben zu erwecken. Retro ftw! Läuft! 🕶



  • Scorcher24 schrieb:

    Für OpenGL würde ich dir aber generell folgende Seite empfehlen zu lesen:
    http://nehe.gamedev.net
    Da kommt keiner drum rum :D.
    Der Code ist zwar mit WINAPI aber man sollte es verstehen und unten gibts den Tutorial Code auch zum Download mit GLUT, welches ja wie oben genannt, die WINAPI kapselt (auf anderen Systemen die entsprechende OS-API).

    Oder mit der SDL. OpenGL + SDL ist eigentlich auch eine ganz nette Kombination. Und damit kannst du dann dein Programm auch noch unter anderen Systemen compilieren, als nur unter Windows. Bei NeHe sind außerdem meistens auch Code-Beispiele für die SDL dabei.

    http://www.libsdl.org/



  • ProgChild schrieb:

    Scorcher24 schrieb:

    Für OpenGL würde ich dir aber generell folgende Seite empfehlen zu lesen:
    http://nehe.gamedev.net
    Da kommt keiner drum rum :D.
    Der Code ist zwar mit WINAPI aber man sollte es verstehen und unten gibts den Tutorial Code auch zum Download mit GLUT, welches ja wie oben genannt, die WINAPI kapselt (auf anderen Systemen die entsprechende OS-API).

    Oder mit der SDL. OpenGL + SDL ist eigentlich auch eine ganz nette Kombination. Und damit kannst du dann dein Programm auch noch unter anderen Systemen compilieren, als nur unter Windows. Bei NeHe sind außerdem meistens auch Code-Beispiele für die SDL dabei.

    http://www.libsdl.org/

    Danke für den Hinweis, das hab ich vergessen, aber er hätte es beim Besuch eh gesehen *g*.
    rya.



  • Wie Mizar schon erwähnt hat würde auch ich zu SFML raten ist noch nicht so beklannt wie beispielsweise SDL macht aber wirklich SPaß...

    es ist portabel und hat zu vielen Programmiersprachen bereits Schnittstellen
    (relativ gesehen und leider nicht zu JavA 😞 )

    es ist aber wirklich einfach zu bedienen ... selbst ich als absoluter nicht-könner hab es geschafft in kurzer zeit einen pong-klon zu schreiben

    sieh aber mal selbst:

    http://www.sfml-dev.org/



  • Hab mir auch grad mal die Featureliste angesehen - das sieht sehr stark aus.
    Sollte dem Allegro in einigen Punkten überlegen sein (mehr importierbare Formate, Network, Windowing und jetzt schon OpenGL-Anbindung). Sehr schön!



  • Sfml ist doch auch nur ein objektorientierter Wrapper um SDL :).

    SDL - Das "DirectX" für Linux, gibts auch für Windows.

    Nein, das kann ich so nicht stehen lassen.



  • knivil schrieb:

    Sfml ist doch auch nur ein objektorientierter Wrapper um SDL :).

    SDL - Das "DirectX" für Linux, gibts auch für Windows.

    Nein, das kann ich so nicht stehen lassen.

    Warum? Es wird gerne so genannt..
    http://www.linuxdevcenter.com/pub/a/linux/2001/09/21/sdl.html
    rya.



  • Ich kann mit SDL z.B. einen DirektX bzw. OpenGL Kontext (und einige andere) anlegen, aber das war es dann auch schon. Es bietet eigene 2D Bitmap- und Anzeigeoperationen, aber nur 2D. Eventloops, Netzwerk und Sound wird auch bereitgestellt.

    SDL is similar to Microsoft's DirectX API.

    Keine Ahnung, wie die darauf kommen. Hier ist die Funktionsuebersicht fuer den Teil Video. Als ich damals DirectX programmiert habe, nutzte ich hauptsaechlich Funktionen, die nicht zu diesen aehnlich waren.



  • Nur so am Rande - informier Dich, ob Deine Uni/Fh auch am MSDNAA Programm teilnimmt. So könntest Du auch an eine schnieke VS Version kommen. (Bei uns wissen das die meisten nämlich auch nicht..)


Anmelden zum Antworten