Wenn Sie vor einigen Jahren in C und einer Teilmenge von C ++ geschrieben und eine ausreichende Anzahl von Plattformabstraktionen (über SDL oder was auch immer) verwendet haben, könnten Sie auf jeder Plattform laufen, auf der ein Indie laufen könnte - Linux, Windows, Mac OS in verschiedenen Versionen , obskure Sachen wie BeOS und die offenen Konsolen wie GP2X und Post-Death Dreamcast. Wenn Sie irgendwann einen Vertrag für eine geschlossene Plattform haben, können Sie Ihr Spiel auch mit "minimalen" Codeänderungen auf diese Plattform portieren.
Heutzutage müssen Indie-Entwickler XNA verwenden, um auf die Xbox 360 (und das kommende Windows Phone) zuzugreifen. darf XNA nur für Windows verwenden; bis vor kurzem musste Java auf Android verwendet werden; Flash läuft nicht auf Handys, HTML5 funktioniert nicht im IE. Anders als zB DirectX vs. OpenGL oder Windows vs. Unix, sind dies Änderungen an der Kernsprache, in der Sie Ihren Code schreiben und die nicht ohne das Schreiben eines Compilers überarbeitet werden können. Sie können einige Spielelogiken in Skripte verschieben und einen Interpreter einbinden - es sei denn, dies ist nicht möglich, da das iPhone SDK dies nicht zulässt und die Leistung leidet, weil niemand JIT zulässt.
Was können Sie also tun, wenn Sie ein wirklich plattformübergreifendes tragbares Spiel oder nur eine erhebliche Menge an Engine- und Logikcode möchten?
Ist dies kein Problem, da die Plattformen grundlegend auseinander gegangen sind - es lohnt sich einfach nicht, ein iPhone und die Xbox 360 mit gemeinsam genutztem Code anzugreifen, da ein solches Spiel schlecht wäre? (Ich finde das sehr unwahrscheinlich. Ich kann leicht erkennen, dass ich ein Spiel zwischen einem Windows Mobile-Telefon und einem Android-Gerät oder einer Xbox 360 und einem iPad teilen möchte.) Sind die Schnittstellen jetzt so hoch, dass die Portierungszeit vernachlässigbar ist? (Ich könnte das für Geschäftsanwendungen glauben, aber nicht für Spiele mit strengen Leistungsanforderungen.)
Wird dies in Zukunft noch deutlicher werden? Wird die Spaltung noch etwas beängstigend für die Anbieter sein? Werden wir uns alle auf High-Level-Middleware wie Flash oder Unity verlassen, um plattformübergreifende Aufgaben zu erledigen?
tl; dr - Ist die Portierung ein Problem, wird es in Zukunft ein größeres Problem sein, und wenn ja, wie können wir es lösen?