Как сделать чтобы варкрафт не лагал

Добавил пользователь Skiper
Обновлено: 05.10.2024

Это может быть долгое время загрузки или же лаги сразу же после старта игры. Есть несколько причин этих лагов:
А. Создание войск и героев.
Каждый раз когда вы создаёте воина или героя во время загрузки карты, создание занимает некоторое время. Если поместить это создание в инициализацию карты, то можно избавиться от внутриигровых пауз, но карта будет загружаться дольше. Если вы хотите избежать таких лагов, то поместите небольшой ролик перед игрой. Тогда игроки не заметят внутриигровых пауз или большого времени загрузки.

Б. Массивное количество кода.
Если при инициализации карты выполняется много кода, то это может значительно замедлить загрузку карты. Выполнив некоторую часть этого кода во время ролика в начале игры может сделать процесс более быстрым.

В. Загрузка карты.
Другие игроки могут лагать из-за размера вашей карты. Если размер вашей карты Большой или Огромный, то можно добавить время загрузки сразу после старта игры, тогда игроки смогут выдержать мощный поток на их компьютерах. (Подобное я видел в Vengeance RPG)

2. Лаги во время игры. Во время игры ваша карта лагает всё больше? Этому может быть несколько причин:


А. Утечки памяти.
Знаете ли вы, что каждый раз, используя "Pick every Unit in. " или "Create Units at Location", вы создаёте утечку памяти? Это основная причина лагов во время игры. Многие переменные вызывают утечки, например: точки, отряды, группы игроков, спецэффекты, молнии, плавающие тексты, таймеры и.т.д.
Чтобы обойти эти утечки стороной, занесите утечный тип в переменную, затем используйте строки Custom Script(Jass), чтобы избавиться от утечки.

Первый шаг - определить типы всех значений, которые вы можете изменить. В этом триггере я использовал 1 (Целочисленная), Пехотинец (Тип боевой единицы), Игрок 1 (Красный) (Игрок), Position of(Entering unit) (Точка), Entering unit (Боевая единица) и Стандартная ориентация зданий (Реальная).
Следующий шаг - определить, какие типы переменных утечны.

1 (Целочисленная) = Целочисленные не вызывают утечек.
Footman (Тип боевой единицы) = Типы боевой единицы не вызывают утечек
Player 1 (Red) (Игрок) = Игроки не вызывают утечек
Position of (Entering unit) (Точка)= Точки ВЫЗЫВАЮТ УТЕЧКИ.
Entering unit (Unit)= Войска не вызывают утечек
Default buliding facing degrees (Real) = Реальные не вызывают утечек


Как можно увидеть выше, я нашёл переменную, которая вызывает утечки, моя переменная-точка.
Итак, нам нужно занести во временную переменную эту точку ПЕРЕД созданием воина, затем использовать эту переменную в создании воина.

Теперь утечка записана в переменной и можно её удалить. Каждая утечная переменная имеет действие уничтожения, запомните эти линии:

Custom script: call RemoveLocation (udg_*Temp variable name here*)
Custom script: call DestroyGroup (udg_*Temp variable name here*)
Custom script: call DestroyForce (udg_*Temp variable name here*)
Custom script: call DestroyEffect (udg_*Temp variable name here*)
Custom script: call DestroyLightning (udg_*Temp variable name here*)
Custom script: call DestroyTextTag (udg_*Temp variable name here*)
Custom script: call DestroyTimer (udg_*Temp variable name here*)

Для спецэффектов Blizzard уже создала триггерное уничтожение:

Special Effect - Destroy (Last created special effect)


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


Может показаться, что здесь одна единственная утечка. Но это не так. Их две - Position of (Entering unit) вызывает утечку, но также создаёт точку в дистанции от себя, а эта точка тоже вызовет утечку. Нужно позаботиться о двух точках.

Ещё один тип переменной, который вызывает утечки - область, но она вызывает утечки только в том случае, если это не область по умолчанию (Playable Map Area) или уже поставленная на карте область (Region XXXX ), эти типы утечек не вызывают. Существует линия кода, которая позволяет уничтожить этот вид утечки:

Custom script: call RemoveRect(udg_*Temp variable name here*)


Вот, как выглядит утечная область:

