11:56
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Тройка лучших форумчан проекта:
Последние новости сайта:
- proplay Ответов на форуме: 3418
- Fatso Ответов на форуме: 2628
- Sonny Ответов на форуме: 2528
Зарегистрированный участник получает ряд привилегий, стань зарегистрированным и участвуй в развитии ресурса. Будь значимым, успей занять своё место. Регистрация.
  • Страница 1 из 1
  • 1
Модератор форума: Mrdoker  
Убивая однотипные вопросы по поводу производительности игры
xxKDExxДата: Понедельник, 12.03.2012, 20:46 | Сообщение # 1
Группа: Продавец
Сообщений: 751
Награды: 12
Мой Престиж:
Статус:
Сервер: Obeya,Patriot
Клан: Wild Spirit
Неисчерпаемо количество постов на тему "Тормозит АПБ". Достаточно ввести сея фразу в гугл и он вывалит вам тонну аналогичных ссылок на "ответы майл.ру" и фан сайты APB.Так почему же игра тормозит\лагает\виснет?

Движок АПБ далеко не новый и отнюдь не монолитный, изначально игра создавалась на Unreal Engine 2.5 (возможно уже модифицированном со второй версии до 2.5 в процессе разработки),а после игру опять вкатили на новую версию (с нуля ее никто не переписывал, просто были взяты некоторые наработки от нового движка и интегрированы в старую версию).
По сему можно считать,что это "проапгрейженый" 2.5. А причем же тут тормоза спросит кто-то,ведь у меня же новая видюха,процессор,много оперативки и они все поддерживают...Нет не все.
Новые видеокарты аппаратно не поддерживают рендеринг некоторых эффектов (дым например). Эффекты частиц в апб, так и переехали в новую веху обкромсаного UE 3.0 потому они и тормозят.
Современные видеокарты (начиная с видеокарт полноценно поддерживающих шейдеры 3.0 (6ххх джифорс и х1ххх радеон) примерно с середины своего поколения, с этими инструкциями расстались, по этому такие игры как Painkiller, Most Wanted и конечно же APB, будут проваливать фпс в дыму до неприемлемых 20и и ниже, хоть поставьте 3 топовых видеокарты аля ПЕЧ580, тормозить все равно будет, просто потому, что обрабатывать это старье будет драйвер.

"Ок" опять скажет кто-то. "У меня всегда 60фпс но они бесконца резко падают до 30-20 или игра фризит" (подвисает\проглатывает кадры\идет рывками). - Процессор\память (как и связка память+процессор).
Картинка может вызывать дискомфорт, просто потому, что память на компьютере установлена медленная, либо ее мало, либо процессор слишком слаб и не успевает обрабатывать поступающие данные (в итоге и видеокарта простаивает).
Абсолютно ошибочно мнение "чем больше памяти - тем лучше" - максимальный объем который может понадобиться домашнему компу это 6-8 гигабайт.
Ставить больше просто нет смысла, ни одна игра\утечка памяти в системе, никогда не используют ее всю,если и будет утекать "сталкер народная солянка",то утекать она будет в файловый кеш (в подкачку) и в итоге система просто захлопнет процесс. Сама АПБ "ест" от силы 2.5гб со всеми утечками, остальное - файловый кеш, игра постоянно грузит мелкий хлам как-то: кастомизация (шмотки бегающих вокруг вас, размалевку их тачек и т.п.). Весь этот хлам хранится в папке AssetCache (Х:\apb reloaded\APBGame\AssetCache) в последствии этот хлам частично подгружается в оперативную память где и полоскается на протяжении игры (по этому удалить его во время игры нельзя т.к. файлы эти заняты процессом игры (зарезервированы).

Решить проблему фризов и пр. подвисаний можно путем установки более быстрого жетского диска (хватит одного на 7200 оборотов с 64мб кешем серии WD Caviar Black если на нем будет лежать только игра, либо серии Раптор на 10000 оборотов, либо SSD).
"Почему у моего соседа такой же диск и не лагает, а у меня лагает?" - Возможно у соседа он ухоженный, плюс, у него больше оперативной памяти. Да да,выше я уже говорил что много памяти не нужно, но суть в том,что больший объем оперативной памяти, можно распределить под дисковый кеш, т.е. помимо того что игра рандомно толкает в память наиболее часто используемые ей файлы, сама система будет эти же файлы кешировать в выделенной для этого области оперативки: своеобразный дабл буст.
Файловый кеш используется чаще в серверах, чтобы не умирали жесткие диски и задержка доступа к данным (отклик на чтение-запись) была сведена к минимуму. По этому установка 24гб на домашний ПК тупая трата денег.
Многие используют домашний ПК для рендеринга видео\3д. Здесь тоже нужно много оперативной памяти,потому что при рендеринге, кадры будущего видеоматериала, помещаются в память в максимальном качестве (абсолютно без сжатия,либо с минимальным сжатием без потери качетсва), одна минута такого видео в зависимости от разрешения и частоты дискретизации (битрейта),может занимать ХХгигабайт (это не считая звука).

Варианты как устранить тормоза и фризы при наличии "лишней" памяти (например если у вас 6-8гб оперативки):

1.Можно создать RAM диск в памяти и поместить туда (хард-линк) злополучную папку AssetCache, для этого есть специальный софт который можно найти в гугле,одна из таких программ так и называется - RAMDisk.

2.Правильно установить подкачку. Если не лень этим заниматься, а это еще пригодится даже если памяти через чур много, она рано или поздно заканчивается, либо работает медленно просто потому,что к ней происходят частые обращения. Улучшить ситуацию можно путем установки "правильного" свопа. Для этого необходимо собрать все разделы диска обратно, отрезать в начале раздел равный полутора объемам установленной оперативной памяти (2гб ОЗУ = 3.5гб раздел, 4гб ОЗУ = 7гб раздел и т.д.) и отформатировать его в файловой системе FAT32. Почему именно фат? Данная ФС практически не фрагментируется, и раздел под этой ФС будет работать гораздо быстрее. Почему именно в полтора раза больше, чем установлено физ. памяти? - Потому, что, такой объем позволяет потсоянно выгружать всю используемую память в подкачку и в последствии загружать эти данные обратно, без существенных задержек, не меняя размер подкачки на лету (что тоже вызывает существенные задержки). Одно уточнение - размер мин. и макс. размера подкачки должен быть одинаковым (фиксированным). На этом же диске не должно стоять ОС т.к. сама ОС будет обращаться к диску + программы и сама же ОС будут обращаться к подкачке,в итоге диск тупо не потянет такую нагрузку и выхлопа от всей этой затеи не будет, просто потому, что несмотря на "сата 300мб/с", сами харды такую скорость при чтении/записи на/с пластины не поддерживают.Реальная скорость колеблется в районе 60-100мб/с (сравните с древней оперативкой ддр 2 6400мб/с и новой вплоть до 30000мб/с).Вот оно! Вот оно узкое горлышко моей системы! Дииииск!!1. :D

Многие ставят "конфиги убивающие графику" - тоже полный бред, убивать там нечего, единственное что делается,это убиваются тени, тени в АПБ считает процессор, если процессор слаб, то ему не остается времени на формирование пакетов с данными для отправки на сервер, отправки пакетов другим клиентам (Р2Р), рендеринг геометрии (прозрачные стены(нулевой LOD)). Да, прозрачные стены "растут" тоже отсюда. Тут ничего оптимизировать нельзя,выход один - купить проц с кол-вом ядер больше 2-х, а лучше с четырьмя.
Отсюда и лаги (телепортирующиеся игроки, не регистрирующиеся попадания (buffer overflow - данные стоят)). Суть в том,что сервера АПб изначально были не расчитаны на такое кол-во народу, потому админы бесконца меняют там хомяков, которые пытаются выжать лишние пару фпс на серверной стороне (пляшут с бубном короче).Так вот,помимо того, что сервер не выдает играбельные 30фпс и "недосылает" вам те самые пакеты (packet loss - с учетом расстояния сервер обычно шлет два одинаковых пакета,т.к. один может потеряться или застрять в одном из маршрутизаторов и в итоге клиент будет простаивать в ожидании следующего пакета, а когда сервер не справляется с нагрузкой то он шлет как раз один пакет каждому клиенту в следствии чего вас убивают с трех пуль\кто-то телепортруется и происходят тому подобные шалости), ваш процессор до кучи не справляется с тенями,физикой и пре-рендерингом, и ему тупо не остается "процессорного времени" (тактов) для обработки пакетов на отправку серверу (попал 10 пуль,но не убил - из этой оперы). По этой причине хотя бы на стороне клиента все должно быть в ажуре и процессор должен быть достаточно мощным.В принципе, нЕмощный можно разогнать, или убить тени конфигом, тут кто во что горазд. Часть нагрузки кстати сваливается на каждого клиента (своеобразный кластер - привет системе Р2Р,т.е. каждый клиент (игрок) "помогает" серверу обрабатывать данные и отсылать их другим игрокам).

Выпадающие текстуры, артефакты, светящиеся словно марсиане игроки, зеркальные автомобили - все это следствие движка, который был собран косолапыми девелоперами. Это не ваша видеокарта и не ваши драйверы, это стремный движок. От патча к патчу переодичность проявления проблемы меняется в большую или меньшую сторону, но полностью устранить ее можно, думаю только основательно перелопатив движок (пересобрать). Про "оут оф мемори" и "генерал протекш фаулт" особо говорить не будут.Эти проблемы связаны с вшитым в движок "античитом" (да на уровне многопользовательских игр в движке присутствуют надстройки позволяющие определять читы на низком уровне,но по сути это просто статистика).
В общем GPF краш,это следствие критической необрабатываемой ошибки,вызванной багтрапом при неверной функции либо панкбастера,либо движкового "античита".Т.е. попросту дернулись вы на 180 градусов по неверным координатам - готов краш,тыкнули три клавиши сразу в определенной ситуации - краш, прилетел убитый читами пакет (битые данные не сходящиеся в контрольной сумме) - готов краш.
Оут оф мемори достает многих.Происходит по вине нехватки памяти (как видеокарте,так и проссору). 64-разрядная ОС решает проблему,но не полностью.Все эти рпоблемы опять же растут из кривого движка.Игра не расчитана на х64, просто потому что когда она начинала создаваться, х64 как такового не было, а рекомендованные х64 в сис. требованиях,просто повод свалить все проблемы на пользователя ("зачем нам латать движек,когда он юзер может поставить еще Х гигабайт памяти и 64 систему и пусть себе память течет.а там глядишь он не будет играть 10 часов к ряду и памяти ему хватит до следующего краша").

Здесь стоит упомянуть твик для 32-разрядных ОС /userva=xxxx /3GB.Проблема заключается в том, что системы на базе архитектуры х86 не могут работать с блоком пати бОльшим чем 2ГБ. Для всего остального существует РАЕ (расширение физических адресов), если процессор поддерживает РАЕ, то данный режим активируется ОС по умолчанию, но вся соль в том,что не смотря на "у меня ХР видит 3.5 гигабайт оперативки мне их за глаза" - выделить АПБ она больше 2гб не может, по этому когда эти 2гб заканчиваются, игра вылетает в "оут оф мемори". Так вот по поводу твика - это обман, система просто скажет сама себе "ок, нам дали больше ресурсов для использования виртуальной памяти - "Слышь процессор на ка, хавай"...И тут процессор этого сделать не может, сама ОС может подготовить больше данных для процессора, но он на это не расчитан, ему нужна реальная 64-разрядная архитектура, чтобы переварить. В АПБ (да и в других играх) такой твик чреват - вылетами в ту же оут оф мемори (видеодрайвер тоже может падать), выпадением текстур, артефактами. При этом сама игра будет использовать МЕНЬШЕ памяти, чем до применения твика. Данный твик должен поддерживаться самой программой/игрой (и он поддерживается таким софтом как Auto CAD/Sony Vegas/Photoshop и аналогичными монструозными прогами). Решение х64? Отнюдь и увы, сама игра как я говорил, на них не расчитана, в 64 она потребляет куда больше памяти, причем это не зависит от "лучшей графики и больше загружено в память, и лагов нет", нет, от этого не зависит. лучше от х64 в АПБ ничего не становится, просто ваш процессор может переварить больший кусок за раз и это компенсирует некоторые лаги.

Плохо упакованный "худ" (текстуры интерфейса) вызывает сегментацию памяти, т.е. вы играете себе клацаете ТАБ посмотреть очки, или лезете в сундук сменить оружие\машину\шмотку....А в этот момент происходит что? Правильно - берется игровой архив и помещается в память, летели там себе данные летели,и тут на тебе хх мегабайт вклиниваются в эту ровную колею и начинают распаковываться,все это прекрасно заметно по паузе которая возникает во время доступа к шкафу.Как временное решение можно просто посоветовать не клацать бесконца шкафом меняя оружие (никто не заставляет не менять оружие вообще, просто не нужно его менять каждые пять минут играя 5 часов без перезапуска игры),а так же автомобили в парковочном автомате.Конечно же не скакать по копиям.Когда вы меняете копию района весь этот хлам кастомизации других игроков,он ведь никуда не девается, в итоге это верный путь к "оут оф мемори".

Можно было бы улучшить все это дело путем полной распаковки данных (вес игры бы увеличился гигов до 8-10и), при этом часть проблем в виде лагов, и оут оф мемори отпала бы сама собой,но это уже решать садистам из G1.По хорошему клиент игры нужно было пересобрать еще на ОБТ.

Возможно есть способ распаковать все текстуры в отдельный каталог и игра его подберет (распаковать - то не проблема, проблема в том что неизвестно,подберет игра папку вместо упаковки).В крайзисе такой фокус позволял убрать все фризы и пр. неприятности и комфортно играть даже с видеокартой на 256мб + 2гб оперативной памяти. патчи навряд ли что-то решат,разве что они исправят свои предыдущие огрехи, но кардинально что либо изменится,только если они пересоберут клиент, патчами это НЕ ЛЕЧИТСЯ.

Из всего выше сказанного получается, что:
АПБ нужен быстрый жесткий диск, или правильно оптимизированный жесткий диск. Так же пойдет ReadyBoost (флешка для кеширования файлов на ней,но не через тормозной USB 2.0, а 3.0 или мини-юсб диск через E-Sata/FireWire (IEEE1394)), либо RAM-дмск.
Процессор для комфортной игры должен быть минимум 2 ядра с частотой выше 3.3ГГц ( Core2Due e8xxx вполне подойдет,например Е8600 с частотой 3.6ГГц и кешем 6мб (данный процессор ровно половина старшей серии Core2Quad Q9xxx) и он будет ЛУЧШЕ чем тормозной 4-х ядерный Core2Quad q6600 или трехъядерный Атлон с частотой ниже 3ГГц,или урезанный Phenom x3/x4)
Видеокарту можно использовать практически любую из MIDLE сегмента (нвидиа GTS250\радеон HD5670\9600GT\HD3850). В общем любую затычку для слота, главное что конкретно в АПБ 512мб видеопамяти хватит вполне для игры на максимальных настройках в разрешении 1600 (в 1920х1ххх нужно мегабайт 600, но эти сто мегабайт будут кешированы в оперативной памяти и в принципе особого падения фпс не вызовет).
Ну и 4Гб оперативки (лучше 6 если ЖД совсем мёртвый), 2 гигабайта ТОЧНО недостаточно, 3ГБ не в полне достаточно. 4гб вполне хватит если диск не будет лагать.

Надеюсь на большинство вопросов я ответил. Конечно найдутся "умники", накидающие сюда камней и т.п. "жалкие, ничтожные личности" как говорил Паниковский из романа Ильи Ильфа и Евгения Петрова "Золотой телёнок". Ну да мне это параллельно :) Кому нужно, тот почерпнет для себя что-то нужное, а остальное отсеет за ненадобностью.
Проверял на сервере (у меня есть дома сервер,дыа), летает как торпеда, с затычкой в роли гт240, но играть там я естественно не буду, на нем висит сеть,а свой чахлый х2 апгрейдить не собираюсь, боюсь заиграться потом,пусть лучше они фиксят свои косяки.

Написанное не претендует на панацею от всех болезней и написано ламерским языком для легкого усвоения пользователями далекими от дебага, багтрапа, компиляции сорцов и стучания в бубен под песни судо, по сему - все "спецы и хацкеры" со своими замечаниями, могут чесать поддосовым лесом, и собирать глючные подвыневые грибы.

Это не "стибрено" с другого портала и переведено,а написано здесь,мною и сейчас (смотреть временной штамп) ;)








