@Serjio-Grig
Тот самый никто (=

Как организовать загрузку ресурсов по сети?

Здравствуйте.
Есть несколько вопросов, которые мучают и не дают уснуть в четыре часа утра.:)
Имеется некая игра на Unity3D для Windows.
Пока что - Single RPG, сейчас переписываю в MMORPG.
Вопросов несколько.

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

2. Я планирую сделать «догрузку» уровней (локаций) из сети. Т.е. вышла новая локация или обновление существующей — игрок сразу может скачать именно обновлённую локацию (сцену). Как это можно реализовать?

3. У меня псевдобесшовный мир — т.е. каждая локация довольно большая, но разные локации представлены в виде разных сцен.
Я планирую при смене локации, запрашивать у сервера данные о ней — мобы и NPC в зоне видимости, владения игроков в зоне видимости, самих игроков в зоне видимости (точка спавна заранее известна). Это все при загрузке локации (сцены). Возможно ли расставлять на сцене объекты, полученные подобным образом, после ее загрузки, и скрывать окно загрузки только после этого?
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
новое местоположение игрока отправляется на сервер, а тот уже отправляет обновлённые координаты тем игрокам
Если вы сами играли в сетевые игры, особенно на пиратках, то возможно встречали такое явление как "читеры".
Будьте готовы к тому, что какой-то школьник отправит на сервер не те координаты, которые сгенерировал ваш клиент, а любые, какие он захочет. И получит чит с телепортом, например. То-же самое со стрельбой и проверкой видимости (wallhack), с параметрами скорости (speedhack) и вообще ко всем данным влияющим на геймплей. Их нужно все проверять на сервере, иначе получите толпы читеров. В сети легко найти заготовки "универсальных читов" как под юнити, так и под другие популярные движки.

2. Проще всего лаунчер, который перед запуском игры проверяет обновления.
Несколько посложнее - перед игрой скачивать только самые важные изменения, а остальное докачивать прямо в процессе игры. Можете почитать соответствующие девблоги от blizzard или ccp (в wow и eve-online это реализовано).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы