Einstieg in 2D-Spielprogrammierung



  • Hallo, wahrscheinlich gab es diesen Thread x-mal allerdings finde ich zu diesem Thema immer nur Threadersteller die noch gar keine Programmiererfahrungen haben.

    Ich beherrsche C++ und Java eigentlich recht sicher. Nun wollte ich fragen, wie ich am besten in die 2D-Spieleprogrammierung einsteige. Und bitte kein GameMaker und ähnliches. Ich würde gerne an c++ anknüpfen und wollte allgemein fragen, was ihr mir denn da empfehlen könnt 🙂

    gruß



  • C++-Standard kennt keine GUI, es sei denn du willst ein Konsolenspiel.


  • Mod

    [Rewind] schrieb:

    C++-Standard kennt keine GUI, es sei denn du willst ein Konsolenspiel.

    C++-Standard kennt auch keine Konsole, es sei denn, du willst ein Spiel, das man auch auf einem Lochstreifentacker spielen kann.

    edit: Und als Einstieg: Guck mal im Spieleforum nach den gängigen Spieleframeworks und ihren Vor- und Nachteilen. Du willst nicht alles von Grundauf neu schreiben, glaub mir. Aber ein Framework ist auch weit entfernt von Gamemaker.



  • Hol dir SFML und leg los 😉



  • Was genau sind denn die Unterschiede zwischen DirectX, OpenGL, SDL, ... ich bin mit diesen ganzen begriefen total überladen und weiß nun nicht richtig auf was ich mich stürzen soll. Ich würde gerne mit etwas programmieren, dass nicht in 1-2 Jahren aus der Mode ist sondern was längeren bestand und womit man auch größere Projekte realisieren kann. Allerdings bin ich ausschließlich an 2D interessiert



  • Ich kann mich nur wiederholen

    dot schrieb:

    Hol dir SFML und leg los 😉

    😉



  • Ich kann dot auch nur wiederholen, SFML ist ein sehr schöner Einstieg. Meiner Meinung nach überhaupt eine der schönsten C++-Bibliotheken.

    Ach ja, und nimm dann gleich SFML 2, genauer die Development-Version auf GitHub. Mit SFML 1 musst du eines Tages enorm viel Code abändern, hast weniger Features und mehr Bugs.



  • Könntet ihr mir ein paar Gründe nennen warum ich nicht direkt OpenGL oder DirectX nehmen sollte? Wie sieht es mit der Anbindung an den IPod aus? 🙂


  • Mod

    Unterschiede zwischen DirectX, OpenGL und SDL

    P.S.: Und ja: SFML ist ein guter Anfang.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum Spiele-/Grafikprogrammierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Danke schon mal so weit 🙂 Wo finde ich denn gute SFML tutorials und ist eine iPod-Anbindung möglich?



  • Tutorials auf der Homepage. iOS: 1st Hit bei google



  • JoexY12 schrieb:

    Könntet ihr mir ein paar Gründe nennen warum ich nicht direkt OpenGL oder DirectX nehmen sollte?

    Zu Low-Level, wenn du fertige Resultate sehen willst. Du brauchst viel mehr Code, um etwas zu erreichen. Ausserdem hast du bei SFML nicht nur Grafik, sondern auch die Behandlung von Benutzereingaben, Sound, Netzwerk, Threads und Unicode. Im Gegenzug hast du bei OpenGL und DirectX dafür mehr Flexibilität sowie die Möglichkeit zur 3D-Programmierung.

    JoexY12 schrieb:

    Wie sieht es mit der Anbindung an den IPod aus? 🙂

    Momentan schlecht. Der SFML-Entwickler plant die Unterstützung von Smartphones, aber nicht in nächster Zukunft. Soviel ich weiss, sind grössere interne Änderungen (OpenGL ES?) notwendig.



  • Hallo, ich bin's nochmal und ich danke Euch für Eure Antworten. Ich habe mich für DirectX entschlossen, da es mir nicht unbedingt um schnelle Ergebnisse geht.

    Ich beherrsche eigentlich alles was ansi-c++ so zu bieten hat, von mehrfachvererbung über die STL usw. ... Wenn ich jetzt aber mit directX anfangen möchte, so benötige ich auch einen Einstieg in die Windowsprogrammierung. Und hier fängt alles an: Soll ich dafür klassisches Win32 erstmal lernen oder MFC, .net? Ich bin da total verwirrt 😞

    Danke im voraus 🙂



  • Du brauchst erstmal nur ganz wenig WinAPI. Fenster erzeugen reicht und das wird praktisch in jedem Einsteigertutorial abgehandelt. Vergiss MFC. Hol dir ein Direct3D Einsteigerbuch. Wenn es dir darum geht, die Technik dahinter zuverstehen und nicht darum, ein Spiel zu machen, ist Direct3D natürlich das, was du dir anschaun willst. Wenn es dir darum geht ein 2D Spiel zu machen, nimm SFML.



  • Danke, das war es auch schon. 🙂



  • Willst du Spiele programmieren oder Grafikprogrammierung lernen? Bei ersterem kann ich dir von DirectX nur abraten, denn das ganze Low-level rumgefummel, wie rapso mal schön sagte

    rapso schrieb:

    macht euer spiel nicht ein micron besser

    .

    Was wertvolles lerst dadurch auch nicht. Paar Texturierte Quads auf den Bildschirm zeichnen kann jeder, das macht dich nicht zu nem besseren Spieleprogrammierer und ist nur verschwendete Zeit, die du viel besser ins lernen von wichtigeren Themen wie Softwarearchitektur in Spielen, AI, Netzwerkzeug, Scripting Einbindung, "zufällig erstellte Welten", etc. investieren solltest.

    Wenn du ne Idee für ein Spiel hast dann gibt es auf dem Weg zu seiner Komplettierung i.d.R. eine große Menge zu lernen, und zu lernen wie man Sachen auf den Bildschirm malt ist imo eins der trivialsten Dinge die du besser gleich durch 3rd Party-Bibliotheken ersetzen solltest.



  • Was meinst Du mit 3rd-Party-Bibliotheken? 🙂



  • Ich habe schon größere Projekte programmiert, auch in Teams. Allerdings wahren dass jetzt keine "High-End" sprachen und ich wollte einfach mehr in Richtung profesionell gehen. Aber dein Kommentar mit dem Low-Level-Zeugs hat mich gerade in meinem ganzen Vorhaben erschüttert. Ich würde mich freuen, wenn du mir genauer sagen könntest, was du mit 3rd-Party-Bibl. meinst.



  • ich denke, damit meint er schon fertige 3D-Engines wie IrrLicht, Ogre, Xors3D usw. Damit muss man sich nicht mehr so sehr mit den Tiefen von DirectX oder OpenGL beschäftigen, sondern hat bereits an ganzes Framework an Funktionalität für die Entwicklung von 3D-Anwendungen. Weiterer "Vorteil" ist u.U. das diese Frameworks sowohl DirectX, OpenGL als auch Software-Renderer unterstützen und man sich als Entwickler weniger um Details kümmern muss.

    Sich direkt mit den einzelen D3D-Aufrufen auseinanderzusetzen, hat mich meist eher frustriert, wobei das Thema sicherlich auch sehr interessant sein kann.


Anmelden zum Antworten