Game Engine Programmieren



  • Hi!

    Ich habe schon ein wenig Ehrfahrung mit Game Entwicklung. Ich hab schon mir SDL einfache Sachen gemacht.

    Jetzt habe ich mir überlegt meine eigene kleine 2D engine zu programmieren.
    Auf SDL und OpenGl basierent. Ist das eine gute Idee?

    Wie sollte ich das angehen? Wie sollte die Struktur aussehen?

    Hoffe jemand kann mir helfen.

    MfG



  • Du solltest dir erstmal einen Plan machen. Sprich, welches Genre es gehen soll, welche Modelformate du verwenden möchtest, welche Kamera du implentieren möchtest usw. Nicht das du später da stehst und dir deine Ideen verschwunden sind. Schreibs dir halt auf. Und versuch alles strukturiert zu halten!





  • Dieser Link könnte Dir helfen.

    Edit: ups, bitte ignorieren, bin noch nicht ganz wach 😉





  • Auch wenn ich und way nicht grat die beste freude sind, muss ich ihm recht geben. Ohne einen genauen Plan was die Engine alles können muss, und wie sie strukturiert sein soll wirst du ständig vo vorne anfangen. Ich habe mich dazu entschieden keine Engine zu schreiben, sondern eher ein ansammlung von Klassen die spetziell darauf ausgelegt sind was das spiel können muss, und was nicht. Dabei benutze ich die D3DX Funktionen zum Laden von Texturen oder Modellen, also der benutzer der engine muss sich auch mit dx auseinander setzen. Du musst dir klar machen, ob du die engine nur für dich benutzen villst, oder ob du sie an andere weiter geben möchtest.



  • this->that schrieb:

    http://scientificninja.com/advice/write-games-not-engines

    genau.

    merke jedoch, dass sich ein kleines framework für einen 2d shooter zu schreiben nicht gleich mit engine-schreiben gleichzusetzen ist. absolut jedes spiel braucht ein wenig organisation um nicht im spaghetti code zu enden.



  • this->that schrieb:

    http://scientificninja.com/advice/write-games-not-engines

    Dem kann ich mich ebenfalls nur anschließen! Fokusiere dich bei deinen Bemühungen mehr auf das Spiel. Überlege dir, wenn du etwas neues zum Code (des Spiels) hinzufügst, ob das nun allgemeingültig verwendbar ist (Billbords erstellen/rendern, Texturen laden/verwalten, ...) oder ob es zum spezifischen Teil des Spiels gehöt. Wenn du diese Teile trennst, dann bekommst du Stück für Stück eine passende Engine für dein Spiel.
    Die Teile der Engine sollten natürlich nicht einfach so als Funktionsblöcke "herumliegen", sonder wenn möglich hierarchisch aufeinander aufbauen. Aber wenn man aus programmtechnischer Sicht (Basisklassen, u.v.m.) und aus der Sicht der gewollten Verwendung im Spiel auf die Sache schaut, dann ergibt sich nach kurzer Überlegung oft von selbst eine gute Struktur.

    Wenn du allerdings wirklich nur eine Engine ohne konkrete Anwendung planst, dann muss man die Frage stellen: Warum?



  • Du kannst Dir den Aufbau von 3D-Engines anschauen, z.B. Irrlicht, und daraus Deine Struktur ableiten.



  • Vielen Dank an alle!
    Hat mir sehr weiter geholfen.

    Ich werde mich also mehr auf das Spiel konzentrieren, da ich meine "Engine" ja sowieso nur für mich benutzen werde.

    Danke nochmals!

    MfG



  • Ich glaub' das war es nicht, was man Dir vermitteln wollte ;o)



  • Nein?
    Das ist jedenfalls meine Schlussfolgerung daraus xD


  • Mod

    nein, du hast es nicht verstanden was dir alle gesagt hatten.



  • Ganz falsch ist deine eigene Schlussfolgerung aber nicht. Das wichtigste sind deine Motivationen - und die kennst nur du. Was willst du?

    Willst du Spiele programmieren? Vergiss das Engine-Schreiben. Wenn du vorhast mehrere Spiele zu machen, dann schreib dir ein kleines Framework das auf dein Spielgenre zugeschnitten ist, oder falls du etwas breiter Fächern willst ein "allgemeines" Framework.

    Aber halt dich fern vorn von so "Low-Level"-Dingen wie Scene-Management, Eigenschaften aus Dateien laden oder Musikdatei Ausgabe. Das sind alles Dinge (neben vielen anderen), mit denen du dich beschäftigst wenn du eine Engine schreiben willst. Doch das haben vor dir schon viele andere gemacht und wenn du, worauf man hier im Forum gern verweist, das Rad neu erfinden willst, ist das nur Zeitverschwendung. Schau dir am besten vorhandene Engines an und du wirst erkennen, was bei Allen vorhanden ist und was fehlt. Daran erkennst du dann, was zu einer "Game-Engine" gehört, und was du selbst für deine Spiele brauchst.

    -Das gilt natürlich nur wenn du auch wirklich primär Spieleentwickler sein willst. Vielleicht treiben dich andere Motivationen. Wenn du mehr Spaß daran hast, herauszufinden wie Mechanismen funktionieren oder wenn du der Meinung bist, dass du vielen Leuten da draußen helfen kannst wenn du eine neue überragende Engine schreibst, dann tu das. Lass dich nicht aufhalten.


Anmelden zum Antworten