Unity 2D Multiplayer - сервер-клиент - PullRequest
0 голосов
/ 19 октября 2019

Моя идея сделать простую 2D-игру, в которую можно играть как в одиночном, так и в многопользовательском режиме. Концепция действительно проста: тот, кто создает игру, является хостом, а тот, кто присоединяется, является клиентом.

Вопросы / проблемы: 1. Каковы предварительные условия для запуска такого проекта? 2. Как Unity работает с ситуациями сервер-клиент? 3. Можно ли реализовать сеть вручную, написав для нее скрипт? (без использования сторонних библиотек и пакетов)

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Либо вы делаете 2D или 3D игру, главное в многопользовательской игре - BaaS (Backend как услуга). Вы можете написать свой собственный бэкэнд, используя предпочитаемый серверный язык и базу данных, но им действительно трудно управлять в течение длительного периода. поэтому у нас есть короткий и быстрый способ сделать это, используя лучший BaaS.

вот список.

  1. Prefab
  2. GameSparks
  3. Фотон

и более здесь

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

0 голосов
/ 19 октября 2019

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

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

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

  1. Предварительными реквизитами будут Back-end-сервер (с поддержкой сокетов), агенты реального времени,Проектирование архитектуры многопользовательской системы (Не уверен, что это термин. Ну, в общем, вам нужно будет спроектировать какую-то систему, где вы будете определять, что, где и как данные будут взаимодействовать друг с другом, т.е. кто будет хостом,сервер или плееры?)

  2. Unity работает в зависимости от того, как вы хотите, чтобы он работал. Вы можете использовать UNet или Photon в качестве агента в реальном времени. (Поверьте мне, это не то, что вы хотели бы сделать самостоятельно).

  3. Да, вы можете, пока у вас есть мозги для этого. Вы можете использовать сетевые классы .NET и свободно подключаться к вашим внутренним службам (вашему собственному бэкэнду) с помощью сетевого интерфейса API .NET. Я бы использовал это только для REST API для моего бэкэнда и ничего больше.

Опять же, есть вещи, которые вы бы предпочли использовать, такие как Gamesparks, Playfab, UNet, Photon и т. Д. Я предлагаю сначала попытаться выяснить, что вам нужно, и проверить, есть ли у этих бэкэнд-сервисов / сервисов реального времени. Если они этого не делают, то это время, когда вы делаете свой собственный.

...