2017-01-11 2 views
0

(Извините за долгое время ищет пост, это на самом деле очень короткий контекст)Фотон сервера против выделенного Master Client с ПУНАМИ

Здравствуйте, я новичок в сетевом программировании и понятиях. Однако я работал с PUN раньше, несколько раз. Я знаком с PUN для синхронизации вещей. RPC и сериализация и т. Д.

Я хочу создать полностью авторитетную и перспективную масштабируемую архитектуру сервера, которая работает на выделенных серверах и управляет услугами комнаты/лобби для клиентов. Архитектура сервера, которую я планирую, похожа на такие игры, как Rust/ARK/Hurtworld и т. Д. Однако игра будет состоять из 7v7 матчей (не таких, как они, 15 макс), но также будет иметь механику, которая изменяет мир. (например, строительство чего-либо для мира или изменение ландшафта путем добычи и т. д.). Геймплей будет похож на Ржавчину на визуальные эффекты, но механика будет отличаться. Однако архитектура сервера должна быть очень похожа на эти игры. Это означает, что он не будет равным равным.

Чтобы начать: «Я знаю», что я должен использовать Photon Server для такого рода вещей. Поэтому я могу правильно закодировать логику на стороне сервера? Властная архитектура, постоянный мир, пользовательские базы данных мира, серверное управление, все это должно быть сделано на стороне сервера, если я не ошибаюсь. Однако, как я сказал в начале, я работал с PUN раньше, и только я знаю, что только клиент-серверная архитектура: один доверенный клиент (пользователь) размещает игру, а другие присоединяются к нему.

Теперь. Я могу изучать программное обеспечение Photon Server и сервера. (черт возьми, даже начал изучать его сейчас. Это похоже на то, как PUN делает свою работу. Операции и события вместо RPC и т. д.). Однако для создания устойчивой архитектуры сервера мне нужно углубленно изучать и практиковать. Значение: мне нужны глубокие знания для создания коммерческого сервера продуктов.

Итак, для начальной фазы прототипирования я не хочу фокусировать свою нагрузку на обучении и создании Photon Server. Вместо этого я придумал идею.

Что делать, если я создаю экземпляры Unity на выделенных серверах, которые создают (хосты) комнаты с PUN (облаком). И другие игроки по всему миру присоединяются к этим встречам? Выделенные серверы будут просто «не-игровыми» главными клиентами, в которых размещаются игры, и пусть другие игроки присоединяются к играм. А также делает серверный материал сам по себе.

Итак, я бы создал отдельный проект проекта Unity для сервера, который может управлять серверами, управлять базами данных, создавать и поддерживать постоянные миры. Все функции, которые не будут в пользовательских клиентах, могут находиться в проекте клиента сервера (хоста/мастера). И я могу справиться с этим на выделенном сервере.

Чтобы уточнить: «Специальный» проект единства, который управляет имитацией игры, управляет миром, управляет базой данных, управляет игроками, управляет всем и запускает все, будет основным клиентом. Будет проходить игра. И проекты сотрудничества «клиент» присоединятся к этой игре и будут «отправлять» исходные данные для авторитетной архитектуры. Сервер будет «принимать» эти входы, имитировать его и отправлять обратно клиентам.

Чтобы уточнить: все, с чем должен обращаться фотонный сервер, будут обрабатываться серверами реле PUN и Cloud, функциями RPC и Serialize. Поэтому я не буду суетиться с помощью серверного программирования. Win-Win. Правильно?

Я знаю, это, вероятно, не лучшее решение. Я не нашел ни одного документа/темы об этом. Так что для начала это может быть действительно глупой идеей. Но мне интересно. Если я начну с такого типа архитектуры, когда я получу фазу прототипа, было бы легко реализовать Photon Server на стороне сервера? Было бы легко и эффективно работать над этим подходом? Или я должен прекратить все, что я делаю, и начать изучать фотонный сервер?

+0

Вам нужно использовать Photon? Есть интересный UNET Framework, который обладает функциями, которые вам нужны в Asset Store. – Vancete

+0

Привет, могу я знать, с каким решением вы идете? Я пытаюсь сделать что-то подобное, чтобы разместить экземпляр единства на сервере, но вместо этого я использую только UNET. – FunFair

ответ

0

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

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

И, наконец, мы (PhotonTeam) и сообщество поможем вам либо здесь, либо на нашем форуме. Лучшие, Photonians

Смежные вопросы