Сетевые соединения - очень большая тема с множеством деталей. Однако, всё равно полезно осознавать обширность и глубину знаний, необходимых при работе над любой сетевой игрой. В этом разделе рассказываются фундаментальные основы сетей и специфичные для Unity реализации этих концептов. Если вы впервые работаете с сетями, тогда мы очень рекомендуем детально прочесть это руководство, прежде чем попробовать создать сетевую игру.
Обзор высокоуровневых понятий сетевого взаимодействия - отличное место, чтобы начать изучение или обновить ваши знания о сетях в целом. После той страницы можно ознакомиться с элементами сетевого взаимодействия в Unity для освоения реализации основных понятий в Unity.
Unity makes extensive use of the Network View component to share data over networks and so it is very important to understand how this operates. One of the functions provided by Network Views is Remote Procedure Calls or RPC. This enables you to call a function on one or more remote machines which may be clients or servers.
Что касается обслуживания информации между соединёнными по сети компьютерами, то за это отвечает State Synchronization - метод постоянного обновления специфичного набора данных у двух и более экземпляров игры, запущенных по сети. Другая тема - отслеживание того, какой компьютер владеет объектами в среде для коллективного пользования или управляет тем, какие объекты должны быть доступны в среде для коллективного пользования. Для выполнения этой задачи можно использовать Network Instantiation, хотя существуют и альтернативные способы, которые вы можете использовать для получения дополнительного контроля.
Иногда для обнаружения компьютера достаточно, чтобы кто-то настроил серверную машину и затем напрямую пригласил остальных игроков поиграть. В играх, где предполагается анонимное или массовое участие, можно использовать Master Server (главный сервер) в качестве места публичного извещения об игровой сессии и позволяющее подключаться игрокам. Главный сервер также может использовать технику под названием NAT punchthrough для того, чтобы игроки всегда могли подключиться, даже если они находятся за брандмауэрами.
Снижение количества пересылаемой между компьютерами информации приведёт к улучшению производительности; вы можете найти советы по достижению этих оптимизаций на странице Минимизация сетевого трафика.
Сетевые API Unity на мобильных устройствах в основном такие же, как и для настольных систем, так что для работы сетевых игр не потребуется изменений, либо потребуются незначительные изменения. На странице Сетевые соединения на мобильных устройствах рассказано про некоторые из возможных проблем и даны советы относительно производительности на мобильных устройствах.