Ну, вам нужно сначала определить, как соединить этих игроков в целом. Если бы я занялся этой игрой, у меня был бы какой-нибудь бэк-сервис, который будет служить общей точкой соприкосновения игрока.
Хотя иметь бэк-сервер недостаточно. Вам понадобится агент в реальном времени для игрового процесса (если только игра, которую вы хотите, является пошаговой системой). Это обеспечит синхронизацию каждого игрока с вашей игрой.
В целом, если бы вам пришлось задавать эти вопросы, я не думаю, что вы готовы к такой области видимости. Ну, конечно, если вы хотите это сделать, вот ваши ответы:
Предварительными реквизитами будут Back-end-сервер (с поддержкой сокетов), агенты реального времени,Проектирование архитектуры многопользовательской системы (Не уверен, что это термин. Ну, в общем, вам нужно будет спроектировать какую-то систему, где вы будете определять, что, где и как данные будут взаимодействовать друг с другом, т.е. кто будет хостом,сервер или плееры?)
Unity работает в зависимости от того, как вы хотите, чтобы он работал. Вы можете использовать UNet или Photon в качестве агента в реальном времени. (Поверьте мне, это не то, что вы хотели бы сделать самостоятельно).
Да, вы можете, пока у вас есть мозги для этого. Вы можете использовать сетевые классы .NET и свободно подключаться к вашим внутренним службам (вашему собственному бэкэнду) с помощью сетевого интерфейса API .NET. Я бы использовал это только для REST API для моего бэкэнда и ничего больше.
Опять же, есть вещи, которые вы бы предпочли использовать, такие как Gamesparks, Playfab, UNet, Photon и т. Д. Я предлагаю сначала попытаться выяснить, что вам нужно, и проверить, есть ли у этих бэкэнд-сервисов / сервисов реального времени. Если они этого не делают, то это время, когда вы делаете свой собственный.