Сотня игроков на одной карте в iOS игре, сложно ли это реализовать?
Сегодня мощность iOS девайсов соизмерима с настольными ПК, но по непонятной мне причине, на iPhone и iPad выходит так мало игр с реалтайм мультиплеером. Практически нет шутеров, и App Store заполнен стратегиями с псевдо мультиплеером, где игрокам предлагают строить базу, а потом громить базу врага, но за врагов уже выступает бот. Либо MMO игры с «медленными» атаками, где скорость интернета не очень важна, но и в этих играх зачастую невозможно сотне игроков собраться в толпу в одной точке карты. Ситуацию изменила популярная игра agar.io, где игроки действительно встречаются на одной карте, и количество игроков на одной карте измеряется сотнями.
В действительности, есть ряд причин, по которым многие крупные компании отказываются от мультиплеера в реальном времени:
- Дорогие сервера, для каждого региона приходится покупать отдельный сервер.
- Довольно большой процент iOS игроков играют при «слабом» интернете, в результате в игре у них ужасно большой пинг, и эти игроки пишут плохие отзывы, так как игра у них не работает должным образом.
- Борьба с читерами, игры с риалтаймом в большей степени страдают от читерства, так как результаты читерства видны всем «на лицо». Учитывая факт, что крупные компании обычно делают игру сразу для iOS и Android, увеличивается вероятность того, что код Android приложения декомпилируют и обнародуют способы взлома.
- Сложность разработки, для сервера и клиента приходится нанимать отдельных программистов, и еще дополнительных людей, которые будут координировать работу кодеров.
Мне, как и многим другим инди-девелоперам, Майкрософт предоставила гранты на бесплатные облачные сервера, так что я решил провести эксперимент, создав многопользовательскую iOS версию старой игры с денди «танчики».
Я изначально оптимизировал код под максимальное количество игроков онлайн: на сервер передаются только нажатия пользователем на кнопки джойстика — вся остальная информация просчитывается на сервере. Тестовый сервер я развернул в западной Европе, и посчитал средний пинг для Российских игроков, и игроков из США.
Для российского игрока средний пинг составил порядка 100 мс, в то время как для игроков из США эта цифра достигала 300мс, при допустимом для нормальной игры в 200мс. Если развернуть сервера в США, то ситуация зеркально изменится, российские игроки получат пинг 300мс, американцы — 100мс. Из этого делаем вывод — к сожалению современный интернет не позволяет iOS игрокам из США и Европы совместно играть на одной карте без лагов, для разных регионов приходится использовать разные сервера.
Но не все так плохо, в играх с кооперативом в реальном времени есть и свои плюсы:
- Есть возможность получить от пользователей фидбек в реальном времени, обсудить пожелания игроков «не отходя от кассы».
- Возможность перенести рутинную отрисовку игровых карт на игроков — игроки с большей вероятностью соглашаются рисовать карты в игре бок о бок с друзьями.
- Возможность проведения чемпионатов — и контроль игрового процесса на большом экране.
Подводя итог, я очень надеюсь, что мобильные игры с реалтайм мультиплеером станут новым трендом, и разработчики еще порадуют нас новыми релизами.
Для тех, кто хочет поучаствовать в эксперименте, я предлагаю скачать игру «Tanks Online: Battle arena» по ссылке ниже и отписать средний пинг в комментариях.
Что полезно знать:
- Как отключить вспышку камеры iPhone
- Как отключить пуш уведомления на iPhone
- Как слушать музыку на iPhone
✅ Подписывайтесь на нас в Telegram, ВКонтакте, и Яндекс.Дзен.