Проблема облачного будущего не в ширине канала потребителей, а в том, сколько уходит времени на доставку данных между клиентом и сервером.
Для простоты восприятия поначалу я буду (возможно зря) проводить параллели с реальностью:
У вас есть автомобиль.
У него всего две характиристики: грузоподъемность и скорость. При этом они не зависят друг от друга.
Грузоподъемность - это ширина канала интернета (эти ваши мегабиты).
А скорость определяет время доставки (груза в реальности, данных - в интернете).
И в своих обсуждениях вы ее (скорость доставки) вообще не учитываете, и как следствие обсуждаете ничто.
Возвращаясь к стримингу игр, мы имеем как минимум три очевидных типа данных (груза), которые нужно доставлять между игроком и сервером (облаком):
1) видеоряд (от сервера к клиенту)
2) аудиоряд (от сервера к клиенту)
3) данные "ввода" (input) от игрока, то есть данные о состоянии контроллера: что нажато, на какой градус отклонен стик и прочие всевозможные замеры (от клиента к серверу);
Какая нужна грузоподъемность вашего транспорта (ширина канала интернета) - зависит от объема данных видео- и аудио-рядов.
При желании можете посидеть на и пальцах посчитать сколько потребуется данных переслать чтобы передать 60 loseless-изображений в секунду + аудиоряд с устраивающим вас битрейтом (для кого это пустые слова - не особо запаривайтесь).
Но в итоге выводов по этому параметру может быть всего два:
1) скорости хватит
2) скорости не хватит
При этом второй пункт "лечится" очевидно - повышением скорости, что как не крути, а доступно среднестатистическому потребителю в развитых странах. И речь, замечу, не о дешево или дорого, а в возможно или невозможно. В данном случае невозможности нет.
Но что с временем передачи данных, ради которой все полотно текста и написано?
В случае реального транспорта, у вас есть возможность как взять машину побольше для повышения грузоподъемности, так и добавить "лошадок" чтобы увеличить ее скорость. Это все конечно очень условно, но вроде понятно.
В случае с интернетом все проще! Вы передаете электронные данные, поэтому можно условно принять что скорость передачи всегда одинакова, а решает в первую очередь расстояние передачи.
И в этом вся суть подвоха. Физически электронные данные передаются слишком медленно!
Лично я впервые столкнулся с этой проблемой достаточно давно, когда единственным более-менее безлимитным был лишь спутниковый интернет. И тогда оказалось, что безлимит и широкий канал данных вовсе не позволяют комфортно играть онлайн, ведь физически данные с земли до спутника, от спутника до земли (и обратно по такой же цепочке) идут суммарно несколько сотен миллисекунд, и с этим просто невозможно что-либо сделать. Там даже проводов нет! Просто сигнал достигает цели не моментально, и все тут.
Как все это связано с облаками и играми?
Если мы говорим о видео- и аудио-каналах, то никаких проблем нет:
сервер просто высылает данные с необходимой частотой.
То есть даже если время доставки данных будет 10 секунд, это явным образом отразится лишь на первой посылке (первом кадре, например).
Так как сервер не дожидается ответа с нашей стороны а просто высылает данные подряд, второй кадр нам придет не еще через 10 секунд, а через 10 секунд + задержка между отправкой со стороны сервера (около 16 миллисекунд для 60фпс) от начала передачи.
Параллель с реальностью: машину А отправили в момент времени 0.00мс, машину Б в момент времени 0.16мс, при прочих равных они приедут с разницей в 0.16мс, не зависимо от времени в пути.
Вы без проблем сможете смотреть видео хоть из другой галактики, если сигнал ничто не будет прерывать и вы при жизни дождетесь начала приема данных.
Проблема - в передаче данных ввода игрока.
Когда вы нажимаете X, ваша консоль (клиент в схеме клиент-сервер) - пошлет соответствующие данные серверу, где работает игра.
И если время доставки этих данных будет секундой, то и реакция игры на ваше действие будет равно секунде.
Вы передали всего несколько байт,
но из-за времени доставки этих крошечных данных вы видите и ощущаете вполне реальную задержку в реакции игры.
Все доступные вам мегабиты разобьются о расстояние и законы физику, а вера в стремительное развитие телекоммуникаций лопнет как мыльный пузырь. Ведь принципиальных изменений не предвидится.
Ну и раз уж я решил что-то написать (избегаю этого как могу), затрону еще пару моментов относящихся к данной теме в целом.
Популярные игровые движки (уже более 10 лет) работают на клиент-серверной архитектуре.
Даже если вы играете в одиночном режиме, вы играете на сервере, которым сами же и являетесь.
То есть ваша консоль (или пк) сама есть сервер.
Это делается для максимальной универсальности движка и простоты внедрения мультиплеера в частности.
При этом клиент и сервер работают асинхронно и оба располагают всеми основными данными о том, что и как должно происходить.
Например, когда вы хотите начать движение, вы делаете соответствующий "ввод" с помощью контроллера, клиент отправляет данные об этом серверу но при этом асинхронно (не дожидаясь ответа) начинает воспроизводить ожидаемые действия. В данном случае - перемещать вашего персонажа.
Если данные о текущем положении персонажа на клиенте и на сервере различаются, происходит их синхронизация (вас может резко переместить в другое место, или переместить плавно и с анимацией - вопрос конкретной реализации, но с общим итогом).
Сходу может возникнуть резонный вопрос - зачем так сложно?
А делается это именно из-за дискомфорта, который игрок ощущает если игра не реагирует на его действия моментально.
Если вы будете ждать подтверждения своих действий (движения персонажа) в течении даже каких-то десятков миллисекунд, вы будете чувствовать фальш (там, где его истинно нет).
Вместо этого вам дают настоящий фальш, который выглядит, простите, реальней действительной реальности.
Это я все к тому, что облачный гейминг по сути своей идет в разрез с этой устоявшейся архитектурой видео-игр, так как технически не имеет возможности симулировать геймплей со стороны клиента.
В общем-то можно было бы еще что понаписать, но наверняка к этому моменту мне уже удалось утомить даже самых стойких.
Надеюсь, получилось хоть немного интересно, познавательно и уместно (возможно я ошибся сообществом).
Если в чем ошибаюсь - не стесняйтесь ткнуть мордой в грязь. Но вести какие-либо дискуссии не обещаю, Чукча не писатель.
И еще, все это может выглядеть как "облачный гейминг - говно!".
Но на самом деле такого подтекста здесь нет и поэтому напишу и в защиту этого направления.
Я много времени провел за одной старой ммо, в которой не было реализовано описанной выше асинхронной работы клиента,
поэтому прекрасно знаю как именно пинг (время передачи данных от клиента к серверу и обратно) сказывается на геймплее.
Любые неспешные игры будут работать терпимо, даже если серверная часть будет располагаться в США, а вы будете играть из средней России (задержки около 250мс). Делов на час-другой привыкания.
Проблемы могут начать возникать с QTE, с хардкорными играми требующими быстрого перебора кнопок и превосходного тайминга (я в такое на консолях никогда не играл, разве что файтинги.. поэтому с примерами сложно). Приведу пример для ПК: вам было бы крайне некомфортно играть во что-нибудь типа OSU.
Если Сони выделят хотя бы три датацентра: в сша, европе и где-нибудь на востоке, этого должно быть достаточно для более-менее комфортной игры в большинство популярных одиночных игр (отклик из России будет около 50~75мс, что более чем терпимо).
Эта технология предоставляет определенные интересные возможности.
Наиболее существенные при этом (для меня, ага):
- теоретическая возможность играть на чем угодно во что угодно (в игру любой платформы, если в руках подходящий для этого контроллер);
- производительность ограничивается начинкой сервера, а не клиента -> не важно что внутри консоли, если стрим идет с пк в 235 раз более мощного -> нет понятия "поколения" для клиентских железок (покуда они способны просто вывести картинку и звук), достаточно лишь обновлять железо серверов;
Но в противовес:
- годится не для всех типов игр;
- не особо годится для не-пошагового мультиплеера (клиент-облако-сервер), так как время отклика у всех будет разное и чувствоваться будет гораздо сильнее чем сейчас (любителям хватит, mid-tier и далее к киберспротсменам - нет);
То есть в текущем виде это не может быть заменой традиционному геймингу, соответственно не может быть и единственной основой какого-либо поколения консолей или чем-то настолько глобальным. Это новая приятная возможность, дополняющая уже имеющиеся и проверенные временем. Но очень дорогая в содержании. И только по этой причине лично я - не одобряю (да-да, чужие деньги считать не правильно).
nuff said