Сообщение отредактировал xxKDExx - Вторник, 13.03.2012, 21:28
М  
NemetzДата: Понедельник, 12.03.2012, 21:22 | Сообщение # 2
Группа: Помощник Модератора
Сообщений: 300
Награды: 2
Мой Престиж:
Статус:
Сервер: Obeya
Клан: WildSkill
Молодец. + тебе от меня за статью.
Так держать! bb



М  
JustAlexДата: Вторник, 13.03.2012, 00:42 | Сообщение # 3
Группа: Прохожий
Сообщений: 258
Награды: 1
Мой Престиж:
Статус:
Сервер: Patriot
xxKDExx расписал самым понятным языком. Теперь я точно уверен, что нужно менять процессор.


М  
BlakSmokeДата: Вторник, 13.03.2012, 00:55 | Сообщение # 4
Группа: Продавец
Сообщений: 764
Награды: 7
Мой Престиж:
Статус:
Сервер: OBEYA
Клан: PANDAKAMANDA
и вы эт читали?да вы задроты))




Геродот:«Во время мира сыновья хоронят отцов, во время войны отцы хоронят сыновей»
М  
StaliWarusДата: Вторник, 13.03.2012, 01:15 | Сообщение # 5
Группа: Преступники
Сообщений: 51
Награды: 1
Мой Престиж:
Статус:
Сервер: Obeya
Клан: WildSkill
отличная статья
20 сим



