2D Spiel Programmieren welche Engine? oder keine?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Diese Art von Spiel ist "isometrisches 2D", eine Suche in Google brachte z.B. die folgende Seite im Zusammenhang mit "unity" hervor:

https://www.youtube.com/watch?v=kXhORqxfK_w

Ich persönliche habe nicht viel Erfahrung mit Unity, dafür aber schon einige Erfahrungen darin, Game-Engines mit C++ zu entwickeln. Wenn Du noch nicht viel Erfahrung mit so etwas hast solltest Du vielleicht bei Unity bleiben.

Willst Du das selbst entwickeln so werden Dich unter anderem folgende Probleme erwarten:

  • Ressourcen-/Speicher-Management (Bilder, Levels, etc. laden, alte/ungenutzte Ressourcen freigeben, optional "Streaming" d.h. das dynamische nach-/entladen von Daten)
  • Kenntnisse in einer Grafik API (z.B. OpenGL oder Direct3D) - Du willst sicherlich keinen Software-Renderer schreiben, da die vorhandenen Grafik-Pipelines Dir eine Menge Probleme abnehmen - leider kommst Du dann auch um Shader-Programmierung in GLSL oder HLSL nicht herum
  • User-Interface (Du musst sicherlich Text, Buttons, etc. darstellen und auch dementsprechend auf die Eingaben des Nutzers reagieren, z.B. welches Game-Objekt hat der Nutzer geclickt) - dazu passend:
  • Game Logik (häufig Scripting genannt obwohl Du das ohne Script direkt in C++ umsetzen kannst)
  • Sound-Effekte und (dynamische) Musik (z.B. mit OpenAL)
  • Die folgenden Dinge werden wohl bei dem Game keine große Rolle spielen: Physik, KI (Künstliche Intelligenz), Netzwerk/Multiplayer

Der Simple Direct Media Layer (SDL) ist eine Bibliothek (mit Zusatzbibliotheken wie SDL_Image), mit der Du vielleicht einige der Probleme umgehen kannst. Es bietet Dir auch einfache Möglichkeiten, 2D Layer in einem Compositing darzustellen aber ich bin mir nicht sicher, wie gut das für isometrische Perspektiven geeignet ist.

Viel Erfolg!

ich hab das beispiel wohl falsch gewählt ich habe es mir nicht in diesem isometrischem 2D gemeint sondern so (ich musste dieses beispiel auf facebook hochladen da ich kein bild gefunden hatte das meinen vorstellungen entspricht) https://www.facebook.com/photo.php?fbid=1481263375474409&set=a.1391721141095300.1073741828.100007722818060&type=1&theater natürlich im fertigen zustand nochmal viel besser

0
@MilesYT

Die Frage ist in diesem Zusammenhang wie Du Dir die Erstellung der Game-Assets vorstellst. Den Content musst Du ja irgendwie erstellen können. Ich gehe mal davon aus, dass Du sicherlich auch Animationen haben willst.

Entweder arbeitest Du hierfür mit einer Art von Rotoscoping (was für flüssige Animationen sorgt) oder Du nutzt Flip book Animationen (hast also ein Bild für jeden Teil der Animation). Realtime Rotoscoping ist gar nicht so einfach umzusetzen (speziell das Erzeugen der Animationen im Code ist nervig wenn Du keinen WYSIWYG Editor dafür zur Verfügung hast). Flip book Animation ist da viel einfacher - dazu nutzt man meistens einen Textur-Atlas, in dem die einzelnen Frames der Animationen hinterlegt sind. Das lässt sich auch mit den gängigen Grafik APIs einfach umsetzen, da Du dafür einfach nur ein Rechteck (quad) zeichnest und einfach nur die Textur-Koordinaten entsprechend anpassen musst (dann kannst Du allerdings kein Mip-Mapping benutzen, weil sonst die anderen Frames in Dein Bild "leaken").

Unabhängig ob nun isometrisch oder nicht - meine Aussagen von vorher sind weiterhin gültig (einfaches Layering macht das aber definitiv einfacher). Wenn Du noch nicht viel Erfahrung mit diesen Dingen hast dann solltest Du bei Unity bleiben.

0

Mach mit html bildmaps mit einzelnen arealen wo man dann weitergeleitet wird auf ein neues bild, so kannst du ein pointnclick adventure scripten (aber ohne effekte und sonstigem)