Frage zur Spielprogrammierung



  • Hi!
    Ich wollte jetzt mal mit den Basics von
    der C++ Spieleprogrammierung Anfangen
    und will dabei nicht stark von der Sprache C++ abweichen.
    (Also so ne Art Game Engine mit C++ Syntax^^)

    Welche Engine bzw. welches Programm
    eignet sich für einen totalen Anfänger
    in der Spieleprogrammierung am besten?

    Also für echt leichte Projekte z.B
    Ping Pong usw. also es muss noch kein shooter oder so sein 🙂

    Welche Game Engine oder welches Programm würdet ihr Empfehlen??

    MFG: N290 😋



  • Ich gehe mal davon aus dass du die WinAPI in Grundzügen drauf hast.
    Ich würde nicht gleich mit einer Engine anfangen. Snake zB. kann man wunderbar mit GDI Funktionen basteln. Wenn das mehr oder weniger läuft kannst Du dir ja DirectX mal angucken (zumindest die einfachen Sachen wie Vertexbuffer 3DTransformation und wie das nicht alles heißt).
    Dann hat man zumindest in Grundzügen eine Idee was da so passiert wenn man die magischen Befehle einer GameEngine nutzt 😉

    Falls Du aber wirklich sofort mit einer fertigen Engine arbeiten möchtest, kann ich dir leider auch nicht weiterhelfen. Da wirste auf andere Posts warten müssen..



  • Vorausgesetzt dass die Grundlagen von C++ sitzen würde ich wohl SFML empfehlen. Ist nicht wirklich eine Engine aber der Glaube dass man eine Engine braucht um ein Spiel zu schreiben ist sowieso Blödsinn 😉



  • dot schrieb:

    Vorausgesetzt dass die Grundlagen von C++ sitzen würde ich wohl SFML empfehlen. Ist nicht wirklich eine Engine aber der Glaube dass man eine Engine braucht um ein Spiel zu schreiben ist sowieso Blödsinn 😉

    Die Frage wäre dann der Reiz etwas vorhandenes zu benutzen und nicht zu wissen, wie die Interna aussehen. Nachlesen? Klingt nicht spannend.

    Ich kann nur für mich sprechen, wenn ich behaupte das mich andere Engines nicht anziehen, wenn ich selber eine schreiben könnte um hinterher zu sehen, was ich geschafft habe und eventuell noch schaffen werde. Das bezieht sich aber auch nur aufs Hobby. Müsste ich eine Engine verwenden die mir vorgegeben wird, dann würde ich diese auch verwenden, was nicht heißen soll, dass ich mit Engines arbeite Spiele entwickle.





  • Möchtest du in die dreidimensionale Welt eintauchen, empfehle ich die freierhältliche OGRE Engine. Mit einfachsten Mitteln kannst du die Engine zum Laufen bringen und schnell Ergebnisse erzielen.

    Lade Dir die Engine und arbeite einfach alle Tutorials durch.



  • N290 schrieb:

    Ich wollte jetzt mal mit den Basics von
    der C++ Spieleprogrammierung Anfangen
    und will dabei nicht stark von der Sprache C++ abweichen.
    (Also so ne Art Game Engine mit C++ Syntax^^)

    Nur damit du dich nicht wunderst: die meisten Game-Engines (vor allem die meisten freien/billigen) sind/haben keine integrierten Editoren wo man Objekte anklickt und dann die Gamelogik reinschreibt, sondern sind eher Libraries die man dann aus einem normalen Programm heraus verwendet.

    Welche Engine bzw. welches Programm
    eignet sich für einen totalen Anfänger
    in der Spieleprogrammierung am besten?

    Hm. Die Unity-3D vielleicht?

    SFML, was ja schon empfohlen wurde, ist nicht schlecht, allerdings solltest du dafür schon halbwegs gut C++ können, und du musst mit der SFML auch noch recht viel selbst programmieren. Spiele "zusammenklicken" kann man damit nicht.



  • Also wenn Du nur Pong machen willst, empfehle ich dir OpenGL. Das ist leich einzuarbeiten.
    Tutorial: http://www.arcsynthesis.org/gltut/

    Danach versteht man auch die Hintergründe besser und kann sich auf vorgefertigte Engines stürzen.
    Unity kann ich empfehlen, die kostenlose Version bietet einiges. UDK (Unreal 3) ist auch sehr nett. Vor allem weil es BSP Brushes kann. Das vermisse ich bei Unity.
    Source Engine ist auch eine Möglichkeit, damit lassen sich auch recht schnell Erfolge feiern und es gibt massig Videos dazu auf YT. Leider auch einige schlechte, aber man merkt sofort welche gut sind. Tipp: Lass die Finger von denen mit Musik :P. Allerdings brauchst du dazu Steam und ein Valve Produkt wie Portal oder Half Life 2, Team Fortress 2, L4D2 etc.



  • Danke für die vielen Antworten! 😃
    Ich wollte nur mal ein bisshen
    schauen wie das alles funktioniert
    und werde ein paar Tutorials anschauen.
    Aber eigt. muss ich noch viel in C++ lernen ^^

    Edit:
    @Scorcher Danke 🙂
    werd ich mal anschauen ^^

    Noch eine Frage.
    Wieso braucht man bei einer Game Engine eine Programmiersprache bzw.
    wie kann man bei einer Game Engine eine Programmiersprache anwenden?
    Das geht eigt. nur über ne Library oder? ^^
    Weil mit Blender kann man gut ohne einer Programmiersprache
    ein spiel machen (hab ich gerade).
    Ich wollte aber unbedingt C++ einbauen.

    Zur info:
    Das Spiel kann jetzt:
    -Player Bewegen
    -Kamera richtet automatisch
    -Mann kann schießen
    -Objekte zerbrechen/fallen bei einem treffer um

    Wäre nett wenn ihr mich da Aufklären könnt.
    Vielen Dank ^^

    MFG: N290



  • oO
    Ich glaube Du solltest dir wirklich erstmal die C/C++ Basics anschauen / lernen. Vielleicht mal ein paar kleinere Programme usw. schreiben. Lernen mit fremd libs umzugehen. Dann kannst Du auch mit der Spieleprogrammierung beginnen.
    Und bei sowas

    Das Spiel kann jetzt:
    -Player Bewegen
    -Kamera richtet automatisch
    -Mann kann schießen
    -Objekte zerbrechen/fallen bei einem treffer um

    fragt man sich da nicht wie das alles funktioniert? Ich meine - zusammenklicken kann jeder 😉



  • Und vieleicht noch etwas zu den Engines:

    Eine Engine ersetzt nicht die Programmiersprache. Eine Engine kann eine Bibliothek sein, die z.B. verschiedene Funktionen für Resourcenverwaltung oder Klassen für Arithmetische Operationen bereitstellt. Die Engine kann auch die Geräteschnittstelle verwalten und z.B. DirectX initialisieren. Sie kann alles mögliche machen - Eine Engine kann auch Klassen für Physik, KI und Sound&Video enthalten. Kurz: Sie nimmt dir eine Menge Arbeit ab. Eine solche Bibliothek kannst du dann in deinem Programm verwenden und damit arbeiten.

    Programmieren musst du dein Spiel aber selbst 🙂



  • Und auch wenn das viele "Gameprogger" anders sehen, ist nicht gleich alles, was ein bisschen Funktionalität vereint, eine Engine...



  • Nexus schrieb:

    Und auch wenn das viele "Gameprogger" anders sehen, ist nicht gleich alles, was ein bisschen Funktionalität vereint, eine Engine...

    Da gebe ich dir recht. Das ist auch der Grund warum ich mein Framework eben nur Framework nenne und nicht Engine. Eine Engine kommt immer komplett daher mit Editoren etc.
    Sowas wie UDK oder Unity ist eine GameEngine.
    Ogre oder Irrlicht wäre eher eine Grafikengine oder eben ein Framework, Library.



  • Seit Wann gehören Editoren zwingend zu einer Engine? Reicht das nicht, wenn die Engine die Geräteschnittstelle verwaltet und sich um die Resourcenverwaltung kümmert und daneben noch Klassen für wasweissichnichtalles zur Verfügung stellt?
    Ist der Begriff Engine nicht auch ein wenig schwammig definiert?



  • @JochenS Danke für die Erklärung ^^
    Ja ich bin wirklich noch ein Anfänger (OMG wer hätte das gewusst :P)
    aber ich wollte mich nur einmal Informieren, da ich mich
    sehr für Spiele Programmierung Interessiere 🙂

    Ich hab auf Youtube auch einen Kanal (PyroTec21)
    bei den ich meine "Spiele" in Konsolen Form
    vorstelle ^^
    Schauts euch vllt. an würde gerne eure Meinung wissen 😋



  • öhm - naja, meinst du das Stein Schere Papier Spielchen?

    Immerhin hast du die ganzen Variablen nicht global definiert :D, dafür aber alle zu Beginn von main.

    Kompiliert bei mir so schonmal garnicht, da includes fehlen (z.b. ctime).

    Dann nutzt du immer (if, ... else if ... else if ... else) - da würden sich switch-case Anweisungen besser eigenen meiner Meinung nach.

    Anstelle von goto + label (ürgs) nutze Funktionen. Sind dir ja ohnehin schon bekannt (z.B. _MainMenu).

    Wenn du mit rand()%3 eine Zufallszahl berechnen lässt, macht es wenig Sinn zu prüfen, ob das Ergebnis 3 ist oder einen anderen Wert als [0,2] hat 😃

    Grüsse

    P.S. ich seh gerade dass es da noch 2 andere Spielchen gab - allerdingds ist die Videoqualität so schlecht, dass man kaum etwas erkennen kann. Aber sieht alles in allem ähnlich aus was den Programmierstil und damit die Fehler betrifft.



  • Danke für die Bewertung ^^ Ja das Schere Stein Papier war eigt. das einzige Fun Video wie in der Beschreibung steht 🙂 Ich habe links einen Editor offen gehabt von dem ich das Programm, was ich vorher geschrieben habe, abgeschrieben hab ^^ So in der Reihenfolge würde das nie gehen ^^

    (Und wie gesagt .. Anfänger ^^)

    MFG: N290



  • Scorcher24 schrieb:

    Nexus schrieb:

    Und auch wenn das viele "Gameprogger" anders sehen, ist nicht gleich alles, was ein bisschen Funktionalität vereint, eine Engine...

    Da gebe ich dir recht. Das ist auch der Grund warum ich mein Framework eben nur Framework nenne und nicht Engine. Eine Engine kommt immer komplett daher mit Editoren etc.
    Sowas wie UDK oder Unity ist eine GameEngine.
    Ogre oder Irrlicht wäre eher eine Grafikengine oder eben ein Framework, Library.

    Ich dachte das wäre genau andersrum. Engine ist die pur programmiertechnische Bibliothek, das Framework ist alles außenrum, das man benutzt um das entwickeln mit dieser Engine einfacher zu machen. Wäre imo auch von der Wortlogik her passender. Engine der Motor in der ganzen Maschine, der alles antreibt, Framework der Rahmen außenrum.



  • TravisG schrieb:

    Scorcher24 schrieb:

    Nexus schrieb:

    Und auch wenn das viele "Gameprogger" anders sehen, ist nicht gleich alles, was ein bisschen Funktionalität vereint, eine Engine...

    Da gebe ich dir recht. Das ist auch der Grund warum ich mein Framework eben nur Framework nenne und nicht Engine. Eine Engine kommt immer komplett daher mit Editoren etc.
    Sowas wie UDK oder Unity ist eine GameEngine.
    Ogre oder Irrlicht wäre eher eine Grafikengine oder eben ein Framework, Library.

    Ich dachte das wäre genau andersrum. Engine ist die pur programmiertechnische Bibliothek, das Framework ist alles außenrum, das man benutzt um das entwickeln mit dieser Engine einfacher zu machen. Wäre imo auch von der Wortlogik her passender. Engine der Motor in der ganzen Maschine, der alles antreibt, Framework der Rahmen außenrum.

    Es mag zwar von der Namensgebung her logischer sein, aber ich denke der Begriff ist historisch gewachsen. Modding etc. pp. hat man halt immer mit der entsprechenden "Engine" gemacht. Es redet ja auch keiner vom ID Tech 3 Framework oder so.

    Für mich ist eine "Game Engine" immer die Summe aller Teile (Editoren, Asset Pipeline, Importer, Exporter, Scripting Interfaces...). Und brauchbare, kommerziell einsetzbare und günstige Game Engines gibt's da IMO nur wenige.

    XNA ist dagegen ein klassisches Framework, weil es nur eine Sammlung von Bibliotheken ist. Ogre ist eine Graphics Engine, aber keine Game Engine.



  • Ich habe den Begriff bisher ähnlich wie TravisG verstanden, als spezifische Funktionalitätssammlung wie z.B. Physik- oder AI-Engine...


Log in to reply