Pull to refresh

Comments 16

Небезынтересно, но слишком много воды и общеисторичкских фактов, слишком мало собственно рассказа на тему из заголовка.

Сейчас гораздо проще не делать обратную совместимость вообще. Пишем фреймворк позволяющий скомпилировать старую игру под новую систему, даем его разработчикам, они компилируют, дают назад, заливаем в магазин и готово! Можно продавать и зарабатывать на старой игре.
А если у кого-то есть оригинальный диск от предыдущего поколения приставок — даем скачать игру и каждый раз при запуске проверяем диск в приводе.
Ну и как бонус такого подхода — возможность увеличить разрешение в рендере 3D ведь новое поколение обычно гораздо мощнее.
Такой фреймворк на нобелевку потянет, как минимум…
Что там такого на нобелевку? Любая современная приставка не дает прямого доступа к железу — все и так делается через фреймворк — операционную систему и библиотеки, программист только зовет функции. Что-то не вижу нобелевок за такое.
А с кодом другой архитектуры что делают?
C++ не имеет никакого "кода другой архитектуры" — это язык высокого уровня. А код под конкретную архитектуру делает уже компилятор.
В те времена был Си и ассемблер, т.е. много чего надо было бы переписать.
Как минимум, разработчик может закрыться. И тогда делать такие финты будет некому. Поэтому лучше уж эмулятор.
Что вам лучше интересует производителя только через призму "сколько я могу на этом заработать". Чем проще реализация — тем дешевле. Куда проще в SDK под новую платформу добавить возможность открыть и скомпилировать проект для предыдущей платформы, чем пилить эмулятор под все более усложеяющееся железо. То, что разработчик может закрыться — это проблема игроков. Игроки не стали бойкотировать Nintendo после того как она закрыла свой Wii Shop что сделало невозможным перезакачать купленное Wii Ware(если удалили например) — им сошло это с рук. И тут если какой-нибудь(скорее всего малоизвестный) разработчик закроется и игра не выйдет под новую систему поругаются чуток, проглотят и забудут.
Под XBox 360 с эмулятором тоже не все гладко — он под каждую игру скачивает патч. Не выпустила MicroSoft такой патч под вашу любимую но малопопулярную игрушку — остались без обратной совместимости. Так что посути этот эмулятор имеет ровно те недостатки которых вы пытаетесь избежать.
Т.е. вы предлагаете всем разработчикам перекомпилировать свои игры для новой приставки? И перевыпускать все эти диски заново?
Да перекомпилировать. А что тут такого? Открыл старый проект в новой среде и скомпилировал. Главное что бы производитель приставки позаботился что бы это было возможно без исправления кода.
Зачем перевыпускать диски в век цифровой дистрибуции? Залил в магазин и все.
Вам написали, что перекомпилировать может быть уже некому. Ещё код может быть потерян. Ещё в те времена использовался ассемблер или его вставки.
И во время запуска PS2 не было магазина и цифровой дистрибуции.

Расскажите это майкрософту с их винфонами. Что-то их бриджы не взлетели. Фреймы, советы, поддержка(по обещаниям). Наверно не все так просто. Наверно и издатель должен быть заинтересован в портировании. А если игре 100лет и маржи ты с неё поимеешь пару копеек(если вообще хоть что-то поимеешь, ибо владелец магазина заявляет об обратной совместоимости и заного ни кто ни чего не покупает)?

UFO just landed and posted this here
Если игра не была написана с прицелом на портабельность, то вероятность, что оно скомпилируется сразу, весьма невысока, а что оно будет работать как задумано, ещё меньше.

Даже на одной и той же платформе, если железа много, то часто нужно допиливать под эти железки. Возьмём, к примеру, iOS, которая по железу на порядки меньше фрагментирована, чем Android, но и там у вас устройства с разной производительностью, с разным соотношением сторон экрана. Если вы, к примеру, зафигачите что-то под какой-нибудь AR или force touch, перекомпилируй-не перекомпилируй, нужно править код, а то и переделывать весь интерфейс игры.

С разнящимися платформами всё гораздо хуже. Тут и разная цветовая глубина экрана, и разные звуковые чипы (да, SDK поможет, но если у вас ограничение по железу на 8 одновременных звуков, вы можете упереться в этот потолок), и разные возможности графики, которые могут маркироваться как obsolete и через пять лет могут быть выкинуты из SDK; в конце концов, разные устройства ввода. Напишите вашу игру под тач, и вы не запустите её просто так на устройстве без тача.

Я уже молчу про совместимость на уровне исходников. Кто-то возьмёт под виндой и использует stricmp(). А её нету на других платформах. Всё, ошибка компиляции. А про несовместимость на уровне исходников между разными версиями Swift под iOS я уже вообще молчу.

В общем, те, кто занимается портированием, не зря едят свой хлеб.
Sign up to leave a comment.

Articles