Il y a quelques années, si vous écriviez en C et dans un sous-ensemble de C ++ et utilisiez un nombre suffisant d'abstractions de plate-forme (via SDL ou autre), vous pourriez exécuter toutes les plates-formes sur lesquelles un éditeur indépendant pourrait avoir accès - Linux, Windows, Mac OS, différentes versions. , des choses obscures comme BeOS, et les consoles ouvertes comme la GP2X et Dreamcast après la mort. Si vous avez un contrat pour une plate-forme fermée à un moment donné, vous pouvez également transférer votre jeu sur cette plate-forme avec des modifications de code "minimales".
Aujourd'hui, les développeurs indépendants doivent utiliser XNA pour accéder à la Xbox 360 (et au prochain téléphone Windows). ne devez pas utiliser XNA pour travailler ailleurs que sous Windows; jusqu'à récemment dû utiliser Java sur Android; Flash ne fonctionne pas sur les téléphones, HTML5 ne fonctionne pas sur IE. Contrairement à DirectX, par exemple, OpenGL ou Windows, par rapport à Unix, il s’agit de modifications apportées au langage principal dans lequel vous écrivez votre code et vous ne pouvez pas utiliser de papier sans l’écriture d’un compilateur. Vous pouvez déplacer une logique de jeu dans des scripts et inclure un interprète, sauf lorsque cela est impossible, car le kit de développement logiciel (SDK) de l'iPhone ne le permet pas et les performances s'en ressentent car personne ne permet JIT.
Alors, que pouvez-vous faire si vous voulez un jeu portable vraiment multi-plateforme, ou même juste un corps important de code moteur et logique?
N’est-ce pas un problème, car les plates-formes sont fondamentalement divergentes - il est tout simplement inutile d’essayer de cibler à la fois un iPhone et la Xbox 360 avec un code partagé, car un tel jeu serait mauvais? (Je trouve cela très improbable. Je peux facilement constater le désir de partager un jeu entre un téléphone Windows Mobile et un Android, ou une Xbox 360 et un iPad.) Les interfaces sont-elles d'un si haut niveau maintenant que le temps de transfert est négligeable? (Je pourrais le croire pour les applications professionnelles, mais pas pour les jeux dont les performances sont strictes.)
Est-ce que cela va devenir plus prononcé à l'avenir? Est-ce que la scission va être, un peu effrayante, toujours en bas de la liste des fournisseurs? Faudra-t-il tous utiliser un middleware de haut niveau tel que Flash ou Unity pour faire quelque chose de multi-plateforme?
tl; dr - Est-ce que le portage est un problème, sera-t-il un problème plus important à l'avenir, et si oui, comment le résolvons-nous?