Переход игрока между локаций/сервера/мини-кластера.

Сеть в Unity3D

Переход игрока между локаций/сервера/мини-кластера.

Сообщение TheFoXi 28 авг 2017, 20:27

Привет.

Может мне ктонибуть посоветовать в каком направлении двигаться, что почитать или посмотреть.
Я хочу реализовать переход игрока между локаций(между сценами или зонами).
Например как в Guild Wars 2 или Albion Online.
При входе в колайдер или триггер, игрок переходит на другу локацию.
(переход с Zone-server1:50001 в зону Zone-server2:50002)
Я так понимаю как минимум надо :
* Базу данных (Хранить всё о игроке) чтоб подтягивать информацию о игроке для локации.
* Под каждую локацию свой сервер со своим портом(не машину , а сервер локации - наподобе Headless ).
* .....
Вот вопрос в том как проше всего это реализовать и на чём.
Как сделать на Unet и используюя Headless Server?
Как сделать через Forge Networking Remastered и реализовать переход ?

Переры Гуугл и Ютуб но так и не нашёл полезных примеров.

PS:
Читал документацию про Photon Server и MMO модуль и пробовал примеры ,
а также рассматривал SmartFoxServer X2 CE и пробовал примеры .
Но всё это покачто слишком сложно , а мне бы попроше вариант найти чтобы желание не пропадало обучатся дальше.
TheFoXi
UNец
 
Сообщения: 2
Зарегистрирован: 28 авг 2017, 19:48

Re: Переход игрока между локаций/сервера/мини-кластера.

Сообщение Ert Donuell 28 авг 2017, 21:15

Это как в тут?
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Переход игрока между локаций/сервера/мини-кластера.

Сообщение TheFoXi 28 авг 2017, 21:52

Да, очень похоже.
А как это реализовать?
TheFoXi
UNец
 
Сообщения: 2
Зарегистрирован: 28 авг 2017, 19:48

Re: Переход игрока между локаций/сервера/мини-кластера.

Сообщение Ert Donuell 30 авг 2017, 16:04

Это я писал сетевой движок. Создаю комнаты. У клиента - дубликаты. У серверов - соседи (дубликаты соседних локаций). Когда подключаетесь к серверу, то подключаетесь и к его соседям. Когда отключаетесь, отключаетесь и от более удалённых серверов. Вот и вся магия
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Переход игрока между локаций/сервера/мини-кластера.

Сообщение iCSdeveloper 04 окт 2017, 16:14

конструкция вида

[Command]
public void CmdLobby()
{
var lobby = NetworkLobbyManager.singleton as NetworkLobbyManager;
if (lobby)
{
NetworkManager.singleton.ServerChangeScene(lobby.lobbyScene);
}
}


только она поменяет сетевую сцену сразу для всех игроков на сервере, а не для одного конкретного (скажем как в Counter-Strike но не как в RF Online)
iCSdeveloper
UNIт
 
Сообщения: 69
Зарегистрирован: 24 июн 2016, 19:07
  • ICQ

Re: Переход игрока между локаций/сервера/мини-кластера.

Сообщение iCSdeveloper 07 окт 2017, 12:01

А на самом деле вопрос легко решается в пару строчек на UNET, просто немного видоизменим NetworkManager


// вместо конструкции вида
//if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Dedicated Server (S)")) {
//StartServer();
//SceneManager.LoadScene(0);
//}

// вставляем для каждого экземпляра сервера (каждый для своей сцены-карты)
if (GUI.Button(new Rect(xpos + 200, ypos, 200, 20), "Dedicated Server Scene1 (S)"))
{
manager.networkPort = 7780;
StartServer();
SceneManager.LoadScene(1);
}

if (GUI.Button(new Rect(xpos + 400, ypos, 200, 20), "Dedicated Server Scene2 (S)"))
{
manager.networkPort = 7790;
StartServer();
SceneManager.LoadScene(2);
}



В итоге получаем вместо стандартных кнопок "Server" "Client" набор кнопок "Server" и набор кнопок "Client". Вот и всё. Собираем, запускаем столько экземпляров сервера сколько сцен (каждый на разной сцене). А клиент тогда выбирает при коннекте куда присоединится (в какую сцену т.е. на какой порт сервера). Перевесить эти кнопки из главного меню на порталы или итемы уже сами справитесь.

TheFoXi писал(а):Привет.

Может мне ктонибуть посоветовать в каком направлении двигаться, что почитать или посмотреть.
Я хочу реализовать переход игрока между локаций(между сценами или зонами).
Например как в Guild Wars 2 или Albion Online.
При входе в колайдер или триггер, игрок переходит на другу локацию.
(переход с Zone-server1:50001 в зону Zone-server2:50002)
Я так понимаю как минимум надо :
* Базу данных (Хранить всё о игроке) чтоб подтягивать информацию о игроке для локации.
* Под каждую локацию свой сервер со своим портом(не машину , а сервер локации - наподобе Headless ).
* .....
Вот вопрос в том как проше всего это реализовать и на чём.
Как сделать на Unet и используюя Headless Server?
Как сделать через Forge Networking Remastered и реализовать переход ?

Переры Гуугл и Ютуб но так и не нашёл полезных примеров.

PS:
Читал документацию про Photon Server и MMO модуль и пробовал примеры ,
а также рассматривал SmartFoxServer X2 CE и пробовал примеры .
Но всё это покачто слишком сложно , а мне бы попроше вариант найти чтобы желание не пропадало обучатся дальше.
iCSdeveloper
UNIт
 
Сообщения: 69
Зарегистрирован: 24 июн 2016, 19:07
  • ICQ


Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1