Одна из основных причин, по которой кросс-платформенность невозможна, связана с требованиями безопасности каждой из сторон.
Каждая консоль, как мы все знаем, похожа на компьютер, но с жесткими и легкими ограничениями в отношении доступа к ОС. Вот почему вы слышите о таких вещах, как devs console и demo-консоли, а также о других «версиях» консоли. У каждого есть разные ограничения.
Вот что я собираюсь сделать: консоли могут действовать как порты для своих соответствующих онлайн-сервисов: PlayStation Network и Xbox Live, а также онлайн-сервисов Nintendo **** (например, онлайн-сервисов Nintendo Switch или онлайн-сервисов Nintendo Wii и т. Д.).
Ответственность за эти системы несут их соответствующие «владельцы» (Microsoft, Sony, Nintendo), и, поскольку они позволяют вам общаться с другими игроками, совершать покупки в Интернете и выполнять множество действий, их безопасность считается первостепенной. Если система (например, Xbox One) может подключаться к другой системе (например, PS4) через что-то вроде игры (которая является программным обеспечением), в зависимости от уровня авторизации, допускаемого программным обеспечением игры, существует угроза безопасности.
Особенно с системой аутентификации тех игр. Если вы позволяете игрокам с консоли играть с другим игроком на другой консоли, оба используют разные системы аутентификации. Вроде как у вас есть игрок, аутентификация которого обрабатывается PlayStation Network, в то время как у другого игрока есть дескрипторы аутентификации в Xbox Live. Как сделать так, чтобы проигрыватель PlayStation мог «загрузить» данные проигрывателя (значок, имя и т. Д.) Из проигрывателя Xbox? Как вы относитесь к общению между обоими? Как бы вы справились с такими вещами, как друзья / сообщение?
Есть 3 возможных решения:
1) Каждая консоль будет использовать 1 услугу аутентификации. Это почти невозможно. Sony, Microsoft и Nintendo никогда бы этого не допустили. Это связано с тем, что для одного из них, по крайней мере, потребуются какие-то издержки, такие как сокращение продаж (обычно 25% -35%), а для другого это будет означать большие инвестиции (и риски) для улучшения оборудования.
2) Издатель игры запускает собственный хостинг-сервер. Это требует длительного и болезненного процесса апробации со стороны всех заинтересованных сторон. По сути, для этого требуется, чтобы авторизованный сервер загружал данные игроков из обеих систем, и только этот сервер мог одновременно управлять данными игроков из обеих консолей. PlayStation не имеет доступа к Xbox Live и наоборот. Они оба получают доступ к стороннему серверу, который загружает и загружает данные.
Игра Rocket League делает что-то похожее с геймером для ПК (используя Steam) и геймером для PlayStation 4 (используя сеть PlayStation Network). Игрок ПК видит только имена игроков из PSN, поскольку эта информация является общедоступной. Игрок ПК не может видеть значок игрока PSN, поскольку он ограничен. (Вместо этого проигрыватель ПК видит только значок PSN). Сервер соединяет клиентов, но не делает ничего, как управление покупками. Вместо этого это система защищенных транзакций на основе ключей (похожая на систему Key-Link Paypal, которую вы используете каждый раз, когда используете PayPal), которая управляется непосредственно PSN и Steam, а затем управляется локальной консолью. (Таким образом, Steam PC вообще не может получить доступ к учетной записи PSN.)
Основная проблема этого решения, за исключением того, что выборка данных довольно ограничена и сложна в реализации, заключается в том, что вам нужно поддерживать совместимость всех портов, то есть, если вы выпускаете патч для PlayStation с новым контентом, этот контент должен быть доступен и готов для ПК. или любая другая консоль. Это позволяет создать две или более сборки вашей игры одновременно, протестировать их, выпустить их, быть готовыми к двойному отчету об ошибках / сбоях и т. Д.
3) Каждая консоль работает на отдельном разделе / слое на сервере. Это то, что обычно происходит с большинством консольных драйверов MMO. 1 сети, выступающие в роли сервера для всех консолей и ПК, но каждая из которых имеет доступ к отдельной части системы. Эта система не требует, чтобы каждый порт имел одинаковую версию и ничего. Единственное, что PSN не может присоединиться к XBox Live, равно как и ПК. Каждый находится "в своем собственном мире".
Вот почему вы редко видите какую-либо интерактивность между консолями и ПК. Слишком большой риск проблем и ограничений. 99% случаев использует 3). Оставшиеся 1% обычно включают в себя упрощенную систему, такую как Ракетная лига, где вы загружаете только имена профиля другого игрока и их последние действия через потоковую подсистему.
PC Max Players: 64 (32v32)
,PS3 Max Players: 24
. И это (я думаю) из-за системных ограничений (это из давно забытого источника. Была какая-то причина ...) Хотя вы могли ограничить максимальное количество игроков на ПК, это помешало бы достижению вашей игры полной славы. Таким образом, он делает отдельные системы, но позволяет вам в полной мере использовать преимущества каждой системы, а не ограничиваться самой слабой системой.