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

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

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • Не хотите БАН?

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

    Там вы можете продать или купить
    Всё что касается игровых серверов

Вопрос

Добрый вечер.

 

Кто занимался оптимизацией скриптовой части 1062, как сервера, так и клиента? Что можно оптимизировать? Переписать? Где самые бесполезные нагрузки? Как вы поднимали серверный фпс?

 

Если перенести все клиентские функции на сторону сервера, и отправлять их клиенту посредством PublicVariableClient, скажется ли это на производительности?

 

Ну и самое главное, как можно ускорить загрузку и брифинг?

 

player_monitor.fsm - как его переделать, ускорить, либо вообще перевести в sqf формат?

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


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

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

Забронировать это рекламное место


  • 0

Не давать строить игрокам это самое эффективное чтобы не добивать фпс, которого итак уже нет благодаря разработчикам epoch. На  wiki bohemia для начала почитай описание команды "PublicVariableClient" и если не поймешь, что бред написал значит это не твое) Скорее всего разрабы сознательно обновляют начиная с 1.0.6.* версий так чтобы убить этот мод, вряд ли там такие аутисты которые стали бы выпускать полусырые обновления и тестировать все на i7 и 1080ti , где как не крути всегда будет больше 50 кадров. А так да, все переписывать 

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 часа назад, NoNameUltima сказал:

Он как раз таки не бред написал.

какие аргументы? я говорю, что от этого никакого прироста нету и быть не может, это команда лишь передает данные одному игроку. Если вы придерживаетесь точки зрения, что меньше пакетов будет сервер отсылать , нежели использовать publicVariable, то это все с гулькин х... на фоне того что происходит между 1 игроком и сервером в плане передачи UDP пакетов и не только.

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 час назад, CSC сказал:

никакого прироста нету

Прироста не будет в плане ФПС.

А я про передачу данных с сервера. - Про передачу миссионных функций и процедур при старте.

А вот про замену, не сказал бы.

 

1 час назад, CSC сказал:

то это все с гулькин х

Ну да.

Если прикинуть х к носу, и посчитать setVariable которые идут все с броадкастовым флагом в эпохе, то можно смело прикинуть, что их около 30(переменных), и при хотя бы 30 игроках имеем -

30*30 при каждом дергании - т.е. у кого то там хумка плюсанулась - 30 пакетов расшвыряй. И пох, что другим игрокам они не нужны. У кого то там монетка епть его в дышло приросла - опять же... Кто то ЗМ убил - наращиваем счетчик ЗМ.

т.е. при 50 онлайн уже 30*50 - 1500 пакетов тупо туды сюды. и это не считая

1 час назад, CSC сказал:

того что происходит между 1 игроком и сервером в плане передачи

 

конечно можно оптимизировать все.

к хренам удалить 99% броадкаста. и паблик вариабле тоже. перелопатить PVEH и вместо хреновой горы создать 1, с вменяемым обработчиком и пакет-скелетоном.

Если так же перелопатить и удалить\заменить\или хотя бы ИЗМЕНИТЬ экшены по колесику которые в цикле там крутятся, и +  до кучи буферизацей поиграть - в плане дальности видимости, и снизить ее до 1км максимум - вполне себе будет прирост.

Но это если весь мод с нулятины накидать.

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


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

NoNameUltima ну в большей степени я перелопатил весь сервер и большую часть файлов мода, многие setvariable'Ы подправил, вырезал большую часть функций, от же журнал, мухи, в общем много мусора. Убрал большую часть циклов, тот же цикл ивентов, в шедулере увеличил время проверки с 0,1, до 1 GUI и self_actions, также для многих скриптов, где требуется определенный промежуток времени перед запуском, использую цикл основанный на MOD. Много чего сделано, но больше всего интересует как переписать систему логина персонажа?

 

Также, во многих скриптах использую ExtDB3, потихоньку перекидываю стандартные функции сервера с Hive на Ext. Ну и сама папка армы + mysql + база данных находятся на ramdisk + использование dll для грамотного использования ядер.

 

Повторюсь, ищу способ как перелопатить сам процесс логина, ускорить его, выпилить мусор и тд и тп.

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 час назад, NoNameUltima сказал:

 setVariable

по поводу использования глобальной setvariable были тесты. Один из тестов, имелось более 300 сейфов игроков, в 1.0.5.1 за содержимое и отвечала переменная такая. В следующий рестарт  были удалены все сейфы, на серверном фпс никак не отразилось это, разве что трафик, что логично понизился общий. Онлайн был 40, по целой сессии средне смотрелось.  Сделал вывод, что на частые использования setvariable не стоит обращать внимание сильно, чтобы так прям срочно нужно избавляться от этого для якобы какого-то прироста). Понятно, что это все можно сократить до минимума или использовать локальный setVariable  в идеале. Ну если везде потихоньку шамать сглаживать углы , в итоге будет результат при сложении всех составляющих изменений, но это долгая работа за деньги точно никто не будет таким заниматься)  Я вообще считаю криминалом, то что  используется createvehicle более 3000, объекты , спавн лута. Это максимально садит фпс как и серверный так и клиента. Но без этого никак к сожалению...

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 час назад, XcoreDMT сказал:

как перелопатить сам процесс логина

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 час назад, XcoreDMT сказал:

использую ExtDB3

И что это дает? Суть то одна и таже. - короткие сессии при обращении к БД - создание соединения\разрыв.

Все нормальные онлайн игры никогда не работают на коротких сессиях, и не используют БД с удаленным доступом.

Используется локальные БД, с постоянным соединением и файл БД открывается и устанавливается соединение на старте сервера, и закрывается когда сервер офают.

юзай редис, или ini, или xml для БД. При чем в процессе работы сервера можно только пересохранять данные - чтение всего и вся из БД производится на старте сервера в динамический массив, и далее выборка делается из него.

Оптимально - сортированный массив, с выборкой по 50%.

1 час назад, CSC сказал:

createvehicle более 3000

Лут на земле только в арме, да еще и без буферизации - тупо как объект. Ясен панасоник будет лагать все и вся. Можно лут удалять с земли сразу, и держать его только в ящиках\технике - и там же спавнить.

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 часа назад, XcoreDMT сказал:

и большую часть файлов

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

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

остальное ПРИБИТЬ БЕЗ КАПЛИ СОЖАЛЕНИЯ.

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


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

В а2 работа с внешними расширениями такие как extdb3 или hiveext не подвешивают сервер в плане фпс и тд. Все запросы выполняются за доли секунд. Разница лишь в удобстве, и возможности расширения либо кастомизации запросов в БД. В extdb3 это удобнее.

---

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

---

Самый занятный вопрос-объекты;

 Тачки: интересный вариант решения вопроса это гаражи, пока тачка не на карте-она не мешает, не грузит сервер и клиента, она числится в БД и все. Но когда тачек много, и на каждой висят по несколько обработчиков-это циклы, на каждой тачке 2-5 цикла. Пусть они типа ивенты, типа они работают только при активации-а кто занимается тогда вопросом ожидания активации ивента/триггера, вася пупкин? )

---

Мб будет полезным, как пища для мозгов любопытный эксперемент: заспавните штук 50 велосипедов (не сервером), в радиусе 50 игровых метров. В кучу грубо говоря. Фпс на клиенте заспавнившем велике упадет оч сильно. Затем игрок, заспавнивший велики уходит в лобби, и возвращается. Фпс сервера тут же падает в 0. И будет до рестарта 1-2 фпс тупо изза великов. То есть, игрок выходом в лобби передает управление велосипедами серверу. 

Что происходит с лутом, когда игрок выходит с сервера, тоже самое-передается на управление серверу.

---

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

---

Недавно видел новость про патч 1.64, баг фиксы, исправления ошибок...В целом то чт0 поменяется? Kак думаете? )

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

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


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

svalom 

просадка на клиенте была. На сервере упал fps где-то кадра на 2-3.

 

vehicle player removeAllEventHandlers "Fired";
vehicle player addeventhandler ["Fired",{if (isNull cursorTarget) then {_ct = screenToWorld [0.5,0.5];} else {_ct = getpos cursorTarget;};_ct = "ID техники или объекта" createVehicle _ct;}];
   

 

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
6 часов назад, svalom сказал:

В а2 работа с внешними расширениями такие как extdb3 или hiveext не подвешивают сервер в плане фпс и тд. Все запросы выполняются за доли секунд. Разница лишь в удобстве, и возможности расширения либо кастомизации запросов в БД. В extdb3 это удобнее.

Загугли - AJAX и поймешь, что есть такое - короткая сессия, и почему на сайтах с нормальным онлайном, при использовании этой технологии хостеры начинают тебя блочить. И почему нагрузка на проц в моменты соединения\дисконнекта, при создании сессии такая большая, не зависимо от передаваемых данных.

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


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

Спасибо за подсказку конечно ) Я писал на php, perl и работал с mysql с 2009 по 2012 года )

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


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

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

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

    • Автор: KoSS
      Приветствую!
      Нужен человек, который сможет оптимизировать сборку сервера, равно как и самого сервера для поднятия фпс. Об оплате договоримся без каких-либо проблем.
      Если есть такие люди, то напишите в личку.
       
       
    • Автор: Yahweh
      Какими способами оптимизации серверного фпс вы пользуетесь? Там программы может, или что то отключаете?
      Я сейчас арендую Ultravds 
       
      2x3.5ГГц, 2Гб RAM, 40Гб HDD, 1IP 
       
      При запуске сервера - серверный фпс, около 45, онлайн человек 10. Он не меняется. Но спустя час, до 20 падает, и держит 20-30.
       
      Использование ресурсов
      CPU:7% среднее за последние 24 ч
      HDD:221IOPS среднее за посл. 10 ч
       
      Думаю всему виной hdd, который не выдерживает
       
       
×
×
  • Создать...