Тестирую свою карту (которая еще, конечно, не закончена), и вот иногда, чтобы проверить на утечность и другие траблы времени, оставляю ее на произвол и ухожу по делам. Но дважды, что я оставлял на ночь. Она переставала работать нормально ровно через 6000 сек (по таймеру времени карты). Второй раз я лично сам это наблюдал. То есть вначале юниты начинали бегать на месте, через 10 сек они телепортировались, а еще через 2-3 минуты экран в игре зависал, и даже не откликается. В диспетчере задач игра работает и отвечает, ресурсы не жрет чрезмерно. Утечек за все 6000 сек нет, но что не так, я не понимаю. Триггеров и таймеров или чего-то другого именно на 6000 сек - нет.
Есть идеи в чем проблема?

Принятый ответ

Возможно какой-либо переодический таймер на +- 0.7 сек, заполняющий массивы.
Массив в 8192 закончился, и при подборе свободных ячеек каждый раз уходит в бесконечный луп, который выдаёт лаг в 3 сек и обрывается на оп лимите.
Единственная идея, ибо сам сталкивался с этим
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
8
6 лет назад
Отредактирован pAxsIs
0
PyCCKuu_4eJl:
Возможно какой-либо переодический таймер на +- 0.7 сек, заполняющий массивы.
Массив в 8192 закончился, и при подборе свободных ячеек каждый раз уходит в бесконечный луп, который выдаёт лаг в 3 сек и обрывается на оп лимите.
Единственная идея, ибо сам сталкивался с этим
Идея хорошая, но у меня стоит круговой счетчик записи на массивах (их всего парочка), при этом если оставлять карту на произвол (без взаимодействия с игроком), то в них ничего не записывается.
Есть Хэш таблица, с которой работаю относительно недавно, но все FlushChildHashtable() - производятся своевременно в порядке. Счетчик Handler-ов всегда на экране и колеблется от 5000 до 5200 выше и ниже не изменяется.

Золото растет, может это? Сейчас буду тестировать на предел золота.
Есть способности, которые создают триггеры и таймеры, но все это самоуничтожается (имеет таймаут после чего уничтожается), утечек тоже не вызывает, поскольку счетчик Handler-ов всегда колеблется в одном диапазоне. Триггеры удаляю правильно (читал как это делать и смотрел как сделаны в других картах, так что алгоритм верный).
Возможно ли, что даже при том, что триггеры уничтожаются и не висят, есть определенный лимит на создание триггеров на одну карту, даже с учетом уже уничтоженных, которых уже нет.

Золото дошло до 10^6 и все, оно тоже не вызвало такие проблемы (это было очевидно).
0
26
6 лет назад
0
А ты наблюдал баг тоже через 6000 секунд?
Просто у меня недавно тоже что-то странное произошло. Когда варик включён, то ноут не уходит в ждущий режим и всё такое, а тут начал игру, но по какой-то там причине лёг спать, не закончив её, утром ноут типа отключился, а когда включил, то там был варик. Вот гадаю, может Майкрософт что-то в винде обновили, что выключаться с игрой ноут стал, либо какая-то служба корректно не сработала, либо раньше корректно не срабатывала.
Короче, это к тому, что может винда что-то делает через 6000 секунд
0
8
6 лет назад
0
8gabriel8:
А ты наблюдал баг тоже через 6000 секунд?
Да, оба раза именно через этот промежуток времени. На ноуте стоит при работе от сети не уходить в ждущий режим и вообще куда-либо. Хотя при включенном warcraft 3 вообще не вырубается сам.
Просто ведь по сути зависает же не через 6000 сек после включения warcaft 3, а именно на карте. Хотя игра отвечает, то есть нет надписи (Не отвечает). Могу переключать окна на Windows.

Сейчас пока запустил карту в фоновом режиме. 500 секунд никаких подозрений.
(Кстати я был во второй раз за пару минут до 6000 сек и тоже никаких подозрений на лаги.)
0
26
6 лет назад
0
А были случаи, что и через 6000 секунд всё нормально было с картой?
0
8
6 лет назад
0
8gabriel8:
А были случаи, что и через 6000 секунд всё нормально было с картой?
Только 2 раза доходил до такой отметки. Обычно не провожу таких долгих тестов, ибо уже через 5-10 минут понятно есть ли утечки или нет. (По счетчику)
1
26
6 лет назад
1
Рекомендую протестировать на 6000 секунд любую другую карту, если с ней история не повторится, то, пожалуйста, карту в студию.
0
18
6 лет назад
0
Варкрафт же пишет реплей и после каждой игры создает файл LastReplay
Вроде помню что говорилось: типа можно отключать запись реплея и нагрузка на карту/варкрафт уменьшится
А 6000 секунд это 4 с лишним дня)
Вдруг всё таки из за этого

Вот нативка, чтобы отключать запись реплея
native DoNotSaveReplay takes nothing returns nothing
0
26
6 лет назад
0
UrsaBoss, 6000 секунд=100 минут, а не 100 часов.
0
18
6 лет назад
0
8gabriel8:
UrsaBoss, 6000 секунд=100 минут, а не 100 часов.
а, да, перепутал)
0
21
6 лет назад
0
любопытно... просто вспомнилось, что в какой-то игре официально был такой баг, официально пофиксенный патчем: она зависала, если непрерывно работала 2 с половиной недели
О, даже удалось найти!!! Только не две, а три с половиной
И не какой-то, а ВАРКРАФТЕ, лол. Только втором.
www.igromania.ru/article/8934/CD-MANIYa.html поиск по словам "на клики" на странице.
0
8
6 лет назад
0
UrsaBoss:
Вроде помню что говорилось: типа можно отключать запись реплея и нагрузка на карту/варкрафт уменьшится
Всегда отключаю реплей пока делаю карту, только после того, как закончу проверяю работу карты с включенным реплеем. (Сейчас отключен)

Сегодня на ночь ставил и зависло через 12 000 сек. Буду тестить другую карту на подобный баг. Надеюсь это не в моей карте проблема.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.