Вы смеетесь, а полноценная поддержка многозадачности в играх довольно нетривиальная задача. Можно выделить в отдельные потоки рендерер (если уметь в многопоточный рендеринг), загрузку данных, физику, ИИ, что-то еще, но все равно большую часть работы будет выполнять одно ядро. На самом деле это не проблема, т.к. игры обычно GPU bound - тормозят из-за GPU, тут хоть 16 ядер загрузи на 100%, быстрее работать не будет. Почему-то об этом мало кто задумывается :)
p.s> работаю над портированием и оптимизацией AAA игр, в которые вы все играете.
привет :) много чем занимаюсь, оптимизацией в том числе. Могу ответить на пару вопросов, если есть :)
а подскажи в чем проблема вот поставил вчера COD Black Ops 3 компьютер I3 2100 ,6 gb ram, gtx 960, играешь в 60 фпс, потом он же не ни с того ни с сего падает до 30 и играть вообще не комфортно, разработчик намудрил с оптимизацией?
30 фпс некомортно для тебя? :) Если драйверы последние, то походу проблема в игре, жди патчей
И мы решили что 30 фпс добавят нашей игре кинематографичности (с)
Перевод:
Нам было впадлу, замарочится и всё хорошо оптимизировать, под старое железо новых консолей.
Либо 30 фпс, либо еще более мыльный графон, что ты выберешь? Если все уже оптимизировано, просто физически некуда
Всегда есть куда оптимизировать. Предела в этом нет. В теории можно какое-нибудь БДО запустить на макс настройках графики с 60 фпс и 4к на компьютере 6ти-8ми летней давности, если её получше оптимизировать.
у консолях другая история
там телики в целом с другими технологиями и сглаживают 30 кадров так что выглядят на глаз как 60 на пк (а дорогие телики и на 100)
Комфортный фпс начинается после 45 и ты вроде как должен это знать если занимаешься оптимизацией игр :D
Ну да. Тут со 120 фпс у тебя счёт 25 на 2 и ты идеально стреляешь.
А тут 30 фпс и ты никак не можешь понять почему же у тебя счёт 2 на 25...
на самом деле если не заниматься киберспортом то её и правда не особо заметно
ибо консоли это телики а если телек нормальный то он глаживает пробелы между кадрами и получается что 30 фпс выглядят за 60 (а то и на 100)
но это "нечестные" фпс и преимущества в реакции не дают
процессор не греется, а видеокарта gtx 960 хоть и разогнана до предела, но выше 58 градусов не поднимается, мне кажется исключен троттлинг
ответь и мне, если сможешь, AMD A10-6700 с дуал графикой R5 235, видюха RADEON HD 8670D, 8гб озу и x64 восьмая винда,
глючит большая часть поставленных игр, где то ссылается игра на видеопамять (то меньше показывает, то больше чем должно), где то на недостачу ядер (комп теряет 2 ядра). В чем вообще дело? Священника еще рано звать?
1) процессор "модульный" там 2 модуля и 4 потока, потому и "теряет" 2 ядра
2) АПУ как и любое видеоядро берет видеопамять из твоих 8 гигов оперативки (если у тебя еще и 1ой планкой или 2-мя, но без двухканального режима то я тебя "поздравляю"), выстави чтобы приложение работало на дискретной карточке и должно будет быть ОК
а вообще брать амд ноуты это параша ибо они очень глючные и греются
А если максимально обезличить всю инфу? Думал вам больше по технической части пост предложить сделать, а потом вспомнил что для этого есть хабр.
по технической части есть много чего интересного рассказать. может, как-нибудь напишу и согласую статью
Привет. Не имею представления об особенностях портирования и подгона напильником игр. Но в универе нас сейчас грузят задачами связанными именно с распараллеливанием. Из языков в основном Phyton, но я пишу на Си\ Си++ сидя под линуксом.
А теперь сам вопрос, в Си распараллеливание можно устроить используя либо pthread, либо используя библиотеку OpenMP - которая прекрасно делит на нити ,например циклы
#pragma omp parallel for , и все готово. Или есть какие то отдельные подводные камни?
Вопрос в том, что мешает грамотно прикрутить в код хотя бы тот же OpenMP? Есть ли какие то ограничения на вывод потоков в форму, или что то похожее(опыт в Дельфе).
Из игр, картошка не в счет, у них в офисе одни "дезигнеры" остались. Они много чего обещали, но пока больше обещают, чем делают.
Как ты себе представляешь OpenMP в играх? Что там можно распараллелить? Мешает отсутствие квалификации
Объясни тогда хоть что то)) А то с твоими словами там все в один поток можно завернуть, и крутись оно все вечность. Ну или ссылку дай на ресурс для чтива.
OpenMP подходит для задач, которые можно распараллелить. Например, перекодирование аудио/видео, математические расчеты и т.д. Во время игры таких задач просто нет. А те, что есть (физика, например) либо делают на GPU, либо делают сами в отдельном потоке.
Грубо говоря, у тебя есть цикл, который что-то делает с объектами, например, вызывает какой-то неконстантный метод. Допустим, ты делаешь так, что он запускается в 8 потоков. Далее у тебя идет куча кода, который эти объекты используют, и пока цикл не закончится, ты эти объекты использовать не сможешь, данные будут неконсистентны. Поэтому основной поток будет блокирован, пока цикл не завершиться и никакого эффекта не будет, а накладные расходы за многопоточность будут.
Многопоточность - это сложная задача, пока не столкнешься вплотную, не поймешь. Не знаю, как еще подробнее объяснить. Сложно объяснять простые для меня вещи, плохой из меня препод :)
Уже попонятнее, может как-нибудь соберешься и оформишь отдельным постом, тема интересная ,информации мало.
А хабр уже давно не торт, там только юнити и как прикрутить к нему 100500 свистелок.
Привет,ответь пожалуйста на вопрос:
почему айон(онлайн ммо) так сильно глючит даже на 4 ядерном amd phenom ii x4 965be (4 ядра 3.4ггц,6мб кеш третьего уровня).
Видео amd radeob sapphire 7770 ghz edition (1 гиг ,128 бит шина).4 гига оперативки,занято чуть меньше трех
выдает 40-60 фпс но очень сильно просаживается при
1) поворотах(до 30 фпс в некоторых местах)
2) при прогрузке лок(ну тут нагрузка на проц естественно)
3) при появлении противника 9загрузка его текстурок жутко понижает фпс с почти фризом)
НО(!!!)
на стримах с европпы у кого даже i-5(не i-7),имеет 120 фпс при стриминге,
но в тоже время,на японии стример с 8-ми ядерными амд FX имел теже фпс,что у моего амд 4-ядерного камня.
Почему?неужели амд такие уж камни?
Спасибо :3
Понимаешь, хоть платформа и одна (x86-64), но трудно сказать как устроены процессоры у амд, относительно интеловвских. Поясню, почти все компиляторы, разработаны под интеловские стандарты, ведь интел разработали саму архитектуру x86. Да и от процессора к процессору меняется наборы команд, регситров(? ну всяк бывет).
Почитай про работу компилятора, там мало-мало но дают объяснение.
https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80
Как ветеран Айона могу тебе с уверенностью сказать: Игра очень херово оптимизированна! Даже с SSD диском умудряется подлагивать при прогрузке противников (пусть не так сильно но фриз на 0.001 секунду всё же остаётся) На осадах глючит даже с ним, но в сотни раз меньше. НО всё равно глючит. Железо у меня превышает рек. требования раза в 4 если не больше. Тут косяки разрабов, которые занимались файловой системой. Короче не лечится это. Хотя покупка SSD просто обязательна для этой игры. (естественно надо игру установить именно на SSD)
Edit: Если ты играешь на легенде, то учти что у них ещё и сервак (сами шкафы) - говно. Лагает игра на порядок выше чем на евроофе например.
легенда.не в этом дело.
камни на амд,даже 8 ядерные в 2 раза минимум слабее камней интел,у которых 4 ядра,на интел все летает,на 8 ядерном FX-е 60 фпс с пролагами
потому что FX не 8ми ядерные
и ядра там кукурузные
даже хуже чем у интел 1го поколения (хотя в синтетике равны и 8350 в разгоне даже опережает интел, но в играх FX сосут даже таким старым камням)
1) это старый камень и да он слабый и намного слабее современных ай5 (не 1го поколения)
2) 2 и 3 траблы больше похожи на задержку из за медленного hdd
но если на FX(он не 8ми ядерный, не верь вранью) те же фпс что и у тебя, то тут ничего не поможет
Я не могу ничего сказать про AMD, не работал с ними. Железо - это лишь одна сторона медали, надо уметь его правильно использовать
Как в компанию попал? Что при приеме хотели от кандидата?
Вот, ровно пара, как заказывали.
Послал резюме, прошел несколько собеседований, все как обычно :) вакансии всегда открыты, кстати - http://hh.ru/vacancy/14324263, там указаны все требования.
Что спрашивают на собеседовании я сказать не могу, но есть отличная статья от небезызвестного Бориса Баткина - http://blog.gamedeff.com/?p=64, рекомендую ознакомиться.
Скажи лучше в чём прикол портирования? Просто меняют коды клавиш от джойстика на клавиатурные?
Я тебя спрашиваю какие изменения в целом претерпевает игра при портировании а ты мне объясняешь что такое портирование. Хотя забей, не объясняй, пахнет пиздаболом.
Что тебе объяснять, если портирование для тебя это смена биндингов с клавиатуры на джойстик? Изменений много на всех уровнях: портирование кода, добавление специфичных фич для платформы, перерисовка/добавление арта, оптимизация и много всего другого.
Скажи лучше в чём прикол портирования? - я должен был твои мысли прочитать, чтобы понять, что ты хочешь? Задавай нормальные вопросы, получишь четкие ответы
"В чём прикол портирования" и далее - пояснение вопроса " Просто меняют коды клавиш от джойстика на клавиатурные" очевидно, что мне интересно более чем простое определение понятия "портирование", я хотел узнать что изменяется в приложении я знаю что это сложный процесс и хотелось бы узнать основные сложности.
Играл на сервере майна с кучей модов года четыре назад, его уже и нет давно, но помню точно, что 110 игроков (лимит был в 100, но он был так популярен, что эти 10, это випы вне очереди) играли почти без лагов, лаги были не редкостью, но они долго не длились и были не сильными.
Хостил сервер на ноуте (i5-3230m) с IC2 и пару-тройку мелких модов, 5 человек - ничего не лагало)
Из-за игроков лагает не так сильно, как от мобов. Другое дело что игроки заставляют жить гораздо больше мобов. Может вы играли не на максимальной сложности и без жителей? Потому что 3 человека с жителями полностью портят игру
Да вроде ставил сложность среднюю (2 в настройке уровня сложности), спавн нпс (в деревнях) и мобов (в ночное время) по умолчанию был включен.
Сервер работает в один поток? Серьезно? *FACEPALM*
Впрочем, неудивительно, учитывая, что его писали любители
Половина пиздеж. Все рассчеты да, в одном потоке (20 раз в секунду апдейт блоков и сущностей). А вот рендер, звук, обмен пакетами с сервером, и емнип загрузка/сохранение мира в разных потоках.
О, так вот почему у меня ведьмак на ультрах идет (40-60 фпс) на моем шестиядерном x1045t, а WoT что на высоком что на минимальном с пережатыми текстурами всеравно еле 25 кадров стабильно держит... хм... хотя постой, почему так?
потому что NVIDIA хорошо поработала над Ведьмаком, а что под капотом у танков я не в курсе
Запили пост с общим знакомством что, как, и почему, а то экспертов по играм все больше и больше... А они даже про LODы не знают.
Скажи, вот была которая только вышла и там была такая ситуевина что пямять на видеократе не разгружалась и просто забивала ее и вот ты играешь память потихонечку забивается и будешь играть пока она полностью не забьется не начнутся лютые фризы в итоге зависание и вылет, можно ли таким образом сжечь видюху?
Как-то много-много лет назад, году так в 2007, когда у меня был Intel Pentium 4 + nVidia Geforce4 MX440 играл я в GTA: San Andreas много часов подряд. Потом игра вылетела и экран из 1024*768 стал 640*480. Пришлось отключить компьютер ненадолго и дать ему остыть. На видеокарте из охлаждения стоял алюминиевый радиатор. 18 кадров/секунду для меня было приличной величиной. Ну а потом, в 2009, я с первых заработанных денег купил ATI Radeon HD 3650 на AGP и тогда уже процессор стал проявлять слабину
Железно не дураки проектировали, при всем желании видеокарту ты не сожжешь, если займешь хоть всю память
Зато можно спровоцировать отвал ГП, но не забитием видеопамяти, а постоянными перегревами после разгона, и желательно - овервольтажа. Хотя, я видел случаи когда чип отваливался даже в сток режиме, но это уже другая история)
CPU тоже грузится вместе с GPU: загрузка текстур, компиляция шейдеров, пересылка данных и пр.. Обычно рендерингом занимается только один поток. Если игра хорошо оптимизирована (т.е.решены более серьезные проблемы перфа), то имеет смысл разнести рендеринг по разным потокам, но это надо уметь
вот только crysis почему что спокойно загружает и 8 ядер
и фпс снижается если отключать ядра
мил человек подскажи как оптимизировать эту балалайку под WoT HP Pavilion dv6-2019er Entertainment, фпс 25-28
Linux послуживший базой для системы Android отлично распределяет вычислительные потоки между ядрами не допуская подобных ситуаций. У самого планшет с 8-ми ядерным чипом от MediaTek - и во всех приложениях прирост производительности по сравнению с 4-х ядерными чипами просто колоссальный.
Что за хуйню я только что прочитал? Если код последовательный, то хоть ты усрись, на >=2 ядрах он быстрее не станет. Сама по себе ОСь любой код магически параллелить не умеет. Код должен быть с высокой степенью параллелизма, это работа программеров и НИКАКОЙ охуенности линукса тут нет и быть не может.
Ну я имел в виду раскидывание всех задач равномерно по ядрам процессора, таким образом - что тот самый последовательный код запустится на ядре на котором до этого нагрузки не было, который не занят процессами системы и другими фоновыми программами.
Еще один диванный который сам нихуя не шарит? @mochbid, Код это инструкции, в процессоре есть предсказатель который анализирует на перед последовательность инструкций. И да ОСЬ может использовать этот функционал. Если по коду идет большой объем ввода-вывода а следом перемножение огромных матриц можно динамически раскинуть это на два ядра а результат сложить в кеш - так и работает параллельные вычисления. Программист тут ни причем, точнее если он явно это не реализовал то это может разрулить операционка.
Ты сначала сам разберись а потом других будешь учить
Замените "ОСь" на "компилятор" и тогда будет в целом верно.
Так что да, вам надо учиться читать, потому что вы не написали ничего противоречащего моему коменту.
При чем тут компилятор? Компилятор лишь переведет человекопонятный код в код машины. Этот кода может выполняться как на 1-ядерном проце так и на 16-ти. Компилятор может сделать оптимизацию и некоторые еще вещи. Но именно параллелизм в данном примере разруливает ОС. Как по твоему в андроид телефонах динамически останавлявается ядра проца? Компилятор что ли останавливает? А по поводу противоречия дак все правильно, покопай в тему специальных линуксов, там нативно реально реализованы вещи которые многие списывают на работу программистов софта
Компилятор и применяет хинты, где возможно - распалаллерит, если программист не позаботился, где невозможно - нет. Он не всесилен, но его развивают.
Ядра имеет возможность пробуждать ОСь, однако интел сейчас например переводит этот контроль на более низкий уровень - проце сам будет решать когда поднять частоту, когда понизить, какие блоки можно вообще отключить.
К чему вы все это пишете? Управление состояниями физических ядер как соотносится с параллелизмом? Размазывание нативно неделимых процессов по логическим юнитам это нихуя не "распараллеливание". Его ни одна ОСь не может. Идите что-нибудь почитайте, вы слишком много разного валите в одну кучу. Извините, не вижу что с вами еще можно обсуждать по этой теме.
Жаль только производительность 8ми ядер на ARM не может сравнится со старым 2х ядерным пентиумом на x86.
Ну вы и загнули
Они не то, что сравнятся, но еще и уделяют старые двухъядерники в плане энергопотребления. Тут стоит учитывать, насколько старые, но по сути, можно брать во внимание технологию процесса, какого размера транзистор, а также размер самого процессора или SoC. Да и учитывая, что скоро будут серверные ARM- системы... Там и без поддержки виртуализации все будет круто, а если появятся базовые технологии для поддержки вышеупомянутой, то 86 вообще сдаст позиции.
Имею планшет на Intel atom z3735f , 1.4ггц , 4 ядра. 2 гига оперативки.
Стоит виндовс 10 , ставил виртуалку с андроидом , ануту 37к попугаев !
37 мать его тысяч , с двумя ос на одном процессоре ! В планшете за 5тр !
Я играю во многие пк игры с приемлемой графикой , и НИКАКИХ ферм с донатом.
Производительности хватает ! Отлично работает 3ds max (только ssao во вьюпорте отрубил) , работает фотошоп !
С появлением BayTrail (сейчас уже CherryTrail) , интел с майками наступают на пятки арм кастратам. Имея огромную производительность и отличную систему.
У меня на этом проце есть Prestigio Visconte 3. Не нарадуюсь его производительности, покупал чтобы всегда в кармане было устройство, способное запустить Компас, ибо ноута нет такскать в универ. Приятным бонусом оказалась возможность где угодно поиграть в Halo или HL2 (да, она идет). Единственное - мой планш был взят за 10к, а не за 5, но за 5 есть Prestigio Multipad Visconte Quad, проц тот же, только оперативы лишь 1ГБ. Посердитее немного, я не взял из-за отсутствия подключаемой через разъем клавиатуры (есть комплектация квада с клавой, но она по синему зубу конектится, а мне неохота помимо планша еще и клаву заряжать).
Я и сам заглядываюсь на шестое поколение процессоров интел, но все же не стоит недооценивать арм процессоры. Они разрабатываются меньший период времени, чем x86, да и учитывая энергоэффективность, arm все еще выигрывает. На x86 wakelock режим хреново проработан, честно говоря. Сужу по своему планшетному нетбуку с интел атом
Забудь про нетбуки , у самого был гнусмус. Бейтрейл вытащил атом из ямы дерьма.
Производительность реально на высоте ! (см. BayTrail Gaming) , вот 2 минуса - нагрев до 60с и 3 часа под играми. Но думаю интел потихоньку все исправят.
Пара моих видео.
Крайзис https://www.youtube.com/watch?v=7T-rMg-4bO0
Сталкер тени чб https://www.youtube.com/watch?v=0NAKuR5NqOI
http://cpuboss.com/cpus/Intel-Celeron-N2840-vs-Intel-Atom-Z3... У селерона в турбо режиме графика чуть быстрее , но тепловыделение и потребление не сравнится с атомом.
Круто) Значит я тоже могу в "крузис", хотя Dead Island тупит нещадно). А ждалкер шел даже на древнем атоме, я помню, когда был. Классный проц у AMD был, E-350. Недобук тянул многое на свое время. Сейчас новые интелы догоняют, но по энергоэффективности уже давно обогнали амд)
Загляни в результаты тестов geekbench. Там все процы одинаково тестятся.
Вот некоторые результаты:
Intel core 2 duo (у меня...точную модель не помню. Там 2 ядра по 3.2ггц) : 1600 на ядро 3000 на два
Apple a8 : 1600 на ядро и 2900 на 2.
Exynos 7420: 1400 на ядро и 5000 на все
Intel i5 4210u: 2500 примерно на ядро и 4500 на 2 ядра
Apple a9: 2500 на ядро и 4500 на 2 ядра
Snapdragon 800 : 900 на ядро и 2800 на 4.
На деле, например, в скорости загрузки страниц в интернете я не заметил разницы между snapdragon 800 и core 2 duo моим. Где-то одинаково, где-то снап быстрее был, а где-то Интел.
Так для загрузки страниц и двух ядер достаточно , нам то пиздят о ниибической мощи для игор , которых на андроиде почти нет. (я про нормальные типо gta sa vc 3 , итд) Куда эту производительность то девать ?
Как показала практика , попугаи и экспириенс сильно отличаются.
(как в случае ios на айфоне и Android на любом 8х ядерном смарте)
ps. Страницы на планше в Edge загружаются молниеносно , новенький iphone 6 делает при той же вафле в хроме чуть медленнее , а мой hs zera f и подавно.
Помимо очевидной херни про разделение процессов, о которой тебе написали, есть ещё более очевидная херня в твоем сообщении. Восьмиядерный проц - это маркетинговая фишка. На самом деле там, по сути, два четырехядерных проца. Один с более высокой частотой для энергоемких задач, другой, с более низкой, для элементарных. По сравнению с 4ядерным это даёт бОльшую энергоэффективность, но не даёт никакого прироста производительности.
И производительность реально выше.
Ну и да, ещё есть полноценные 8ядеиники на мобилки....у мтк и хуавей
Нет. В чипе (Mediatek 6592) моего планшета честные 8 ядер. Без разделений Big-Little, типа как у самсунга. Вообще не видел чипов MediaTek выполненных по описанной вами технологии. Так что извините сэр - но вы сами написали херню)
Видимо не стоит с умным видом толкать мысли в области, за которой бросил подробно следить уже года 1,5 как =)
Сморозил херню, бывает =/ Прошу прощения)
Да морозить херню то ладно - норм тема) Но другое дело с умным видом вешать ярлык "херня" на чужое мнение не проверив матчасть - вот не надо так)

