Добрый день.
Никто не занимался реверс-инженерингом клиента игры в целях поиска способа повысить FPS? Или у нас в бьенде FPS = TickRate?
Автор: Larboss · 09.02.2017, 08:12 · 20 сообщений
Добрый день.
Никто не занимался реверс-инженерингом клиента игры в целях поиска способа повысить FPS? Или у нас в бьенде FPS = TickRate?
Платина.
Не лезь блять, дебил сука ебаный. Бьендопарашу нет смысла разбирать.
Хочешь фпса, учись читать код, переписывай его.
Не советую соваться в эти дебри.
Да и тормоза в сске связаны по большему счету с кривым кодом.
Напишу универсальную пасту для этого платинового вопроса. Ошибусь - правьте.
В основе обработки ССочки лежит МастерКонтроллер. Это механизм, циклично раз за разом обрабатывающий все внутренности игры, имеющие немгновенные, во времени взаимосвязанные действия. Даже горелка газовая обрабатывается им.
Цикл обработки идет, очевидно, сразу после предыдущего. Машина хоста, все так же очевидно, имеет примерно одинаковую производительность во времени.
Так, теоретически, "быстродействие" игры напрямую зависит от нагрузки на эти циклы.
Всякая операция с машиной (итерация) занимает очень малое, но все же значимое время. Но как капли составляют лужу, множество итераций создают длительную паузу.
Так, большое количество обработки в этом цикле создает продолжительное время его обработки, а значит и следующий цикл произойдет позже.
Продолжительное время между циклами обработки и есть т.н. "лагач".
По моему личному мнению, повысить быстродействие в игре можно двумя путями:
- Улучшить серверный код бъенда (что не в наших силах).
- Рефакторинг (упрощение) программного кода отдельного билда, для снижения нагрузки на каждый цикл. Ведь многие фичи в СС написаны по принципу снежного кома: "Я напишу эту фичу неэффективно, но она одна же не может создать большого лагача!", но вместе эти фичи и делают лаг.
Jarlo (09 February 2017 - 00:45) писал:Напишу универсальную пасту для этого платинового вопроса. Ошибусь - правьте.
В основе обработки ССочки лежит МастерКонтроллер. Это механизм, циклично раз за разом обрабатывающий все внутренности игры, имеющие немгновенные, во времени взаимосвязанные действия. Даже горелка газовая обрабатывается им.
Цикл обработки идет, очевидно, сразу после предыдущего. Машина хоста, все так же очевидно, имеет примерно одинаковую производительность во времени.
Так, теоретически, "быстродействие" игры напрямую зависит от нагрузки на эти циклы.
Всякая операция с машиной (итерация) занимает очень малое, но все же значимое время. Но как капли составляют лужу, множество итераций создают длительную паузу.
Так, большое количество обработки в этом цикле создает продолжительное время его обработки, а значит и следующий цикл произойдет позже.
Продолжительное время между циклами обработки и есть т.н. "лагач".
По моему личному мнению, повысить быстродействие в игре можно двумя путями:
Улучшить серверный код бъенда (что не в наших силах).
Рефакторинг (упрощение) программного кода отдельного билда, для снижения нагрузки на каждый цикл. Ведь многие фичи в СС написаны по принципу снежного кома: "Я напишу эту фичу неэффективно, но она одна же не может создать большого лагача!", но вместе эти фичи и делают лаг.
Это выходит, что бульеновые парни разработали такую кривую архитектуру, что клиентский FPS зависим от серверных плясок? Печально, конечно.
Странно, но на Win XP когда играешь местами FPS то взлетает (выше стандарта), то падает. Хотя такого нет на Win 7... но ладно, я понял.
Ты наверное не очень понимаешь что такое фпс.
Фпс это количество кадров в секунду.
То, что ты наблюдаешь это не фпс, а банальные лаги. Как если бы ты играл в контру, а другие дергались. Тут тоже самое, только сервер начинает медленней работать. Соответсвенно однодвижение занимаен полсекунды, потом секунду.
Самая близкая аналогия - задержка в EVE Online. Там во время баталий на 2к игроков и около того сервер начинает замедлять ход игры, в результате выстрел занимает время не 5 секунд, а все 50.
Тут тоже самое. Пока сервер пройдет по всем событиям, обработает их, пройдет время. Вот и получаем пошаговость.
fey (09 February 2017 - 01:30) писал:Как если бы ты играл в контру, а другие дергались
Ну вот как раз на примере контры - как бы не лагало, а у меня FPS 300+. Сетевая часть отделена от рендеринга. А здесь у нас FPS 10. Я вот о чем.
Larboss (09 February 2017 - 01:54) писал:Ну вот как раз на примере контры - как бы не лагало, а у меня FPS 300+. Сетевая часть отделена от рендеринга. А здесь у нас FPS 10. Я вот о чем.
Ты случаем с конфигом прямого ФПСа билда не путаешь? Его можно настроить хоть в момент самой игры через дебаг. На консервированных хабах сборок он по дефолту стоит низкий.
fey (09 February 2017 - 01:30) писал:Самая близкая аналогия - задержка в EVE Online. Там во время баталий на 2к игроков и около того сервер начинает замедлять ход игры, в результате выстрел занимает время не 5 секунд, а все 50.
Я бы взглянул на такое слоумо.
Larboss (09 February 2017 - 01:54) писал:Ну вот как раз на примере контры - как бы не лагало, а у меня FPS 300+. Сетевая часть отделена от рендеринга. А здесь у нас FPS 10. Я вот о чем.
А какой смысл отделять рендеринг от сетевй части, в, блять, бьонде? Тут же даже интерполяции никакой не запилишь.
Volik (09 February 2017 - 06:45) писал:А какой смысл отделять рендеринг от сетевй части, в, блять, бьонде? Тут же даже интерполяции никакой не запилишь.
Чтобы синга крутилась во время лагов.
PlIn (09 February 2017 - 06:51) писал:Чтобы синга крутилась во время лагов.
Так она и так крутится.
Exo_Revan (09 February 2017 - 07:16) писал:Так она и так крутится.
Значит рендеринг и так отделен от сетевой части.
PlIn (09 February 2017 - 07:30) писал:Значит рендеринг и так отделен от сетевой части.
Анимация упакованная в dmi проигрывается клиентом жеж, через ieframe, как гиф.
Elijah Beily (09 February 2017 - 06:43) писал:Я бы взглянул на такое слоумо.
На ютубе куча записей битв, причём когда игроков РЕАЛЬНО МНОГО даже самые короткие и экшоновые из них могут идти в общей сложности до двух часов.
Эх. Вот еще при Царе Бархандере, когда Токсины Горели, вот тогда реально слоумо так слоумо было. Была пошаговость.
А щас...Эх, не то это, не то.
fey (09 February 2017 - 09:59) писал:Эх. Вот еще при Царе Бархандере, когда Токсины Горели, вот тогда реально слоумо так слоумо было. Была пошаговость.
А щас...Эх, не то это, не то.
И что б по прибытию Моргана Джеймса половина станции по шкафчикам пряталась.
К прибытию Жемса моргана половина станции не прячется по шкафчикам.
Они просто космированы.
Единственное, что работает на стороне клиента (имеется в виду то, что мы можем активно трогать) - это джаваскрипт и skin скрипты (хотя они тоже на js)