Wie oben wirklich
Ich schreibe in meiner Freizeit ein Android-basiertes Spiel (Android, weil es kostenlos ist und ich keine wirklichen Ambitionen habe, irgendetwas Kommerzielles zu machen).
Die Spielelogik basiert auf einem sehr typischen komponentenbasierten Modell, bei dem Entitäten existieren und mit Komponenten verbunden sind und Nachrichten hin und her gesendet werden, um die Dinge geschehen zu lassen.
Offensichtlich ist die Ebene für die tatsächliche Ausführung dünn, und wenn ich eine iPhone-Version dieser App schreiben würde, müsste ich den Renderer und den Kerntreiber (dieses komponentenbasierten Systems) in Objective C neu schreiben.
Bei den Entitäten handelt es sich lediglich um Einfachdateien, die die Namen der hinzuzufügenden Komponenten festlegen, und die Komponenten selbst sind einfache Einzelzweckobjekte, die die Logik für die Entität enthalten.
Wenn ich nun die gesamte Logik für diese Komponenten in Java schreibe, müsste ich sie in Objective C neu schreiben, wenn ich mich für einen iPhone-Port entscheide. Da der Großteil der Anwendungslogik in diesen Komponenten enthalten ist, würden sie in einer idealen Welt in einer plattformunabhängigen Sprache / Skript / DSL geschrieben, die dann einfach auf einer beliebigen Plattform in die App geladen werden könnte.
Ich bin jedoch zu der Überzeugung gelangt, dass dies keine ideale Welt ist und dass die Lua-Leistung usw. auf Mobilgeräten immer noch nicht auf dem neuesten Stand ist, dass der Overhead zu hoch ist und dass ich später auf Probleme stoßen würde, wenn ich dies tun würde ist diesen Weg gegangen?
Ist das tatsächlich der Fall? Natürlich ist dies nur eine hypothetische Frage. Ich schreibe sie gerne alle in Java, da es einfach und unkompliziert ist, die Dinge in Gang zu bringen, aber ich sage, dass ich es wirklich genieße, dieses Spiel zu machen (unwahrscheinlich, angesichts dessen, wie sehr ich es derzeit nicht mag, etwas zu tun zu haben) mit all den verschiedenen mobilen Geräten) und ich wollte ein kommerziell brauchbares Spiel machen - würde ich Lua verwenden oder würde ich einfach den Hit beim Portieren nehmen und einfach den gesamten Code neu schreiben?