М  
xxKDExxДата: Вторник, 13.03.2012, 01:42 | Сообщение # 6
Группа: Продавец
Сообщений: 751
Награды: 12
Мой Престиж:
Статус:
Сервер: Obeya,Patriot
Клан: Wild Spirit
Да чуток расширить (дополнить) и отформатировать правильно,чтоб читабельнее было,и будет норм. Можно например добавить про такой неправильный твик как /userva=xxxx /3GB и почему х64 конкретно апб не подходит.





М  
RamirkДата: Вторник, 13.03.2012, 12:43 | Сообщение # 7
Группа: Полиция
Сообщений: 646
Награды: 1
Мой Престиж:
Статус:
однозначно большой плюс good теперь то я точно знаю в чём проблема


М  
xxKDExxДата: Вторник, 13.03.2012, 21:29 | Сообщение # 8
Группа: Продавец
Сообщений: 751
Награды: 12
Мой Престиж:
Статус:
Сервер: Obeya,Patriot
Клан: Wild Spirit
Поправил и чуток дополнил. Редактор конечно аховый,был бы полноценный TinyMCE l





М  
CrazyBulletДата: Понедельник, 16.04.2012, 19:15 | Сообщение # 9
Группа: Преступники
Сообщений: 1
Награды: 0
Мой Престиж:
Статус:
Мистер KDE хотелось бы больше узнать о RAMDisk а именно настройке под АПБ Инструкцию не напишешь???


М  
saske1301Дата: Вторник, 17.04.2012, 00:25 | Сообщение # 10
Группа: Полиция
Сообщений: 257
Награды: 1
Мой Престиж:
Статус:
Клан: LevelUp
CrazyBullet, http://apb-online.org/forum/15-6689-1




М  
  • Страница 1 из 1
  • 1
Поиск:
Чтобы задать вопрос следует < Зарегистрироваться >



Хостинг от uCoz