Как вы заметили, это создаёт регион (Всё, что не было сразу поставлено на карту, вызывает утечки), а также ТОЧКУ. Этот лаг убирается так же, как и двойные точки - присвойте отдельную переменную каждой утечной строке и уничтожьте их.

Скорее всего, вы тоже создаёте лаги, если используете локальные переменные, типы которых наследуются от handle.

A handle variable includes every single type of variables, except boolean, integer, real, and string. Итак, если у вас есть функции, которые начинаются так:

local VARIABLETYPE NAME

Это создание локальной переменной, и если это не integer, real, string, или boolean, то её нужно обнулить следующим образов:

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

В. Триггерные способности.
Это в основном последняя причина лагов, т.к. большинство лагов может быть исправлено путём удаления утечек. Однако, есть и исключения:
- Лаги могут быть не только из-за утечек, но и из-за вызванных триггерами способностей.
- Если способность использует триггер с периодическим событием, у которого маленькое значение (0.05 и ниже), это может спросоцировать лаги.
Ниже даю вам советы, чтобы сделать вашу карту как можно менее лагающей.

• Избегайте периодических событий настолько часто, насколько это возможно. Если не нужно его использовать, то не используйте его.
• Используйте способности с периодическим событием только для войск, которых мало на карте, например для героев.
• Попробуйте перевести способность в код и оптимизировать её.
• Избегайте большого количества спецэффектов, используйте юнитов-дамми как замену.
• Используйте ненамного большое время при периодическом событии, лучше использовать интервал 0.03-0.05, чем 0.02-0.01. Человеческий глаз разницы не видит.

Г. Большое кол-во объектов.
Попробуйте уменьшить кол-во войск, декораций и спецэффектов на карте. Вместо того, чтобы ставить сотни воинов, обойдитесь парой сотен. Спецэффекты замените на дамми, так вы облегчите графическое ядро.

Все меню представляет собой веб-приложение, работающее на базе хрома.

Главное меню Warcraft 3 Reforged так тормозит, потому что на самом деле это браузер

Сразу после выхода Warcraft 3 Reforged игроки начали жаловаться на проблемы с производительностью, причем не только в самой игре, но и в ее меню. Разработчик Колин Корнаби, кажется, нашел ошибку — дело в реализации меню.

По словам Колина, на самом деле все меню это замаскированный Chrome — видимо, имеется в виду движок Chromium — в котором запущено специальное приложение. Эта система использует только одно ядро и нагружает его на 100%.

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

Оказалось, что все меню это веб-приложение, работающее под Chrome. Эта штука работает даже хуже, чем сама игра (вероятно, потому что она привязана к одному ядру моего CPU).

Колин Корнаби

В качестве подтверждения Колин выложил пару скриншотов. Оказалось, что вместе с Warcraft 3 Reforged запускается приложение BlizzardBrowser; судя по открытым им файлам, оно действительно использует движок Chromium.

Вместе с BlizzardBrowser, нагружающим одно из ядер на 100%, запускаются и сопутствующие сервисы Chromium, также создающие достаточно серьезную нагрузку.

В результате сама игра нагружает процессор на 25%, а ее главное меню — на 150%. Как полагает сам Колин, качество ремастера объясняется тем, что Blizzard не могла выделить на него значительные ресурсы и разработчикам пришлось максимально все упрощать.

Жутко тормозит варкрафт 3 - фрозен трон. Комп такой: Intel Celeron 2.4 GHz - ОЗУ 256 Mb DDR - video GeForce 2 MX 440 64Mb. Дрова поставил, все настройки по минимуму делал . бесполезно. Может кто подскажет чего дельного, ибо совет очень нужен. (только не надо писать, мол выкинь свой комп и купи новый . ) Это первая проблема. Вторая - Варик под вайном не видит других созданых игр (без разницы, создана игра на компе под виндой или под линем), и если сам создаю . его другие компы тоже не видят. Так сеть работает нормально . может где в вайне надо сетевые настройки указывать. Какие будут советы?

играй в варик с opengl и научись использовать поиск

ставил . результат один и тот же .


значит неправильно ставил. Попробуй запустить так:
wine Warcraft\ III.exe -opengl


кстати, а glxgears не тормозит? в смысле, ты уверен, что у тебя директ рендеринг работает?

а вот об этом по побробнее плз.


че по подробенй консоль glxgear , так же надо посмотреть есть ли рейдеринг










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

Читайте также: