[Hilfe] Ich weis nicht wie ich anfange Spiele zu programmieren.



  • @GreenBaron sagte in [Hilfe] Ich weis nicht wie ich anfange Spiele zu programmieren.:

    Du hattes Game Engines erwähnt, der Liste möchte ich noch Godot hinzufügen. Für alle Engines braucht man Kenntnisse in einer Skriptsprache.

    Wenn man das Spiel in C++ entwickelt braucht man keine Scriptsprache.

    Wenn du eigenes Framework selber programmieren möchtest (ist gar nicht soooo schwer mit OpenGL z.B.)

    Naja einfach ist es nicht.

    Grundlegende lineare Agebra ist auch noch eine Vorrausetzung, sonst streikt der Kopf schon bei den ersten Transformationen und Projektionen 🤯

    Für ein 2D Jump & Run reicht das was man in der Schule gelernt hat ziemlich gut aus.

    Welche API man auch benutzt, auf einem sehr abstrakten Level gesehen, ist so ein Spiel "nur" eine Konkretisierung von initialisieren, Schleife betreten, Frame vorbereiten, Frame malen, Frame abschließen, Schleife beenden, aufräumen.

    Dann kann man auch sagen: Das Auswerten der CERN Daten ist auch nur eine Konkretisierung von initialisieren, Daten einlesen, berechnen, ausgeben und cleanup. Kann man sagen. Macht bloss keinen Sinn es zu sagen.



  • Natrürlich, wenn man nur Jump & Run programmiert braucht man auch kein C++. Da reicht dann eine sehr simple Game Engine.

    Doch, es macht Sinn. Immer den Überblick behalten. Sonst verläuft man sich. Gerade im CERN passiert das täglich 😉



  • @GreenBaron sagte in [Hilfe] Ich weis nicht wie ich anfange Spiele zu programmieren.:

    Natrürlich, wenn man nur Jump & Run programmiert braucht man auch kein C++. Da reicht dann eine sehr simple Game Engine.

    Ich hab ja auch nicht behauptet dass man dazu C++ braucht. Ich sag nur man kann es machen. Und was mehr Sinn macht, kommt wohl auch drauf an was man lernen will. Wenn man besser C++ lernen will, macht es vielleicht Sinn es doch mit C++ zu machen, selbst wenn es mit einer Klickibunti-Engine einfacher ginge.

    Doch, es macht Sinn.

    Nein, es macht keinen Sinn. Es ist einfach nur Gelaber.



  • Das muß ich mir auch von einem Vielschreiber nicht sagen lassen. Der Laberfritze hier bist du. Dein Beitrag ist weder hilfreich noch zielführend. Und du hast mich nicht verstanden. Für eine game engine braucht man Kenntnisse in der Skriptsprache die diese verlangt. Und game engines sind mehr als Klick bunti, das ist Gelaber.

    Die von mir beschriebene game loop ist (im Unterschied zu einer Datenauswertung) mit das wichtigste Konzept der Spielentwicklung. Wenn der Newbie eine google suche betreibt wird er hoffnungslos veraltete Techniken wie die fixed function pipleline, und veraltete Tools wie glut oder d3d9, das keine ausgefeilte Kontrolle der game loop erlaubt, finden, und diesen vielleicht folgen. Moderne Entwicklung ist damit nicht möglich. Deshalb mein Hinweis auf moderne Verfahren. Das ist mehr als Gelaber, glaub mir. Guck mal auf gamedev.net, wie oft wir da auf diese Vorstellungen treffen.

    Wenn OP eine game engine benutzen möchte (was grundsätzlich keine schlechte Idee ist am Anfang), so kann er dort zum Beispiel den Tutorials folgen. Godot ist open source, C++, verwendet eine pythonesque Skriptsprache und hat Tutorials und Beispielprojekte für jump&run und "platformer" in 2d und 3d. Ich denke (weiß aber nicht), daß da der Fortschritt am schnellsten passiert und auch die Konzepte besser übertragen werden als per C++/API. Später kann der Schritt ja immer noch gemacht werden.

    So als Vorschlag ... links gerne fallsgewünscht 🙂

    Edit: noch was: selbsrt mit C++ braucht man früher oder später eine Skriptsprache, oder eine markup language, wenn es um die Beschreibung von Metadaten oder dem Verhalten von game objects geht (sorry fÜr's denglish). C++ stream io ist da schnell über seine Grenzen 😒



  • Ich stelle mal noch ein paar links zum Thema Spieleentwicklung ein. Ich selbst kenne aber nur OpenGL und ein bischen Vulkan.

    Vielfach verwendet als library für's windowing und input handling wird glfw3. Glfw ist relativ schlank und kann mit OpenGL oder Vulkan arbeiten.

    Als loader für OpenGL wird vielfach glew oder (besser) glad verwendet. Glad lädt für OpenGL nur das was man braucht (die Version im "core profile" mit gewählten "extensions"). Glew bringt alles mit. Wer's braucht ... 🙂

    learnopengl.com bereitet einer Anzahl von Meinungen nach ganz gut auf "modernes" OpenGL vor, die pipeline mit programmierbaren shadern, vertex arrays, index buffer, etc pp. Außerdem geht es schon auf ein paar fortgeschrittene Themen ein, aber das sieht man ja. Auf der anderen Seite, wenn irgendwas nach glBegin(), glEnd(), glVertex() oder glMatrix() aussieht dann ist es aus einem anderen Jahrtausend und sollte ignoriert werden. Wenn man den Weg mit C++ und OpenGl weitergehen möchte sind das "rote" und das "blaue" Buch, OpenGL Programming Guide 9th und OpenGL SuperBible 7th edition eigentlich ein Muß. Uneigentlich auch.

    Zum Thema DirectX knn ich nix beitragen, außer deß es proprietär ist.

    Wenn aber zuerst mal eine Game Engine herhalten soll, würde ich Godot nennen, in der Version mit GDScript. Es gibt eine Reihe von Tutorials und Beispielprojekte, auch platformer in 2D.

    In der 2D Welt wird's auch ohne gehen, aber spätestens bei 3D und Physik, Kollisionen berechnen, Impulse integrieren, etc, braucht man Mathe. Leider. Ich hasse es auch 🙂

    Natürlich gehen alle anderen oben erwähnten Tools und Libraries im Prinzip auch, keine Frage.

    -gb



  • @GreenBaron sagte in [Hilfe] Ich weis nicht wie ich anfange Spiele zu programmieren.:

    Und game engines sind mehr als Klick bunti, das ist Gelaber

    Die Antwort von @hustbaer war zwar wirklich selten dämlich (oder sag mir welches kommerzielle Spiel der letzten zig Jahre nicht mit so einem klicki-bunti erstellt worden ist), aber so wie ich ihn verstanden habe, wollte er nur sagen, dass man ein Spielchen mit C++ form scratch programmieren kann um etwas C++ zu lernen. Wenn das Ziel

    aber ist ein Spiel zu schreiben und nicht C++ zu lernen, dann nimmt man bitte schön eine Game-engine.

    @GreenBaron sagte in [Hilfe] Ich weis nicht wie ich anfange Spiele zu programmieren.:

    würde ich Godot nennen, in der Version mit GDScript. Es gibt eine Reihe von Tutorials und Beispielprojekte,

    Gerade weil das doch relativ eher überschaubar ist, würde ich unreal oder unity empfehen.



  • Klar. Viele, auch sogenannte triple-a titel werden mit engines erstellt, insbesondere im mobilen Bereich edit: und viele engines sind aus Spielen entstanden. Aber viele Spiele-Entwickler, auch Einzelkämpfer, schreiben auch ihr eigenes Framework, einfach weil's geht oder weil die engine halt das was man braucht nicht hat oder weil sie nicht auf bestimmte Features warten wollen.

    Ich würde mich beispielsweise sicherlich kräftig überheben bis ich im Godot Sourcecode so weit bin firm bin daß ich meine eigenen "Erweiterungen" einbauen kann. Andererseits ist eine kleine Bibliothek für grundlegenden OpenGL Renderer schnell geschrieben, wenn man sich auskennt ein paar Wochen. Und dann weiß ich was hab (guten abend 😌 ).

    Wie auch immer, mal schauen wie sich Op entscheidet. Hilfe gibt's bestimmt genug ☺

    Ich habe Godot ins Spiel gebracht weil es komplett lizenzfrei ist und komplett nur 60mb wiegt. Da kann man nix verbiegen, ist nur eine Datei. Aber whatever, viele Wege führen zum ersten Platformer 🙂



  • @GreenBaron sagte in [Hilfe] Ich weis nicht wie ich anfange Spiele zu programmieren.:

    Das muß ich mir auch von einem Vielschreiber nicht sagen lassen.

    Das ist auch so ne ulkig dämliche Formulierung. "Muss ich mir nicht sagen lassen"... was soll das bedeuten? Aber irgendwie stimmig dass du sie verwendest.

    Der Laberfritze hier bist du. Dein Beitrag ist weder hilfreich noch zielführend. Und du hast mich nicht verstanden.

    Klar hab ich dich verstanden. Nur du hast nicht verstanden worum es hier geht und auf welchem Level der/die OP ist.

    Für eine game engine braucht man Kenntnisse in der Skriptsprache die diese verlangt. Und game engines sind mehr als Klick bunti, das ist Gelaber.

    Eine Game Engine "verlangt" eine Skriptsprache. Ulkig. Ja, es gibt manche Sprachen die nur eine einzige Skriptsprache unterstützen und auch keine Möglichkeiten anbieten sie "direkt" (=ohne Scripts) zu verwenden. Die meisten unterstützen aber entweder mehrere Skriptsprache und/oder lassen sich auch direkt mit C++ verwenden.

    ps: Wo hab ich geschrieben dass Engines nicht mehr als Klickibunti sind? Nirgends.

    Die von mir beschriebene game loop ist (im Unterschied zu einer Datenauswertung) mit das wichtigste Konzept der Spielentwicklung.

    Ja. Wenn du das so geschrieben hättest, hätte ich auch nix gesagt. Nur was du zuerst geschrieben hast vonwegen Konkretisierung ... das ist IMO halt einfach nur albern. Es mag korrekt sein, aber nicht jede korrekte Aussage ist auch sinnvoll.

    Wenn der Newbie eine google suche betreibt wird er hoffnungslos veraltete Techniken wie die fixed function pipleline

    Hat nix mit dem Game-Loop zu tun.

    und veraltete Tools wie glut oder d3d9, das keine ausgefeilte Kontrolle der game loop erlaubt, finden

    Ich kenne Glut nicht und will mich daher nicht zu weit aus dem Fenster lehnen. Aber ich kenne D3D9 und OMFG falscher könntest du nicht liegen. Natürlich kann man mit D3D9 nen klassischen Game-Loop schreiben. Muss man sogar.

    Moderne Entwicklung ist damit nicht möglich. Deshalb mein Hinweis auf moderne Verfahren. Das ist mehr als Gelaber, glaub mir. Guck mal auf gamedev.net, wie oft wir da auf diese Vorstellungen treffen.

    Alter. Ich weiss wie man Spiele programmiert. Vielleicht sogar besser als du. Nur glaub du mir bitte dass der/die OP mit deinem hilfreichen "Konkretisierung" Hinweis vermutlich nichts hat/wird anfangen können. Bei dem was du danach geschrieben hast ist die Chance viel viel höher.

    Wenn OP eine game engine benutzen möchte (was grundsätzlich keine schlechte Idee ist am Anfang), so kann er dort zum Beispiel den Tutorials folgen. (...)

    Ja, sicher. Hab ich irgendwo was anderes behauptet? Die Frage des/der OP war ob man ne Engine braucht oder nicht. Und man braucht keine. Dass es oft eine gute Idee ist trotzdem eine zu verwenden hab ich auch geschrieben.

    Edit: noch was: selbsrt mit C++ braucht man früher oder später eine Skriptsprache, oder eine markup language, wenn es um die Beschreibung von Metadaten oder dem Verhalten von game objects geht

    Nein, braucht man nicht. Es mag oft sinnvoll sein eine zu verwenden, aber brauchen tut man keine. Und ob es sinnvoll ist oder nicht kommt eben wieder auf's Spiel drauf an. Und was das Ziel ist, ein fertiges Spiel oder zu lernen.

    C++ stream io ist da schnell über seine Grenzen 😒

    Auch wieder so eine lolige Formulierung. Ich mag die iostreams auch nicht. Aber abgesehen davon dass sie nicht unbedingt performant sind und viele Dinge umständlich, ... was für Grenzen?



  • Mich würde mal interessieren wie die Moderation zu solchen Absonderungen steht. Das ist mir zu arg mit persönlichen Angriffen und Rechthaberei belastet und es fehlt an sinnbehaftetem Inhalt.

    Wenn das hier der Umgangston ist werde ich wieder gehen. Woanders ist's schöner 😉



  • @Jockelx sagte in [Hilfe] Ich weis nicht wie ich anfange Spiele zu programmieren.:

    Die Antwort von @hustbaer war zwar wirklich selten dämlich (oder sag mir welches kommerzielle Spiel der letzten zig Jahre nicht mit so einem klicki-bunti erstellt worden ist),

    Wo hab ich etwas anderes behauptet oder impliziert? Davon abgesehen war von kommerziellen Spielen auch nie die Rede. Also was genau (was ich auch wirklich geschriebenhabe) ist jetzt selten dämlich an meiner Antwort? Das würde mich schon interessieren. (EDIT: Nur damit das klar ist und weil man die Stimmung oft nicht aus dem Geschriebenem rauslesen kann: Ich bin jetzt nicht wirklich angepisst oder sowas. Es würde mich nur wirklich interessieren wieso du den Beitrag für selten dämlich hältst.)

    aber so wie ich ihn verstanden habe, wollte er nur sagen, dass man ein Spielchen mit C++ form scratch programmieren kann um etwas C++ zu lernen.

    Ja, so war das gemeint, denn das war u.A. auch die Fragestellung.

    Wenn das Ziel aber ist ein Spiel zu schreiben und nicht C++ zu lernen, dann nimmt man bitte schön eine Game-engine.

    Auch das habe ich nie in Frage gestellt, und in ähnlicher Form sogar auch selbst geschrieben. Die Sache ist aber: wir wissen nicht worum es dem/der OP geht.



  • Ich würde ja zu SFML raten, da es sehr übersichtlich ist und es viel beispiele gibt. Außerdem ist das dann C++ und nicht C. Sich SDL anzusehen kann auch nicht schaden da es in SFML keine Möglichkeit gibt (zumindest mir nicht ) spritsheets zu verwenden und bestimmt auch einiges mehr.



  • @hustbaer sagte in [Hilfe] Ich weis nicht wie ich anfange Spiele zu programmieren.:

    Es würde mich nur wirklich interessieren wieso du den Beitrag für selten dämlich hältst.

    In welchem Zusammenhang verwendest du Klicki-Bunti?
    Für mich heisst das: sieht vielleicht ganz nett aus, kann aber unter der Haube gar nichts.
    So habe ich dein Klicki-Bunti zumindest verstanden und das wäre natürlich Unsinn.

    ps: cool dass du nicht angepisst bist. Einen Beitrag als selten dämlich zu beschreiben ist nämlich selten dämlich.



  • @xyLotus
    Lass dich bitte durch die Diskussion hier nicht erschrecken.

    Ich empfehle dir SDL oder SFML weil ich denke, dass diese Libs einen einfachen Einstieg in die Spiele Entwicklung bieten und die Einarbeitungszeit relativ kurz sein sollte.

    Du kannst auch mit anderen Libs (OpenGL, DirectX,...) ein Spiel programmieren. Aber diese sind meines Erachtens komplizierter, da diese Low Level sind.

    Auch bei Game Engines hätte ich die Befürchtung einer etwas längeren Einarbeitungszeit auch wenn ich da an Blender und Libs wie Panda3D denke. Und Blender ist bekannt für seine lange Einarbeitungszeit. Und bei der Panda3D Wiki Seite findet man schnell Begriffe wie KI, Statcharts,... und das empfinde ich suboptimal für den Spiele Einstieg.

    Nein wirf ruhig mal einen Blick in SDL oder SFML.

    Ich habe auch ein Tower Defense Spiel auf Github gefunden:

    https://github.com/BilalDev/TowerDefense



  • @Jockelx sagte in [Hilfe] Ich weis nicht wie ich anfange Spiele zu programmieren.:

    @hustbaer sagte in [Hilfe] Ich weis nicht wie ich anfange Spiele zu programmieren.:

    Es würde mich nur wirklich interessieren wieso du den Beitrag für selten dämlich hältst.

    In welchem Zusammenhang verwendest du Klicki-Bunti?

    Also wenn es daran liegt...
    Ich verwende klickibunti falsch. Eines dieser Worte wo ich schon 3x nachgelesen habe wie es von anderen verstanden wird (oder zumindest was Wikipedia dazu sagt), aber ich merk's mir einfach nicht auf Dauer. Das hält dann ein paar Monate und 1 Jahr später verwende ich es wieder falsch.

    Was ich mit klickibunti Engine meine ist einfach eine Engine mit grafischem Editor mit der man ohne viel von Spieleentwicklung zu verstehen ein Spiel entwickeln kann. Klicksi-Objekt einfügen. Doppelklicksi im Event-Tab auf "collide" und 3 Zeilen Code reinschreiben. "Run" drücken und freuen. (Sinngemäss)
    Dass damit Spieleentwicklung schneller geht als wenn man es ohne grafischen Editor und 100 Code-Assets/Plugins selbst schreibt ist klar. Also nicht notwendigerweise abwertend gemeint.

    Also ja, sorry, my bad. Sagen wir Teletubby-Engine dazu 😆

    ps: cool dass du nicht angepisst bist. Einen Beitrag als selten dämlich zu beschreiben ist nämlich selten dämlich.

    Naja, manchmal kann das schon angebracht sein 😅



  • @hustbaer sagte in [Hilfe] Ich weis nicht wie ich anfange Spiele zu programmieren.:

    Ich verwende klickibunti falsch.

    Da bist Du nicht alleine. Aber was Du damit gemeint hast war schwer misszuverstehen.



  • @hustbaer

    Was ich mit klickibunti Engine meine ist einfach eine Engine mit grafischem Editor mit der man ohne viel von Spieleentwicklung zu verstehen ein Spiel entwickeln kann. Klicksi-Objekt einfügen. Doppelklicksi im Event-Tab auf "collide" und 3 Zeilen Code reinschreiben. "Run" drücken und freuen. (Sinngemäss)
    Dass damit Spieleentwicklung schneller geht als wenn man es ohne grafischen Editor und 100 Code-Assets/Plugins selbst schreibt ist klar. Also nicht notwendigerweise abwertend gemeint.

    Auch wenn's OT ist, ich hätte Klickibunti genau so verwendet


  • Mod

    @A-Former-User sagte in [Hilfe] Ich weis nicht wie ich anfange Spiele zu programmieren.:

    Mich würde mal interessieren wie die Moderation zu solchen Absonderungen steht. Das ist mir zu arg mit persönlichen Angriffen und Rechthaberei belastet und es fehlt an sinnbehaftetem Inhalt.

    Meine Mod Meinung: Ihr habt beide versucht rechthaberisch zu sein und eloquent zu wirken. Im echten leben wuerdet ihr vermutlich viel besser auf einen Nenner kommen, aber im Internet steigert ihr euch langsam von Post zu Post.

    Sowas inkorrektes wie "Für alle Engines braucht man Kenntnisse in einer Skriptsprache." triggert hustbaer, und soeine herabwuerdigende Antwort "Es ist einfach nur Gelaber." triggert vermutlich viele anderen.

    Ich wuerde vorschlgen, wenn ihr die Antwort des anderen gelesen habt, antwortet 24h spaeter, das koennte zu einer viel nuechterneren Wortwahl fuehren.



  • @rapso sagte in [Hilfe] Ich weis nicht wie ich anfange Spiele zu programmieren.:

    und soeine herabwuerdigende Antwort "Es ist einfach nur Gelaber." triggert vermutlich viele anderen.

    Ich wuerde vorschlgen, wenn ihr die Antwort des anderen gelesen habt, antwortet 24h spaeter, das koennte zu einer viel nuechterneren Wortwahl fuehren.

    Das war volle Absicht, aus der Liste der Formulierungen die ich im Sinn hatte aber eine der freundlichsten Varianten 😉
    Ist ja auch nicht so dass ich das in meiner ersten Antwort so formuliert hätte. Der ehemalige Benutzer hat da schon ein bisschen dran gearbeitet.


Anmelden zum Antworten