Декілька років тому, якщо ви писали на C і якомусь підмножині C ++ і використовували достатню кількість абстракцій платформи (через SDL або будь-яку іншу), ви можете працювати на будь-якій платформі, на якій може потрапити інді - Linux, Windows, Mac OS різних версій , незрозумілі речі, такі як BeOS, і відкриті консолі, такі як GP2X і Dreamcast після смерті. Якщо ви отримали контракт на закриту платформу в якийсь момент, ви можете перенести гру на цю платформу з "мінімальними" змінами коду.
Сьогодні інді-розробники повинні використовувати XNA, щоб потрапити на Xbox 360 (і майбутній телефон Windows); не повинні використовувати XNA для роботи в іншому місці, окрім Windows; донедавна довелося використовувати Java на Android; Flash не працює на телефонах, HTML5 не працює на IE. На відміну, наприклад, від DirectX проти OpenGL або Windows проти Unix, це зміни в основній мові, в яку ви пишете свій код, і їх неможливо простежити без, в основному, написання компілятора. Ви можете переміщувати певну логіку гри в сценарії та включати інтерпретатора - за винятком випадків, коли цього не можете, оскільки iPhone SDK цього не дозволяє, а продуктивність страждає, оскільки JIT ніхто не дозволяє.
То що ви можете зробити, якщо вам потрібна по-справжньому багатоплатформна портативна гра, або навіть просто значна частина двигуна та логічного коду?
Це не проблема, тому що платформи кардинально розходяться - просто не варто намагатися орієнтуватися як на iPhone, так і на Xbox 360 будь-яким спільним кодом, тому що така гра була б поганою? (Я вважаю це дуже малоймовірним. Я легко бачу, як хочуть поділитися грою між телефоном Windows Mobile та Android, або Xbox 360 та iPad.) Чи інтерфейси настільки високі, що зараз час перенесення незначний? (Я можу вважати, що це для бізнес-програм, але не для ігор із суворими вимогами до продуктивності.)
Чи стане це в майбутньому більш вираженим? Невже розкол буде дещо страшним, як і раніше вниз по лінії постачальників? Чи будемо ми всі покладатися на середнє програмне забезпечення високого рівня, як Flash або Unity, щоб зробити щось на платформі?
tl; dr - чи є проблема перенесення, чи це буде більшою проблемою в майбутньому, і якщо так, як ми її вирішимо?