Сегодня и завтра ветрено и прохладно, возможны кратковременные дожди или затяжные ливни. К середине недели станет суше.
Ни для кого не секрет, что наша старая система погоды представляла собой огромный беспорядок из-за ошибок программирования и проблем с производительностью, поэтому её пришлось удалить из игры ещё давно. Мы смогли решить проблемы с производительностью, проведя больше оптимизаций самостоятельно и меньше полагаясь на оптимизацию системы частиц в Unity. Мы создали собственную примитивную систему столкновений вокселей для обработки грубых, крупномасштабных столкновений. Затем Unity нужно было только обработать детальные столкновения на последних нескольких метрах над землёй.
Что касается визуальных эффектов, я думаю, что на этот раз мы всё сделали правильно, создав систему, которая почти полностью управляется художниками. Затем код просто переключается между различными предустановленными погодными условиями. Преимущество этого подхода ещё и в том, что всё можно настроить с помощью модификаций сервера, что позволит бесконечно настраивать игру в будущем.
Комментарии администратора
Вот краткое описание основных погодных условий для владельцев серверов:
weather.load
- загружает определенный тип погоды
weather.reset
выполняется сброс к динамической погоде
weather.report
выводит текущую динамическую погоду
В настоящее время существуют следующие типы погоды, которые могут быть загружены таким образом:
- Очистить
- Пыль
- Туман
- Облачность
- Сильный дождь
- RainMild
- Шторм
Примером является weather.load Fog
Что касается влияния на игровой процесс, владельцы серверов также могут регулировать степень намокания игроков под дождём и снегом:
weather.wetness_rain
weather.wetness_snow
Параметры вероятности
При использовании динамической погоды по умолчанию владельцы серверов могут индивидуально настраивать вероятность каждого типа погоды:
weather.clear_chance
weather.dust_chance
weather.fog_chance
weather.overcast_chance
weather.storm_chance
weather.rain_chance
Подробные описания
Если всего этого по-прежнему недостаточно для настройки вашего конкретного сервера, вы также можете настроить каждый отдельный параметр погодной системы. Обратите внимание, что отрицательные значения (-1) указывают на то, что значение не перезаписывается и используется то, что в данный момент выводит динамическая погодная система. Эти команды необходимо вводить с консоли сервера — в противном случае используйте sv
для команд сервера, которые будут воспроизводиться на клиенте.
weather.rain
- Сколько должно идти дождяweather.wind
- Насколько сильный ветер (в основном визуальный, влияет на определенную растительность)weather.thunder
- Сколько здесь грома / молнииweather.rainbow
- Можно настроить принудительное включение радугиweather.fog
- Сколько там туманаweather.atmosphere_rayleigh
- Интенсивность рассеяния Рэлея (определяет цвет неба — поэкспериментируйте с этим параметром)weather.atmosphere_mie
- Интенсивность рассеяния Ми (определяет цвет неба — поэкспериментируйте с ней)weather.atmosphere_brightness
- Общая яркость небаweather.atmosphere_contrast
- Общий контраст небаweather.atmosphere_directionality
- Коэффициент направленности, определяющий размер свечения вокруг солнцаweather.cloud_size
- Масштаб слоев облачности (не влияет на рекламные щиты облачности)weather.cloud_opacity
- Непрозрачность слоев облаков и рекламных щитовweather.cloud_coverage
- Сколько неба покрыто слоями облаковweather.cloud_sharpness
- Насколько четки облака, образованные слоями облаковweather.cloud_coloring
- Определяет смешивание рассеянного света от неба и прямого солнечного светаweather.cloud_attenuation
- Какими темными должны быть облака, когда они становятся гущеweather.cloud_scattering
- Сколько солнечного света должны рассеивать облака (заставляет их цвести)weather.cloud_brightness
- Общая яркость облаков