Сотня игроков на одной карте в iOS игре, сложно ли это реализовать?

Сотня игроков на одной карте в iOS игре, сложно ли это реализовать?

Сегодня мощность iOS девайсов соизмерима с настольными ПК, но по непонятной мне причине, на iPhone и iPad выходит так мало игр с реалтайм мультиплеером. Практически нет шутеров, и App Store заполнен стратегиями с псевдо мультиплеером, где игрокам предлагают строить базу, а потом громить базу врага, но за врагов уже выступает бот. Либо MMO игры с «медленными» атаками, где скорость интернета не очень важна, но и в этих играх зачастую невозможно сотне игроков собраться в толпу в одной точке карты. Ситуацию изменила популярная игра agar.io, где игроки действительно встречаются на одной карте, и количество игроков на одной карте измеряется сотнями.

В действительности, есть ряд причин, по которым многие крупные компании отказываются от мультиплеера в реальном времени:

  • Дорогие сервера, для каждого региона приходится покупать отдельный сервер.
  • Довольно большой процент iOS игроков играют при «слабом» интернете, в результате в игре у них ужасно большой пинг, и эти игроки пишут плохие отзывы, так как игра у них не работает должным образом.
  • Борьба с читерами, игры с риалтаймом в большей степени страдают от читерства, так как результаты читерства видны всем «на лицо». Учитывая факт, что крупные компании обычно делают игру сразу для iOS и Android, увеличивается вероятность того, что код Android приложения декомпилируют и обнародуют способы взлома.
  • Сложность разработки, для сервера и клиента приходится нанимать отдельных программистов, и еще дополнительных людей, которые будут координировать работу кодеров.

Мне, как и многим другим инди-девелоперам, Майкрософт предоставила гранты на бесплатные облачные сервера, так что я решил провести эксперимент, создав многопользовательскую iOS версию старой игры с денди «танчики».

Я изначально оптимизировал код под максимальное количество игроков онлайн: на сервер передаются только нажатия пользователем на кнопки джойстика — вся остальная информация просчитывается на сервере. Тестовый сервер я развернул в западной Европе, и посчитал средний пинг для Российских игроков, и игроков из США.

Для российского игрока средний пинг составил порядка 100 мс, в то время как для игроков из США эта цифра достигала 300мс, при допустимом для нормальной игры в 200мс. Если развернуть сервера в США, то ситуация зеркально изменится, российские игроки получат пинг 300мс, американцы — 100мс. Из этого делаем вывод — к сожалению современный интернет не позволяет iOS игрокам из США и Европы совместно играть на одной карте без лагов, для разных регионов приходится использовать разные сервера.

Но не все так плохо, в играх с кооперативом в реальном времени есть и свои плюсы:

  1. Есть возможность получить от пользователей фидбек в реальном времени, обсудить пожелания игроков «не отходя от кассы».
  2. Возможность перенести рутинную отрисовку игровых карт на игроков — игроки с большей вероятностью соглашаются рисовать карты в игре бок о бок с друзьями.
  3. Возможность проведения чемпионатов — и контроль игрового процесса на большом экране.

Подводя итог, я очень надеюсь, что мобильные игры с реалтайм мультиплеером станут новым трендом, и разработчики еще порадуют нас новыми релизами.

Для тех, кто хочет поучаствовать в эксперименте, я предлагаю скачать игру «Tanks Online: Battle arena» по ссылке ниже и отписать средний пинг в комментариях.

Что полезно знать:

 


✅ Подписывайтесь на нас в Telegram, ВКонтакте, и Яндекс.Дзен.



Добавить комментарий