Dies ist ein Beitrag, der meine Suche nach der unterhaltsamsten Art und Weise beschreibt, wie ein Hobby-Spielprogrammierer seine Freizeit mit dem Erstellen eines Spiels versüßen kann.
Meine Anforderungen: Ich habe mir zuerst Flash angeschaut, ein paar kleine Spiele gemacht, aber ich bezweifle die Leistung. Ich würde gerne ein ziemlich großes Strategiespiel machen, bei dem mehrere hundert Einheiten gleichzeitig kämpfen, Explosionen und Animationen eingeschlossen. Auch zoombare Karten. Ich habe gesehen, dass Adobe eine neue 3D-API für Flash hat, aber ich weiß nicht, ob dies auch die 2D-Leistung verbessert. Ich konnte in den MAX10-Sitzungen nichts zu dieser Frage finden. Würden Sie sagen, dass Flash eine gute Technologie ist, um große 2D-Spiele einfach zu erstellen? Ich mag Actionscript wirklich und ich mag, wie einfach alles in Flash ist. Es gibt verschiedene Motoren, die es noch einfacher machen.
Ich mache das nur zum Spaß, und es wäre noch besser, wenn es geeignete Animations- / Partikel-Editoren gäbe und wenn die Engine, die ich verwenden würde, für mehrere Plattformen verfügbar wäre. (damit mehr Leute mein Spiel spielen können, sobald es fertig ist). Ich möchte es auch auf vielen mobilen Plattformen verfügbar haben. (weil ich Touch-Eingabe aus irgendeinem Grund liebe)
Ich kenne das XNA-Framework ziemlich gut, aber es sind keine guten Engines dafür verfügbar, und es wird nur unter Windows ausgeführt, was eine enorme Deaktivierung darstellt. Noch größer ist, dass Sie die XNA Redistributable jedes Mal installieren müssen, wenn Sie das Spiel jemandem geben möchten. Wenn ich XNA verwende, müsste ich alle Tools selbst erstellen und sie wahrscheinlich mit WPF erstellen. (Ich würde gerne Tools mit Adobe AIR erstellen, aber leider sind die APIs für Bildmanipulationen usw. in Flash weitaus schlechter als in XNA / WPF.) Nun bin ich mir bewusst, dass ich meine eigene Engine dafür erstellen könnte unterstützt jede dieser Plattformen, aber ehrlich gesagt, das wäre zu viel Arbeit durch APIs zu pflügen. Schließlich möchte ich ein Spiel machen, keine Engine.
Die Frage lautet also : Gibt es möglicherweise eine plattformübergreifende (kostenlose oder frei zu entwickelnde?) Engine, die ich für die 2D-Entwicklung verwenden könnte? Ich bevorzuge: C #, Actionscript. Es macht mir nichts aus, C ++ zu verwenden, wenn das Toolset über dem Durchschnitt liegt, aber ich bezweifle sehr, dass es so etwas gibt. Bitte beweise mir das Gegenteil :) Also Zusammenfassung: Ich würde gerne Flash verwenden, aber ich weiß nicht, ob es gut genug skaliert. Ich bin kein Scripter, ich möchte einige echte APIs, mit denen ich in einer richtigen IDE arbeiten kann.
Nur zur Information habe ich mir mehrere Alternativen angeschaut, eigentlich suche ich schon lange. Sie würden mir sehr helfen, endlich eine Entscheidung zu treffen.
Funktionsmäßig wäre die Flatredball-Engine ideal. Aber ich habe ihre Werkzeuge ausprobiert und ehrlich gesagt, sie sind schrecklich. Absolut unbrauchbar, ich müsste es mir sicher selbst machen. Ich habe mir ihre API nicht angesehen, aber wenn ihre Tools so schlecht sind, bin ich nicht geneigt, weiter zu suchen.
Unity3D. Dieses ist ganz nett, aber ich brauche wirklich kein 3D und es ist ziemlich ... viel Arbeit zu lernen. Mir gefällt auch nicht, dass es so teuer ist, es für verschiedene Plattformen zu verwenden, und dass ich nur durch Skripterstellung Code dafür schreiben kann. Sie müssen jede Plattform separat kaufen. Die Benutzerfreundlichkeit des Editors ist durchschnittlich, das Produkt insgesamt ist für die meisten Zwecke gut genug, aber es selbst zu lernen, wäre übertrieben.
Shiva 3D. Es sieht gut genug aus, aber ich brauche nicht wirklich 3D. Die Benutzerfreundlichkeit des Editors ist meiner Meinung nach etwas schlechter als bei Unity3D, und mir war nicht klar, wie ich mit der Programmierung beginnen soll. Ich denke, es erfordert C ++ für die Codierung, also ist das auch negativ. Ich will spaß haben und c # macht spaß;)
SDL. Ehrlich gesagt muss ich immer noch auf all diese verschiedenen SDL-Implementierungen portieren. Und ich mag keine OpenGL-Programmierung, es ist einfach hässlich. Und es braucht C ++, ich weiß, dass es möglicherweise einige Wrapper gibt, aber ich verwende keine Wrapper, weil ...
Irrlicht. Viele Funktionen, aber der Support scheint gering zu sein und richtet sich an Enthusiasten. C # -Bindungen werden wiederholt gelöscht. Ich bin kein Motorenthusiast, ich möchte nur ein Spiel machen. Ich sehe das nicht bei Irrlicht.
Ogre3D. Viel zu viel Arbeit, es ist nur eine Grafik-Engine. Auch keine Unterstützung für mehrere Plattformen und C ++.
Drehmoment2D. Kostet etwas zu benutzen und ich habe nicht viel Gutes über Support und Dokumentation gehört. Kostet auch extra für jede Plattform.
quelle
Antworten:
Pygame ist bei weitem mein Favorit. Da das Programmieren in Python bedeutet, dass Sie schnell programmieren und 2D-Dinge schnell erledigt werden können, macht Pygame Spaß ...
quelle
Ich benutze LÖVE seit einiger Zeit und es gefällt mir sehr gut. Du müsstest Lua lernen, aber es ist trotzdem eine lustige kleine Sprache zu lernen. Die Leute im Forum sind äußerst hilfsbereit.
quelle
love .
Ich habe mich für Flash entschieden. Mit der neuen 3D-API von Molehill können auch 2D-Sprites im 3D-Raum viel schneller gezeichnet werden. Ich sehe keinen Grund, warum Flash für das zuvor beschriebene Spiel nicht schnell genug sein sollte. Ich muss die Tools selbst bauen, aber das hätte ich wahrscheinlich trotzdem tun müssen. Die Verwendung von AIR zum Erstellen von Tools ist meiner Meinung nach auch ziemlich ordentlich. Flash hat auch die größte Reichweite mit Plattformen, was cool ist.
quelle
Versuchen Sie es mit SFML
quelle
Probieren Sie Cocos2d-x aus . Es ist das, was ich für meine Entwicklung von Indiespielen verwende.
Es handelt sich um eine bewährte OpenGL (ES) -Plattform mit Sound, Physik und sogar ein wenig 3D, die bereits seit einiger Zeit für das iPhone erhältlich ist und gerade auf anderen Plattformen verfügbar ist.
quelle
Da Sie sagten, dass Sie Actionscript mögen, aber plattformübergreifend suchen, werfen Sie einen Blick auf HaXe + NME . HaXe ist eine ähnliche Sprache wie Actionscript, kann jedoch in Flash, Javascript, PHP oder C ++ kompiliert werden. NME ist eine Bibliothek, die der Grafikbibliothek von Flash ähnelt, jedoch auch auf anderen Plattformen ausgeführt werden kann. Mit dieser Kombination können Sie auf viele verschiedene Plattformen kompilieren.
Ich habe NME noch nicht verwendet, aber mein erster Test mit HaXe + Maulwurfshügel (vor wenigen Tagen) ergab 60 fps beim Rendern von 10.000 16x16 rotierenden Sprites auf meinem Laptop. Ich benutze HaXe erst seit ein paar Tagen und habe nicht genug Erfahrung damit, um sicherzugehen, dass es das Richtige für Sie ist, aber es ist einen Blick wert.
quelle
Ich persönlich bin ein großer Fan von Allegro 5 , aber es ist eine C-API. Trotzdem ist es eine einfache API, die Ihnen den Weg frei macht und Zugriff auf Folgendes bietet:
5.1 wird auch Shader-Unterstützung hinzufügen.
SDL 1.3 entwickelt sich ebenfalls recht gut. Sam scheint fertig damit zu sein, die wichtigsten API-Änderungen vorzunehmen, und was bereits enthalten ist, ist bereits ziemlich stabil. Trotzdem ... es ist noch nicht einmal Beta und Allegro 5.0 ist erschienen.
Zugegeben, für komplexere und fortgeschrittenere Spiele möchten Sie Allegro 5 wahrscheinlich mit einer Art Physikbibliothek (z. B. Box2D ) kombinieren . Trotzdem können Sie einen langen Weg zurücklegen und viel Spaß haben - mit nichts anderem als Allegro 5, der C- oder C ++ - Standardbibliothek und Ihrem eigenen Code.
quelle