Die meisten anständigen Engines und Frameworks bieten die Funktionalität, die Sie benötigen, und stehen Ihnen nie im Weg.
Tun sie? Das hängt vielmehr genau davon ab, was Sie grafisch tun.
Für viele Arten von Spielen gibt es Standardantworten für grafische Fragen. Zum Beispiel kann ein durchschnittliches 2D-Spiel mit den 2D-Fähigkeiten von zum Beispiel XNA / MonoGame problemlos gemeistert werden. Es sind nur Sprites, die in Gruppen für das Gelände verfügbar sind, die gedreht werden können und so weiter.
Aber was ist, wenn Ihr Spiel früher ein durchschnittliches 2D-Spiel war? Dann lesen Sie etwas über coole Techniken, wie die Verwendung einer Höhenkarte, um einen Betrüger zu bauen, der im Verhältnis zum Bildschirm den Eindruck von Tiefe erweckt. Und das willst du tun.
Jetzt verwenden Sie normales Mapping und möglicherweise sogar Parallaxen-Mapping. Alles im selben Kontext wie "Rendern von Sprites", jedoch mit mehr als vielen reinen 2D-Engines. Insbesondere erfordert es das multitexturierte "Sprite Blitting", was viele 2D-Engines nicht können.
Was machen Sie, wenn sich Ihr Motor nicht an Sie anpassen kann? Das bedeutet, dass Sie mehrere Durchgänge durchführen müssen, einen für die Farbe und einen für die Beleuchtung über eine normale Karte. Dies funktioniert jedoch nicht, da Sie das Höhenfeld der normalen Karte benötigen, um die Parallaxen-Zuordnung für die Farbsuche zu verwenden. Also ... was jetzt? Sie brauchen das Alpha, um Transparenz zu schaffen, damit Sie das Alpha nicht stehlen können. Und die Engine unterstützt keine Multitexturen.
Sie müssen also eine der folgenden Optionen auswählen:
- Gib die Idee auf. Dies bedeutet, dass Ihr Spiel durch Ihre Engine funktional eingeschränkt ist.
- Hacke die Engine, um Multitexture zu haben. Angenommen, Sie haben Zugriff auf den Quellcode, nehmen Sie es jetzt selbst in die Hand, um den Code einer anderen Person zu durchsuchen. Dies bedeutet auch, dass Sie es warten müssen und es nicht brechen müssen, wenn Sie herumstolpern.
- Tun Sie das Beste, was Sie können, innerhalb der Grenzen des Motors. Sie können also Parallaxe auf den normalen Karten erhalten, aber nicht auf den Farben. Es ist vielleicht nicht genau das, was Sie wollten, aber es ist besser als nichts.
Nehmen wir als Beispiel Geometry Wars. Die meisten 2D-Engines würden diese Art von Grafik nicht akzeptieren, da sich die meisten um das Zeichnen von Sprites und nicht um Linien drehen. Das ist ein Spiel, das eine sehr spezielle Art von Renderer benötigt.
Am Ende des Tages müssen Sie die Verantwortung für die Elemente Ihres Spiels übernehmen, die für die Anforderungen Ihres Spiels wichtig sind . Wenn das visuelle Erscheinungsbild Ihres Spiels in erster Linie vom Kunststil der von Ihnen verwendeten Bilder und Modelle und nicht von bestimmten Effekten abhängt, ist die Verwendung einer vorgefertigten Lösung in Ordnung. Wenn der visuelle Stil Ihres Spiels jedoch maßgeblich vom benutzerdefinierten Rendering-Code abhängt, ist die Wahrscheinlichkeit groß, dass eine Standard-Engine zu einer ernsthaften Einschränkung wird, wenn Sie Dinge tun, die außerhalb des Rahmens liegen.
Darüber hinaus gibt es ein sehr praktisches Problem: Nicht alle Spiele-Engines sind gleichermaßen portabel.
Mit dem Aufkommen mobiler Plattformen ist der Marktplatz für Spiele auf zahlreiche Betriebssysteme und Benutzeroberflächengeräte verteilt. Nicht alle Motoren funktionieren auf allen Geräten. Und wenn Ihr Motor auf einer Plattform nicht funktioniert, werden Sie sich mit Sicherheit nicht die Zeit nehmen, um ihn auf einer Plattform zum Laufen zu bringen . Immerhin ist das , warum Sie einen Motor in erster Linie verwendet, nicht wahr?
Wenn es Ihnen wichtig ist, dass Ihr Spiel auf einer bestimmten Plattform funktioniert, müssen Sie erneut die Verantwortung dafür übernehmen. Und der "einfachste" Weg, um damit Erfolg zu haben, ist es , es selbst zu tun. Erstellen einer Engine, die plattformübergreifend funktioniert, wobei möglicherweise einfachere plattformspezifische Frameworks verwendet werden, um einige Details auf niedriger Ebene zu verarbeiten. Auf diese Weise ist es Ihr Code, wenn es kaputt geht. Sie sind die beste Person, um das Problem zu beheben.