Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
OXIDE

Оптимизация | Повышение клиентского FPS

Рекомендованные сообщения

Итак, я хотел бы помочь в оптимизации сервера. Для начала открываем файл init.sqf, что лежит в папке с миссией и редактируем параметры в нём:
1. 
dayz_maxLocalZombies = 3; -  кол-во спавнящихся зомби на игрока. Достаточно поставить 3, чтобы уменьшить нагрузку. Ведь если будет 5 игроков в одной области, то зомби будет уже аж 15. Этого вполне достаточно, чтобы сохранить антураж зомби апокалипсиса;
2. MaxVehicleLimit = 0; - кол-во открытой техники, отспавненной сервером. Чем меньше количество машин, тем лучше. Не рекомендуется ставить выше 50. Тем более это Эпоха, тут машину можно купить минут за 15 игры :D
3. MaxDynamicDebris = 0; - кол-во куч мусора, заспавненных сервером. Тоже бесполезная штука, разве что на запчасти разбирать. Лучше установить значение на 0.
4. dayz_maxAnimals = 5; - кол-во животных, отспавненных на одного человека. Тут надо брать в факт то, какой у вас сервер. Если у вас войнушка, а-ля Тушино, то ставим на 0. Если хардкорное выживание, то можно поставить в районе 5-8. Надо учитывать ещё то, что не всех животных видят оба игрока. К примеру, кроликов игроки видят по-разному, то бишь только у себя.
5. MaxHeliCrashes = 0; - максимальное кол-во хеликрашей. Думаю, что многим этот параметр тоже не особо нужен. Ставим на 0.
6. MaxMineVeins = 0; - Максимальное кол-во "залежей" драгоценных камней и золота. Для тех серверов, где есть в продаже драгоценные камни, уменьшите количество со 150 до 50 хоть. Я же от них вообще отказался. Не вписывается в атмосферу, да и дюпают часто.
7. MaxAmmoBoxes = - максимальное кол-во "чёрных ящиков". Если они вам не нужны, ставьте на 0. Если нужны, поставьте немного, около 3-6.
8. Трава. Пожалуй самый главный пункт в оптимизации. Её полное отключение приведёт к увеличению фпс на 10-30. Чтобы отключить её намертво, в том же init.sqf  вписываем  setTerrainGrid 50;
прямо под if (!isDedicated) then {.
50 - трава полностью отключена
40 - низкие настройки травы
25 - средние настройки травы
10 - ультра настройки.
Также это можно настроить в Ah.config, в инфистаре, но у меня не получилось.
Ещё можно вписать в extra.rc классы, чтобы регулировать траву через пкм по предметам. Для этого у вас должен быть установлен maca_rc. Пример:
 

class EvMoney {
class TravConf {
text = "Настройки травы";
script = "systemChat('Изменяйте настройки Травы под мощность своего ПК. ( Чем ниже настройки, тем выше фпс )');";
};
class trava10 {
text = "Трава: Ультра";
script = "setTerrainGrid 10; systemChat('Качество травы установлено на: Ультра');";
};
class trava25 {
text = "Трава: Нормально";
script = "setTerrainGrid 25; systemChat('Качество травы установлено на: Средне');";
};
class trava40 {
text = "Трава: Низко";
script = "setTerrainGrid 40; systemChat('Качество травы установлено на: низко');";
};
class trava50 {
text = "Трава: Выкл.";
script = "setTerrainGrid 50; systemChat('Трава отключена');";
};
};

 

9. Дальность прорисовки. Для того, чтобы повысить FPS, можно уменьшить дальность прорисовки. Бегать и ездить комфортно при 500-800 метрах. Проходить миссии при 800-1500 метров. Для этого можно также намертво установить прорисовку в init.sqf при заходе на сервер. Для этого вписываем setViewDistance 800
под началом блока if (!isDedicated) then { 
(точно там же, где мы и вписывали траву. Кол-во метров вы можете установить своё. Так же можно вписать в extra.rc классы, чтобы регулировать прорисовку через пкм по предметам. Для этого у вас должен быть установлен maca_rc. Пример:

 

class Binocular {
		class viewdistanceTitle {
			text = "Дальность прорисовки";
			script = "systemChat('Изменяйте настройки Дальности Прорисовки под мощность своего ПК. ( Чем ниже настройки, тем выше фпс )');";
		};
		class distance400m {
			text = "400 метров";
			script = "setViewDistance 400; systemChat('Обзор: 400 метров');";
		};
		class distance600m {
			text = "600 метров";
			script = "setViewDistance 600; systemChat('Обзор: 600 метров');";
		};
		class distance800m {
			text = "800 метров";
			script = "setViewDistance 800; systemChat('Обзор: 800 метров');";
		};
		class distance1000m {
			text = "1000 метров";
			script = "setViewDistance 1000; systemChat('Обзор: 1000 метров');";
		};
		class distance2000m {
			text = "2000 метров";
			script = "setViewDistance 2000; systemChat('Обзор: 2000 метров');";
		};
		class distance2500m {
			text = "2500 метров";
			script = "setViewDistance 2500; systemChat('Обзор: 2500 метров');";
		};
		class distance3000m {
			text = "3000 метров";
			script = "setViewDistance 3000; systemChat('Обзор: 3000 метров');";
		};
		class distance3500m {
			text = "3500 метров";
			script = "setViewDistance 3500; systemChat('Обзор: 3500 метров');";
		};
		class distance4000m {
			text = "4000 метров";
			script = "setViewDistance 4000; systemChat('Обзор: 4000 метров');";
		};
	};

Такими нехитрыми действиями, можно вполне поднять клиентский FPS с 20 до 50-60 на слабых пк. 
Если есть какие-то вопросы, напишите в комменты.
Принцип наипростейший, выложил для тех, кто возможно ещё не знает.
Поставьте палец вверх за старания  :good:

Изменено пользователем OXIDE (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах





Да господитыбожемой, кто этого не знал?
Ну ладно, плюс за старания!

Ещё рекомендую добавить:

 

dayz_maxGlobalZombiesInit = 13;
dayz_maxGlobalZombiesIncrease = 5;
dayz_maxZeds = 400;

 

Не помню за что точно оно отвечает, но зомби меньше не стало, а фпс поднялся!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да господитыбожемой, кто этого не знал?

Ну ладно, плюс за старания!

 

Ещё рекомендую добавить:

 

 

dayz_maxGlobalZombiesInit = 13;
dayz_maxGlobalZombiesIncrease = 5;
dayz_maxZeds = 400;

 

Не помню за что точно оно отвечает, но зомби меньше не стало, а фпс поднялся!

Благодарю :D

Глянь, пожалуйста, за что отвечает. А то мне зомби побольше надо :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  1. dayz_maxGlobalZombiesInit = 13;
  2. dayz_maxGlobalZombiesIncrease = 5;
  3. dayz_maxZeds = 400

3 - сколько максимум зм на сервере может быть.

2. - увеличитель спавна ЗМ в зависимости от местности(например в городе будет Х + 5(5 - указанный в конфиге увеличитель). - местности где в файлах настройки раписаны.

1. - максимум зм для 1 игрока.

 

ЗЫ в 3 пункте я бы больше 200 не ставил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

  1. dayz_maxGlobalZombiesInit = 13;
  2. dayz_maxGlobalZombiesIncrease = 5;
  3. dayz_maxZeds = 400

3 - сколько максимум зм на сервере может быть.

2. - увеличитель спавна ЗМ в зависимости от местности(например в городе будет Х + 5(5 - указанный в конфиге увеличитель). - местности где в файлах настройки раписаны.

1. - максимум зм для 1 игрока.

 

ЗЫ в 3 пункте я бы больше 200 не ставил.

Благодарю за ответ. А, собственно, почему не ставил бы? Я ставил сотню и вообще сервер без зомби был :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Позено + твой)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: 123new
      Вижу крайне много любопытных вопросов по поводу идентификаторов игрока в игре. Что же, разжую для не знающих немного.
       
      В игре есть следующие типы идентификаторов:
      1. Steam64ID идентификатор профиля игрока (на пиратках его UID называют), примерно такой: 765475....65 (17 цифр).
      2. Так называемый мною, BIS ID - uid из окна (консоли) сервера игры и ADM-файлов логов сервера, который пишется самой игрой
      3. Battleye GUID игрока.
       
      Первый идентификатор (Steam64ID) на ПК является прямым идентификатором стим-профиля игрока, уникальным у каждого игрока. Т.е. публичным идентификатором вашего профиля для большинства стим-игр (например, Counter-Strike).
      Второй идентификатор (BIS ID) является определенной хеш-суммой, полученной из Steam64ID посредством конвертации сначала в sha256, а затем в base64. Спасибо за это разъяснение и пример кода-конвертации авторам игры на своем официальном форуме.
      Третий идентификатор (Battleye GUID) является публичным идентификатором Battleye античита, получаемый также из Steam64ID поcредством получения его хеш-суммы MD5. Этот же идентификатор есть в логах сервера от Battleye, в любых RCON-приложениях (DART, BEC и т.п.), также его можно конвертировать самим.
       
      Так вот, как же получить Steam64ID:
      1. Зайти на любой ресурс, предназначенный для сбора таких данных. например на: https://steamid.io/
      2. Ввести ссылку на ваш стим-профиль
      3. Получить результат из кучи данных, одно поле из которых и будет содержать ваш Steam64ID
       
      Как получить BIS ID:
      1. Открыть любой Phyton v2.7 -конвертер в интернете, например: https://onecompiler.com/python2/3ycz55xew
      2. Ввести в него следующий код:
      # Hello World program in Python from hashlib import sha256 from base64 import b64encode def construct_bi_uid(steam_id): hashed = sha256() hashed.update(str(steam_id)) return b64encode(hashed.digest()) print construct_bi_uid(76514925976798981) 3. заменить 76514925976798981 на ваш Steam64ID
      4. Отправить код в исполнение, нажав Execute.
      5. Получить результат
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      [Альтернатива] Метод на основе PHP:
      <?php /** * This is how you get user id (bohemia id) like you see in .ADM files from steam id. */ $steam_id = "76514925976798981"; $user_id = base64url_encode(hash('sha256', $steam_id, true)); function base64url_encode($data) { $b64 = base64_encode($data); if ($b64 === false) { return false; } $url = strtr($b64, '+/', '-_'); return $url; } echo $user_id; [Альтернатива] Метод для javascript - node.js:
      var crypto = require('crypto'); var body = "76514925976798981"; var hash = crypto.createHash("sha256"); var hash_result = hash.update(body, 'utf8').digest('base64'); console.log(hash_result);  
      Как получить Battleye GUID:
      1. Открыть любой ресурс с готовой формой конвертирования, например:
      https://armstalker.com/guid/
      https://dayzrussia.com/f/index.php?pages/dayzguid/
      либо написать свою, на основе данных, предложенных на странице Github
      https://gist.github.com/chris579/53053b6d6438df9a9718c23c0d6bbd69
      Оставлю ниже код для Phyton:
      # Thanks to gunlinux import md5 steamid=76514925976798981 temp = "" for i in range(8): temp += chr((steamid & 0xFF)) steamid >>= 8 m = md5.new("BE"+temp) print m.hexdigest() Код для PHP:
      var crypto = require('crypto'); var body = "76514925976798981"; var hash = crypto.createHash("sha256"); var hash_result = hash.update(body, 'utf8').digest('base64'); console.log(hash_result); '2. Вставить в поле ввода UID(Steam64ID) ваш Steam64ID
      3. Нажать кнопку конвертирования или исполнить код, и получить в готовом виде Battleye GUID
       
      Возможно имеются и другие методы и наработки в получении данных идентификаторов более простыми методами, на других языках, либо автоматически. Я описал лишь известные мне.
      Все желающие могут добавить в комментариях свои способы конвертаций, возможно это поможет кому-либо.
    • Автор: vitacite
      Бесплатные проекты - "пацаны собрались и замутили сервачок" долго не живут.  В этом я убеждался много раз. Нет сначала на интузиазме эффективность неплохая, но затем все это затухает управляемость команды падает.  Начинаются вопросы - "а почему это должен делать я?",  отмазки "да я на даче сегодня", "да у меня командировка" и тд...  + кто-то должен спонсировать оплату сервера, антидудосов и прочей лобуды, а такого человека интерес тоже может пропасть в любой момент. А чтобы проект был хороший - кому-то надо реально "въебывать", как на второй работе, и  кому-то постоянно вливать туда бабло.
      Поэтому, лично я, считаю любой некоммерческий проект заранее проваленным!  Побегать недельку другую с друзьями это да. Что-то более серьезное, не тратьте свои силы и время! Как минимум на  тему сталкера я таких проектов видел 10 штук и в некоторых даже сам поучаствовал. Начиналось все амбициозно и даже набирало онлайн до 100 человек. Но заканчивалось все одинаково 3-4 месяца и с десято скучающих тел, на безлюдном сервере.  С точки зрения администации, игроки ведут себя как проститутки, бегая с сервера на сервер, друзья перешли, или потому что на том добавили новый прикольный скрип, или прикольную тачку, или тут плохой пинг, а там хороший, или админ козел забанил за читы и тд.  а все эти приколюхи требуют денег, а игровое сообщество не очень расположено их платить за некачественный контент. Да и сама администрация достаточно быстро забивает и расслабляется.
      (я сейчас не говорю о конкретном проекте, скорее это собирательный образ халявы).
       
      А теперь по-существу.  Так сколько должен стоить контент с хотя бы приемлемым качеством?  

      Свое мнение я написал ниже.
       
       
      Спасибо за внимание.
       
      А что думаете Вы напишите ниже в комментариях!
       
       
    • Автор: DrTauren
      Как всем известно, сегодня, 19 сентября разработчики DayZ Standalone официально опубликовали документацию серверов Dayz, а также предоставили возможность скачать файлы для запуска сервера DayZ. Ниже прилагается перевод официальной документации этих самых файлов с форума DayZ, а также документация касательно других файлов, которых нет в официальной документации. Пользуйтесь на здоровье 
       
      Скачать серверные файлы через Steam: steam://rungameid/223350
      На данный момент присутствует ошибка с невозможностью скачать файлы сервера, если на вашем аккаунте Steam отсутствует купленная DayZ.
       
      P.S. Если у вас есть чем заполнить эту статью, обязательно пишите мне в лс 
    • Автор: Serdce
      Ссылка на первоисточник - https://github.com/BrettNordin/Exile
      Я всего лишь перевёл
      Собственно переходим по ссылке, и скачиваем архив.
      Для тех, кто не знает как качать с хаба скрин 
      И так, едем дальше
      Скачанный архив распаковываем в удобное место для работы,
      Идём в ваш @ExileServer, там нас интересуют файлы - extDB2.dll , extDB2.so , extDB2-conf.ini , XM8.dll , XM8.so Удаляем эти файлы
      Далее идём в @ExileServer которую мы скачали, всё её содержимое копируем в аналогичную папку на сервере.
      Теперь идём в вашу MPmissions и там распаковываем вашу миссию "Exile.название карты",
      Туда мы копируем содержимое папки Exile.MapName из архива,
      Далее открываем ваш config.cpp и ищем там class CfgExileCustomCode 
      В него мы добавляем - #include "CfgExileCustomCode.cpp"
      Должно получится так
      Запаковываем обратно)
      Ну и теперь из архива мы копируем tbbmalloc.dll, tbbmalloc_x64.dll в папку расположения вашего Arma3_server.exe
      Не забываем поменять в вашем файле запуска сервера с arma3server.exe на arma3server_x64.exe 
      Ну и финишная прямая, открываем вашу базу данных ( желательно с название exile ) и добавляем файл Exile_Database_Update_64x.sql
      Далее настройте под себя ваш extdb3-conf.ini
       
  • Наш выбор

×
×
  • Создать...

Важная информация

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