Мультиплеер туториал 1: основы

2

Index

Tagged

Contributors

Stats

49,159 visits, 75,360 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 19 Dec, 2016. Last updated 25 Feb, 2019

Типы соединений

Мультиплеер в Construct 2 основан на WebRTC DataChannels. Это - браузер, позволяющий соединяться по технологии peer-to-peer, т.е. соединение происходит между игроками напрямую, не используя центральный сервер.

Несмотря на то, что игроки соединяются напрямую друг с другом, сами игры все еще основаны технологии сервер-клиент. Первый, появившийся в игре автоматически становится сервером (хозяином host ), к которому уже подключаются остальные. Разница от использования центрального сервера заключается в том, что сервером может стать любой игрок. В то время как центральный сервер управляет игрой по заданному сценарию.

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

Для присоединения peer`ов, чтобы иметь возможность подключиться к хосту, он должен знать, где они находятся и как подключиться к ним. Это включает в себя обнаружение их [IP-адреса] [0], выяснение, есть ли у них есть маршрутизатор, который ограничивает соединения, и возможен ли обход этих ограничений.

Ограничивающие маршрутизаторы очень распространены. Интернет вышел за рамки IPv4 адресов несколько лет назад. Чтобы обойти эту проблему, нужно скрыть несколько пользователей за одним IP-адресом. Это делается с помощью [Network Address Translation] [1] (NAT). Например, в вашем собственном доме или офисе, может быть роутер, через который юзер внутренней сети подключается к Интернету. В одном из вариантов NAT сделает все входящие с одного IP-адреса, но через различные [порты] [2]. Есть несколько других вариантов NAT, в том числе крупномасштабный NAT для целых регионов, интернет-провайдеров или мобильных сетей, где некоторые являются более строгими, чем другие. К сожалению, это означает, что в некоторых случаях соединение невозможно, особенно если оба, хост и присоединяющийся пир находятся за очень строгими NAT. Тем не менее с общими установками игроки , как правило, соединяются друг с другом, и, чем ближе они находятся географически тем более вероятно, что соединение должно работать и обеспечить хорошее качество обслуживания. Это одна из причин, по которой правильно побуждать игроков присоединиться к другим, по крайней мере на одном континенте.

Подключение выполняется автоматически WebRTC. Он будет пытаться определить, как подключиться к хосту, работающих через NAT ограничений. Это также означает, что нет никакого конкретного порта, через который работает игра; она работает зависимости от тех портов, которых WebRTC найдёт рабочими. Например, в приведенной выше схеме, три клиента совместно используют один IP-адрес, поэтому пиру с другой стороны, необходимо подключиться к этому IP-адресу через порт А, чтобы достичь первого клиента или порт B, чтобы достигнуть второго клиента, и так далее. Нужно иметь в виду, что иногда два пользователя не смогут соединиться друг с другом, и в таком случае им необходимо найти другого игрока в качестве хоста.

[IPv6] [3] постепенно завоевывает принятие всем Интернетом гораздо большего адресного пространства. Это позволит каждому устройству, подключенному к Интернету, опять иметь уникальный IP-адрес, что делает NAT ненужной и позволяя связи между всеми, независимо от их сетевых настроек. Пока этого не произойдет, проблемы со связью будут печальным следствием. Google публикует [статистические данные о принятии IPv6] [11].

  • 0 Comments

Want to leave a comment? Login or Register an account!