Jump to content


Photo

Синхронизация даты и времени в мультиплеере


  • Please log in to reply
35 replies to this topic

#21 OFFLINE   armadillo

armadillo

    Ефрейтор

  • Пользователи
  • 34 posts
  • Откуда:Arma 2 Dayz

Posted 24 November 2018 - 11:51

armadillo, каждый кадр отслеживать изменение даты и, если оно резко отличается от нужной, выполнять setDate на нужное время :) правда фризы обсеспечены

даже если так - команда локально на клиенте не пашет.


Я в конфигах не очень. Может есть возможность как то переопределить функцию которая за синхронизацию даты и времени отвечает? я бы поколдовал ее под себя.


  • 0

#22 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 24 November 2018 - 15:42

armadillo, нет, это внутри движка, в какой-то версии БЕСы догадались ввести синхронизацию времени... вроде как было связано с модулями Зевса, т. к. на старте часто наблюдалось то, что у одних игроков одно время, а у других - другое, но хто чисто мое мнение
  • 0

#23 OFFLINE   nIkRon

nIkRon

    Сержант

  • Пользователи
  • 195 posts
  • Откуда:Донецк

Posted 24 November 2018 - 20:16

armadillo,Она работает на клиенте, но как писали выше, через N сек она возвращает все обратно, поэтому используйте этот код если уже так сильно нужно:
 

addMissionEventHandler ["EachFrame", {
   if !(date isEqualTo [ВАША ДАТА]) then {setDate [ВАША ДАТА]}
}];

в if можете добавить промежуток времени, но не думаю что это нужно, так как оно каждые N сек откатывается.
UPD. Изменил код, так думаю получше будет.


Edited by nIkRon, 24 November 2018 - 22:44.

  • 0

#24 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 25 November 2018 - 17:56

Остаётся только вопрос, зачем?

В чём смысл иметь на сервере одну дату, а на клиентах другую? 

Если только устраивать чемпионат по читингу).


  • 0

#25 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 25 November 2018 - 19:52

SteelRat, например, для in-game заставки: игрок входит на сервер, на котором миссия цже давно началась, смотрит заставку связанную с миссией и в бой :) (Пилить видос, который будет еще не мало весить никому не хочется)
  • 0

#26 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 25 November 2018 - 21:44

SteelRat, например, для in-game заставки: игрок входит на сервер, на котором миссия цже давно началась, смотрит заставку связанную с миссией и в бой :) (Пилить видос, который будет еще не мало весить никому не хочется)

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

А так, ну такое себе, хозяин барин.


  • 0

#27 OFFLINE   armadillo

armadillo

    Ефрейтор

  • Пользователи
  • 34 posts
  • Откуда:Arma 2 Dayz

Posted 03 December 2018 - 09:04

Потому что не устраивает уровень освещения в различных подвалах, подземельях и просто тёмных (по идее)комнатах, куда не попадает солнечный свет. Неестественно светло. Для достижения приличной атмосферы приходилось городить систему из двух серверов на единой бд и на втором зацикливать ночь. Игрок при этом как бы тпхается в подвал, переходя на второй сервер где постоянно темно. Вся эта канитель ради пары моментов в подвале немного зашкварна, не находите?
  • 0

#28 OFFLINE   nIkRon

nIkRon

    Сержант

  • Пользователи
  • 195 posts
  • Откуда:Донецк

Posted 03 December 2018 - 12:38

armadillo,Кроме этого костыля из постоянно проверки на данный момент ничего нормального нет(естественно если не брать в расчет 2 сервера, это куда лучше чем костыль как по мне).
P.S Освещение реально дерьмо полнейшее, как и по сути и большинство того что делают бисы, если бы не возможность модинга/кодинга, игра бы уже лежала под толстым слоем земли. 


Edited by nIkRon, 03 December 2018 - 12:39.

  • 0

#29 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 03 December 2018 - 15:13

Потому что не устраивает уровень освещения в различных подвалах, подземельях и просто тёмных (по идее)комнатах, куда не попадает солнечный свет. Неестественно светло. Для достижения приличной атмосферы приходилось городить систему из двух серверов на единой бд и на втором зацикливать ночь. Игрок при этом как бы тпхается в подвал, переходя на второй сервер где постоянно темно. Вся эта канитель ради пары моментов в подвале немного зашкварна, не находите?

Единственный и верный аргумент в эту сторону.

Я решил эту проблему так же, но немного более радикально.

Я создал вторую локацию-мир-сервер где сам мир на уровне конфига был сконфигурирован так что всегда была ночь, визуально, но, часы тем не менее показывали адекватное время суток.


armadillo,Кроме этого костыля из постоянно проверки на данный момент ничего нормального нет(естественно если не брать в расчет 2 сервера, это куда лучше чем костыль как по мне).
P.S Освещение реально дерьмо полнейшее, как и по сути и большинство того что делают бисы, если бы не возможность модинга/кодинга, игра бы уже лежала под толстым слоем земли. 

Это проблема не только реал виртуалити, хватает движков который так же работают с реалтайм освещением. То естьо то что светится поверхность в темноте, то есть когда на поверхность не попадает солнечное освещение, это эффект этого параметра в материале,

ambient[] = {1.0,1.0,1.0,1.0};

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


  • 0

#30 OFFLINE   armadillo

