Напишу универсальную пасту для этого платинового вопроса. Ошибусь - правьте.
В основе обработки ССочки лежит МастерКонтроллер. Это механизм, циклично раз за разом обрабатывающий все внутренности игры, имеющие немгновенные, во времени взаимосвязанные действия. Даже горелка газовая обрабатывается им.
Цикл обработки идет, очевидно, сразу после предыдущего. Машина хоста, все так же очевидно, имеет примерно одинаковую производительность во времени. Так, теоретически, "быстродействие" игры напрямую зависит от нагрузки на эти циклы.
Всякая операция с машиной (итерация) занимает очень малое, но все же значимое время. Но как капли составляют лужу, множество итераций создают длительную паузу. Так, большое количество обработки в этом цикле создает продолжительное время его обработки, а значит и следующий цикл произойдет позже.
Продолжительное время между циклами обработки и есть т.н. "лагач".
По моему личному мнению, повысить быстродействие в игре можно двумя путями: - Улучшить серверный код бъенда (что не в наших силах). - Рефакторинг (упрощение) программного кода отдельного билда, для снижения нагрузки на каждый цикл. Ведь многие фичи в СС написаны по принципу снежного кома: "Я напишу эту фичу неэффективно, но она одна же не может создать большого лагача!", но вместе эти фичи и делают лаг.
Напишу универсальную пасту для этого платинового вопроса. Ошибусь - правьте.
В основе обработки ССочки лежит МастерКонтроллер. Это механизм, циклично раз за разом обрабатывающий все внутренности игры, имеющие немгновенные, во времени взаимосвязанные действия. Даже горелка газовая обрабатывается им.
Цикл обработки идет, очевидно, сразу после предыдущего. Машина хоста, все так же очевидно, имеет примерно одинаковую производительность во времени. Так, теоретически, "быстродействие" игры напрямую зависит от нагрузки на эти циклы.
Всякая операция с машиной (итерация) занимает очень малое, но все же значимое время. Но как капли составляют лужу, множество итераций создают длительную паузу. Так, большое количество обработки в этом цикле создает продолжительное время его обработки, а значит и следующий цикл произойдет позже.
Продолжительное время между циклами обработки и есть т.н. "лагач".
По моему личному мнению, повысить быстродействие в игре можно двумя путями: - Улучшить серверный код бъенда (что не в наших силах). - Рефакторинг (упрощение) программного кода отдельного билда, для снижения нагрузки на каждый цикл. Ведь многие фичи в СС написаны по принципу снежного кома: "Я напишу эту фичу неэффективно, но она одна же не может создать большого лагача!", но вместе эти фичи и делают лаг.
Это выходит, что бульеновые парни разработали такую кривую архитектуру, что клиентский FPS зависим от серверных плясок? Печально, конечно.
Странно, но на Win XP когда играешь местами FPS то взлетает (выше стандарта), то падает. Хотя такого нет на Win 7... но ладно, я понял.
Ты наверное не очень понимаешь что такое фпс. Фпс это количество кадров в секунду. То, что ты наблюдаешь это не фпс, а банальные лаги. Как если бы ты играл в контру, а другие дергались. Тут тоже самое, только сервер начинает медленней работать. Соответсвенно однодвижение занимаен полсекунды, потом секунду. Самая близкая аналогия - задержка в EVE Online. Там во время баталий на 2к игроков и около того сервер начинает замедлять ход игры, в результате выстрел занимает время не 5 секунд, а все 50. Тут тоже самое. Пока сервер пройдет по всем событиям, обработает их, пройдет время. Вот и получаем пошаговость.
0
Если вам понравилась моя публикация, комменатрий, хоитет сказать спасибо, можете сделать это здесь, поставив плюсик или оставить свой отзыв.
Ну вот как раз на примере контры - как бы не лагало, а у меня FPS 300+. Сетевая часть отделена от рендеринга. А здесь у нас FPS 10. Я вот о чем.
Ты случаем с конфигом прямого ФПСа билда не путаешь? Его можно настроить хоть в момент самой игры через дебаг. На консервированных хабах сборок он по дефолту стоит низкий.
Самая близкая аналогия - задержка в EVE Online. Там во время баталий на 2к игроков и около того сервер начинает замедлять ход игры, в результате выстрел занимает время не 5 секунд, а все 50.
Я бы взглянул на такое слоумо.
0
Знания не могут принадлежать отдельному человеку, даже тысячам людей.
Единственное, что работает на стороне клиента (имеется в виду то, что мы можем активно трогать) - это джаваскрипт и skin скрипты (хотя они тоже на js)
0
Цитата
Ролевой отыгрыш РП. Стремная хуйня, извращенная самими ярыми почитателями и профессианальными™ ролевиками. Прекрасное и ненавязчивое явление превратили с стремное и ужасное нечто, которое стало способно пугать своими стонами любое нормальное божие создание. Способ излечиться очень прост -- всеочищающий загрифон, который мигом заставит рассосаться всю псевдо-ралиплейную гниль.