This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос Система топлива

mecinat

Новый участник
18 Мар 2023
24
0
8
Ну короче сделал я систему топлива через отправку измененного кол-ва топлива на сервер но мой друг проверяя код заявил о лагах при влюченной отправки топлива на сервер(которая происходит каждый рендер когда работает движок.). Вопрос таков, как лучше реализовать систему топлива?
 

MADARAdev

Старожил
media
FrontEnd developer
30 Дек 2020
770
294
141
29
как будет "лучше всего" скорее никто не знает. Важно учесть все зависимости. (Моё мнение).

Я сделал это все на стороне клиента (проверки в том числе). и каждые t секунд просто обновляю топливо каждого автомобиля и если оно было увеличено или уменьшено числа N соответственно возвращало искомое значение.

(Я надеюсь разъяснил понятно)
 

mecinat

Новый участник
18 Мар 2023
24
0
8
можешь кинуть код или просто фигню с помощью которой можно сделать своевременную отправку топлива
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
3,122
1,838
211
28
Вызывать серверный ивент с клиента из под render'а - самоубийство.
Render - ивент, который обрабатывается КАЖДЫЙ кадр у игрока. Если у игрока 60 FPS = 60 кадров в секунду = 60 раз обработается ивент render в секунду.
Спрашивается, зачем что-либо отправлять 60 раз в секунду?
Если вам нужен таймер - погуглите об setInterval в JS или Timers в C#.
 
Реакции: Inoi и MADARAdev

MADARAdev

Старожил
media
FrontEnd developer
30 Дек 2020
770
294
141
29
тоже хороший вариант!
 

interk0t

Новый участник
24 Июн 2022
15
0
38
если я 1 раз вызову ивент на сервере (с клиента ) в котором будет таймер , то ивент вызовется 1 раз, но таймер будет работать постоянно (по условию)? Или серверный ивент будет срабатывать каждую секунду вместе с таймером? если первый вариант, сильно будет нагружать сервер?
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
3,122
1,838
211
28
Если ты с клиента вызовешь 1 раз серверный ивент, в котором создастся таймер, то работать код под таймером будет по тем условиям, которые ты пропишешь в инициализации таймера. Сам по себе подход не сказать, что плохой, абсолютно нормальный. Чтобы сказать более конкретно по таймеру и по "нагрузке" - нужен конкретный код.
Серверный ивент сам по себе вызваться не может, однако рекомендую проверять на дубликат таймера перед созданием (хранить id таймера или что-нибудь еще), то есть если таймер уже есть - либо return; и не создавать нового, либо удалять старый и создавать новый, тут уже что тебе нужно по задаче.
 
Реакции: interk0t

Similar threads