armadillo

    Ефрейтор

  • Пользователи
  • 34 posts
  • Откуда:Arma 2 Dayz

Posted 03 December 2018 - 23:21

SteelRat, На своем проекте я использовал одну и ту же карту на обоих сервах. Хотя твоя идея лучше потому как можно сохранять в бд дату и время между рестартами. Хотя конфиги мне это как вторая половина дела которую хз почему очень неохото разбирать))). Кстати. nIkRon вот посоветовал а сам видать не проверил (без обид). Если без всяких проверок, а именно в каждом кадре запустить нужную сетдату локально на клиенте то - дата меняется локально, с секундным фризом, и дальше все катит ровно гладко). Получается фризит именно изменение окружения, неба, погоды, освещения итд. А не само изменение даты. То бишь если не дать клиенту менять окружение то фризов нет и результат получен! Я даже знаю кому такое дело намного нужнее чем мне))))


  • 0

#31 OFFLINE   nIkRon

nIkRon

    Сержант

  • Пользователи
  • 195 posts
  • Откуда:Донецк

Posted 04 December 2018 - 03:28

armadillo, Ну проверять то я проверял, меня этот вопрос еще давненько волновал, и я точно помню что при смене, у меня тогда постоянно фризило.

ambient[] = {1.0,1.0,1.0,1.0};

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

 

То есть, если сам создаешь модельки, то можешь сделать нормальные подвалы с помощью этой волшебной палочки(строки) ?


  • 0

#32 OFFLINE   armadillo

armadillo

    Ефрейтор

  • Пользователи
  • 34 posts
  • Откуда:Arma 2 Dayz

Posted 04 December 2018 - 11:12

armadillo, Ну проверять то я проверял, меня этот вопрос еще давненько волновал, и я точно помню что при смене, у меня тогда постоянно фризило.

ambient[] = {1.0,1.0,1.0,1.0};
этот параметр собственно и отвечает за то с какой интенсивностью и каким оттенком будет подсвечиваться поверхность на котором лежит данный материал в случае если поверхность не освещена солнечным светом.
То есть, если сам создаешь модельки, то можешь сделать нормальные подвалы с помощью этой волшебной палочки(строки) ?
Проверка там не нужна, она и даёт фризы.
Я кстати тоже помню разговор с товарищем который модели делает для А3. Вроде как если некоторые параметры правильно выставлять то затемнение значительное, и указал на подземку карты ЧерноРедукс. Но то что я там увидел это мягко говоря залепуха. Да, при спуске освещение плавно слабеет и внизу уже ничего не видно. Но вообще ничего, ни света от фонаря, ни костров итд. Как будто скрутили яркость в минуса. Похоже действительно с этим движком кроме костылей никак.
  • 0

#33 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 04 December 2018 - 20:23

 

а именно в каждом кадре запустить нужную сетдату локально на клиенте то - дата меняется локально, с секундным фризом, и дальше все катит ровно гладко). Получается фризит именно изменение окружения, неба, погоды, освещения итд. А не само изменение даты.

Дело в том, что когда вы выставляете новую дату, активируются алгоритмы пересчёта симуляций связанных с окружающим миром, таже погода, что в свою очередь тащит за собой обновление данных неба и освещённости, и так далее. Всё это тащит за собой фриз, длительностью в зависимости от производительности вашего железа.


armadillo, Ну проверять то я проверял, меня этот вопрос еще давненько волновал, и я точно помню что при смене, у меня тогда постоянно фризило.

ambient[] = {1.0,1.0,1.0,1.0};

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

 

То есть, если сам создаешь модельки, то можешь сделать нормальные подвалы с помощью этой волшебной палочки(строки) ?

Можете естественно, но ваши модельки тогда будут скажем так не хило фонить на фоне ванильных.

Например тот же ванильный перс будет в вашем подвале светиться как новогодняя ёлка если в мире будет светлое время суток.


Edited by SteelRat, 04 December 2018 - 20:24.

  • 0

#34 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 04 December 2018 - 20:32

 

Но то что я там увидел это мягко говоря залепуха. Да, при спуске освещение плавно слабеет и внизу уже ничего не видно. Но вообще ничего, ни света от фонаря, ни костров итд. Как будто скрутили яркость в минуса.

Смею предположить что в данном случае пытались симулировать затенение играми с пост процесс эффектами. Я как то тоже решил попробовать решить проблему подвала таким способом и получил именно такой эффект, то есть ни хрена становилось именно не видно, а не затенённо.


Edited by SteelRat, 04 December 2018 - 20:34.

  • 0

#35 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 04 December 2018 - 20:40

 

Похоже действительно с этим движком кроме костылей никак.          

И ещё раз господа, любой движок который использует для рендера реалтайм агоритмы расчёта освещённости поверхностей даёт именно такой результат. Расчёт освещения в реальном режиме это очень дорогое удовольствие, и если реализовывать максимально реалистично, то будет в наличии не играбельный продукт, по этому в таких случаях идут на разумные компромисы. Освещение не проблема когда игра не предполагает смену времени суток, генерируются карты освещения и вуаля, имеем максимально возможное к реальному освещённость локации.


  • 0

#36 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 05 December 2018 - 00:37

SteelRat, с пост-эффектом есть еще одна проблема - фонарики не светят днем :)
  • 0




Яндекс.Метрика