Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной

Приветствую господа! Подскажите как сделать рабочии аномалии, на базе хеликраша или статических машин не получается!?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0

Делать аномалии на базе объектов очень глупо, вы потеряете очень много ФПСа когда их будет много, а когда их мало, не очень как по мне.
Так-же делать их на стороне сервера = минус серверный ФСП.

Самый оптимизированный способ как по мне:
Создаем на сервере массив с позициями, и типом аномалии для этой позиции.
При коннекте игрока, отправляем ему этот массив, а когда он заспавнился, запускаем цикл аномалий:

  • Цикл отображения аномалий:
  1. Собираем ближайшие аномалии от игрока(советую разбить карту на квадраты(аля по 50 метров), что-бы быстрее собирать нужные аномалии, и тем самым не просаживать сильно производительность, и при заполнении массива на сервере, указывать в каком квадрате эти аномалии).
  2. После того как получили ближайшие аномалии, создаем на их позициях партиклы этих самым аномалий.
  3. Далее необходимо постоянно проверять позицию игрока, и при смене его квадрата, удалять партиклы которые далеко от него, и ему уже не нужно их видеть, а новые создавать.
  • Цикл Урона
    1. Собираем аномалии к примеру в радиусе 10 метров, и проверяем на сколько близко к ним игрок, и если он в самой аномалии, отправляем серверу команду нанести урон в этой области, и отобразить эффект взрыва у ближайших игроков. Данную задачу желательно выполнять каждые 0.5 сек.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах



  • 0
10 часов назад, Selleti сказал:

При коннекте игрока, отправляем ему этот массив

А сразу в клиентский мод запихать - религия не позволяет?

10 часов назад, Selleti сказал:

и если он в самой аномалии, отправляем серверу команду нанести урон в этой области

Ага, давай сеть забивать. - На сервере перебрать массив из 50 игроков, этж так сожрет ФПС сервера) Цикл просто убийственный) Взять игрока, да прогнать по дистанциям. И цикла раз в 1с хватит за глаза.

 

@babaich А что именно не получается? ото мы код не видим, - ты уж покажи, что ты там пробовал, что не получается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
4 часа назад, NoNameUltima сказал:

А сразу в клиентский мод запихать - религия не позволяет?

Ну если нам нужны статичные аномалии, то можно сделать и так, но динамические ведь куда лучше будут.
 

 

4 часа назад, NoNameUltima сказал:

Ага, давай сеть забивать. - На сервере перебрать массив из 50 игроков, этж так сожрет ФПС сервера) Цикл просто убийственный) Взять игрока, да прогнать по дистанциям. И цикла раз в 1с хватит за глаза.

Зачем их перебирать ? Когда игрок зашел в аномалии, он отправляет серверу позицию аномалии, и её тип. После чего создаем AreaDamage и визуальный эффект конкретной аномалии, на отправленной позиции.

Изменено пользователем Selleti (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@NoNameUltima Раз уж вы так захейтили эту систему, хотелось бы услышать решение получше от вас.

Если это решение как сейчас стоит на сталкерских серверах от SteelRat, которое создается как тригер и на стороне сервера, то это самое херовое решение которое только можно придумать, когда там будет 100+ анномалий, уже будет ощутима просадка сервера, а при 100+ и 10000+ я вообще молчу, когда при моем варианте 20000+ будут спокойно работать, так как сервер занимается ими только когда нужно нанести урон, а у игрока отрисовка идет только тех, которые рядом, и собирать их через квадрат очень быстро, не нужно перебирать весь массив с позициями, и  проверять дистанцию до каждой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
4 часа назад, NoNameUltima сказал:

Цикл просто убийственный) Взять игрока, да прогнать по дистанциям. И цикла раз в 1с хватит за глаза.

Цикл выполняется на стороне игрока, собрать позиции ближайших аномалий, когда карта разделена на квадраты очень быстро, и проверить ИГРОКА за которого ВЫ играете(ОДНОГО), на сколько он близок к этим позициям, тоже быстро, нам не нужно тут проверять 50+ игроков, каждый проверяет самого себя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@NoNameUltima Я наверное до конца не могу передать мысль, я как доделаю, могу скинуть вам, если интересно будет, я лично не вижу там очень сильного засирания чего либо.
Игрок зашел в аномалию, он должен получить урон(проверка на клиенте), и в этот момент мы даем команду(с клиента) серверу, создать там AreaDamage на несколько сек, в зависимости от типа аномалии и т.д, тем самым у сервера лишь 2 задачи, наносить урон, и отправлять созданный массив игрокам при коннекте, остальное будет выполнять клиент, каждый для себя.


А судя по DayZ, то с клиентским ФПСом у него проблем нет(как это в A3), у него больше проблемы с серверным, и в моем варианте, сервер выполняем минимальные действия.

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

Изменено пользователем Selleti (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
06.03.2020 в 15:33, Selleti сказал:

@NoNameUltima Раз уж вы так захейтили эту систему, хотелось бы услышать решение получше от вас.

Если это решение как сейчас стоит на сталкерских серверах от SteelRat, которое создается как тригер и на стороне сервера, то это самое херовое решение которое только можно придумать, когда там будет 100+ анномалий, уже будет ощутима просадка сервера, а при 100+ и 10000+ я вообще молчу, когда при моем варианте 20000+ будут спокойно работать, так как сервер занимается ими только когда нужно нанести урон, а у игрока отрисовка идет только тех, которые рядом, и собирать их через квадрат очень быстро, не нужно перебирать весь массив с позициями, и  проверять дистанцию до каждой.

Спасибо огромное что откликнулись! есть одна беда , я не силен еще в ваших терминах, и то о чем вы говорите я просто не могу осмыслить)) я новичек в этих делах!)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.