FIFA 10: Никакой вам многоядерности

vilianov (252 пост(а)) 30.06.2009 17:40

Сегодня в Москве состоялась секретная презентация игры FIFA 10. Я ее старый поклонник: играю с 97-го года, а весь 98-й вообще прошел под знаком World Cup 98, потому что там наконец-то появилась поддержка акселератора 3Dfx. Потом была FIFA 99, потом 2000, а потом... я отвалил. Просто потому, что другие игры - гонки, стрелялки и даже квесты - развивались стремительным домкратом. А FIFA словно застыла на месте, и мелкие улучшения не скрывали того факта, что, фактически, я из года в год покупаю одну и ту же игру. Пробовал вернуться к FIFA в 2004-м, но, увы, с тем же результатом.

Так вот сегодня я видел FIFA 10. К сожалению, говорить о ней ничего не могу, потому что дал подписку о неразглашении до 15 июля. Скажу лишь самое важное: там будет лицензионная российская премьер-лига. Ну и - КАЖЕТСЯ - подкрутят русскоязычные комментарии, которые в предыдущих версиях жгли напалмом. Например, вместо объявления положения "вне игры" виртуальный Уткин кричал "гоооол!", а еще комментаторы обожали здороваться в середине второго тайма.

Меня интересовало другое, наболевшее. Правильная игра просто обязана поддерживать многоядерные процессоры, а FIFA в этом ранее замечена не была. И вот, когда презентация закончилась, я увлек в сторонку недавно назначенного продюсера РС-версии Люка Дидда (Luke Didd) и поинтересовался - что там, с десяткой-то? Люк бодро отрапортовал, что новая версия будет работать в 2 (два) раза быстрее старой, и достигнуто это за счет оптимизации работы с памятью и видеокартой. А вот до процессора руки не дошли. В ЕА Sports давно замечают, что в современных компьютерах бывает два ядра, и даже четыре, и работы в направлении использования этой мощи ведутся. Но результаты мы увидим в... FIFA 11.

Честно говоря, после этого разговора мне стало как-то стыдно за наезды на Ritlabs...

Категории: Игры
Метки:

Пожалуйста, обратитесь к странице Уведомление об оптимизации для более подробной информации относительно производительности и оптимизации в программных продуктах компании Intel.

Комментарии (23)

30.06.2009 09:58

Dmitry Oganezov (Intel)
Dmitry Oganezov (Intel)Всего баллов:
25,473
Community Manager
А как расшифровать FIFA ?
30.06.2009 11:50

vilianov
vilianovВсего баллов:
23,625
коричневый пояс
Да, Дмитрий, я тоже к футболу равнодушен :)
Fédération Internationale de Football Association (FIFA).

На всякий случай уточню, что FIFA - самая лучшая серия футбольных симуляторов на свете.
30.06.2009 13:21

Maxym Dmytrychenko (Intel)
Maxym Dmytrychenko (Intel)Всего баллов:
2,105
коричневый пояс
как всетаки мы любим начинать holywars :) - есть еще PES (Pro Evolution Soccer)

FIFA немногое лучше по картинке, но по характеру больше аркадный.
PES интереснее по геймплею

статья же интересная ;)
30.06.2009 13:50

mt2
mt2Всего баллов:
13,459
Зарегистрированный пользователь
Ох, и что мне остается! Пребывать на уже заявленной позиции, что софт даже в такой сверхпередовой и падкой на все нововведения области, как игровая индустрия, безнадежно отстает от прогресса железа :((
Может, не только разработчики прикладного софта (в том числе и игр) виноваты, а не хватает принципиально новых средств разработки и ОС нового поколения? и с языками программирования нехорошо? да и с периферийным железом проблемы?
Но никакого халивара, естественно! :)
30.06.2009 15:37

vilianov
vilianovВсего баллов:
23,625
коричневый пояс
Максим, я PES давненько не пробовал. Надо ска... то есть купить :)

Касаемо же печали коллеги mt2 - мне кажется, что причина в прожорливости пипла :)
Почему попер в свое время 3Dfx? Потому что разница была видна невооруженным глазом. И все резко стали строчить под Glyde. Не нашлось еще парня, который мог бы просто и доступно продемонстрировать в играх пользу четырех ядер. GTA демонстрируют, но, видимо, недостаточно ярко. Надо прямо пункт в меню "Включить многоядерность", и чтобы сразу вываливалась куча мегаопций :)
01.07.2009 00:25

yuryserdyuk
yuryserdyukВсего баллов:
5,180
зеленый пояс
Причина отсутствия многоядерности в играх типа FIFA на обычных PC объясняется, например, здесь - http://ve3d.ign.com/articles/news/41568/EA-Producer-Explains-FIFA-09-PC-Problems.

Суть в том, что очень трудно распараллелить AI (artificial intelligence), который должен работать в реальном времени – “21 players making 1,000 decisions/second”. Тем не менее, версии игры для PS3 – это многоядерные версии: “When we re-wrote the gameplay for FIFA 360/PS3 a couple years ago, we took full advantage of the multiple, multi-core processors (actually 3 essentially dual-core CPU’s on 360, and 6 available Cell processors on PS3)”. Видимо, разница в архитектуре, и, соответственно, характеристиках Cell и обычных процессоров?
01.07.2009 01:07

Dmitry Oganezov (Intel)
Dmitry Oganezov (Intel)Всего баллов:
25,473
Community Manager
Юрий, вам с вашей эрудицией определенно нужно подумать об издании какой-нибудь околокомпьютерной энциклопедии :)

А вообще, данная тема натолкнула меня на одну мысль, заслуживающую отдельного поста.
01.07.2009 02:01

ilnarb
ilnarbВсего баллов:
5,647
коричневый пояс
"В ЕА Sports давно замечают, что в современных компьютерах бывает два ядра, и даже четыре"
честно говоря, улыбнуло, им бы пора замечать, что в современых компьютерах не бывает одноядерных
01.07.2009 02:06

vilianov
vilianovВсего баллов:
23,625
коричневый пояс
Это было сказано с английской улыбкой, но смысл сохранен.
01.07.2009 04:06

yuryserdyuk
yuryserdyukВсего баллов:
5,180
зеленый пояс
>"нужно подумать об издании какой-нибудь околокомпьютерной энциклопедии"
Такая энциклопедия уже есть - называется "Гугл" :-) :
вбиваем ключевые слова "FIFA Soccer multicore" и
на второй странице ссылок находим ссылку, приведенную выше.

>Может, не только разработчики прикладного софта (в том числе и игр) виноваты,
> а не хватает принципиально новых средств разработки и ОС нового поколения?

По-моему, дело здесь значительно проще и одновременно труднее -
проблема распараллеливания произвольной задачи на порядок, а может и на два,
сложнее, чем проблема повышения производительности хардвера
(читай - наращивая количества ядер).
Эффективно распараллелить __произвольную__ задачу, допустим, на 4 ядра,
также сложно, как скажем (не нашел пока лучшей аналогии) повысить частоту работы
процессора с 4 ГГц до 16 ГГц. Если разработчики хардвера обошли эту принципиальную
проблему с помощью наращивания количества ядер, то у программистов обходного пути нет -
нужно брать каждую отдельную задачу и пытаться с ней что-то сделать в смысле параллельности.
Этот путь будет совсем небыстрый и потребует долгой и кропотливой работы.
Но результаты уже есть - как то я уже приводил пример, что программы молекулярной динамики
удалось заставит работать на нескольких тысячах процессоров,
а вот и свежий примерчик подоспел - общеизвестное перемножение матриц:
http://www.cilk.com/multicore-blog/bid/6248/A-Tale-of-Two-Al.....iplication

В указанном блоге есть также забавный "World Multicore Index"
(http://www.cilk.com/multicore-blog/bid/9516/Multicore-Adopti.....s-Universe).
Особо поражает/удручает в нем место России ...

01.07.2009 04:27

mt2
mt2Всего баллов:
13,459
Зарегистрированный пользователь
>Надо прямо пункт в меню "Включить многоядерность", и чтобы сразу вываливалась куча мегаопций :)

Отличная идея. А то покупает рядовой геймер навороченный комп и не может понять, зачем истратил столько денег ;)

>очень трудно распараллелить AI (artificial intelligence), который должен работать в реальном времени – “21 players making 1,000 decisions/second”

С общей точки зрения- легче, чем перемножение матриц: 21 юнит (бот) независимо друг от друга должен принять решение, перебирая за секунду 1,000 вариантов. Ну так каждому боту по потоку ;)

>повысить частоту работы процессора с 4 ГГц до 16 ГГц

Думаю, невозможно по физическим законам ;)
01.07.2009 05:31

yuryserdyuk
yuryserdyukВсего баллов:
5,180
зеленый пояс
>21 юнит (бот) независимо друг от друга должен принять решение,
>перебирая за секунду 1,000 вариантов. Ну так каждому боту по потоку ;)

Э-э, нет - представьте с каким счетом проиграет футбольная команда,
если каждый из ее 11 игроков будет действовать независимо от других :-/ .
Для правильной игры нужны коллективные действия,
т.е., согласования, синхронизация и т.д.
Если бы было иначе, то давно бы уже рассадили всех игроков на отдельные потоки
и грузили бы ядра по-черному
(в точности, до доступа к общим игровым величинам).
01.07.2009 05:40

vilianov
vilianovВсего баллов:
23,625
коричневый пояс
Моя извиняется, но пусть себе AI продолжает сидеть на одном ядре. Неужели остальным трем нечего поручить? :)
01.07.2009 05:46

Dmitry Oganezov (Intel)
Dmitry Oganezov (Intel)Всего баллов:
25,473
Community Manager
>> В указанном блоге есть также забавный "World Multicore Index"
>> (http://www.cilk.com/multicore-blog/bid/9516/Multicore-Adopti.....s-Universe).

А зато мы по индексу "мисс вселенная" на четвертом месте! Так что нам и без многоядерности есть чем гордиться :)))))
01.07.2009 06:25

yuryserdyuk
yuryserdyukВсего баллов:
5,180
зеленый пояс
>AI продолжает сидеть на одном ядре. Неужели остальным трем нечего поручить? :)

Дмитрий Оганезов, мог бы уточнить вопрос - неужели остальным двадцати трем нечего поручить? :)

Ну, почему, можно - например, сохранять на диске историю игры :-/

Если серьезно (конечно, хорошо бы услышать квалифицированное мнение
от реальных разработчиков такого типа игр), то AI рассчитывает действия/местоположение и т.д.
игроков в следующий игровой такт, а GPU рендерит очередное изображение для воспроизведения на
экране - всё, что ещё ?
01.07.2009 06:36

vilianov
vilianovВсего баллов:
23,625
коричневый пояс
Боюсь показать себя глупее, чем на самом деле, но вроде, благодаря DirectX, CPU может брать на себя то, что не может сделать GPU...
01.07.2009 09:29

ilnarb
ilnarbВсего баллов:
5,647
коричневый пояс
Не знаю на чем основывается их AI, но если на теории игр, то имхо, методики решения задач теории игр вплоне можно распараллелить. Возможно, нельзя выделить курпные куски на уровне игроков, тут будет лучше действие координировать по т.н. корпоративной стратегии, но на низком уровне те же рассчеты над матрицами, линейная оптимизация, ...
Оговорюсь, это лишь догадки на чем это построено
01.07.2009 09:39

ilnarb
ilnarbВсего баллов:
5,647
коричневый пояс
или же там действует ситуация как в анекдоте:
гендиректор менеджеру: надо использовать все ядра
менеджер программистам: надо сделать игру многопоточной
программисты менеджеру: тут у нас AI, его в принципе можно распараллелить, но это не просто, понадобится полгода
менеджер гендиректору: мы можем сделать это за 3 месяца, но тут есть трудности, риски
гендиректор менеджеру: давайте попробуем сделать за месяц, нам конкуренты на хвост наступают
менеджер программистам: надо сделать игру многопоточной за месяц
программисты менеджеру: вы что???? тут у нас AI, его в принципе не возможно распараллелить за месяц, это работает как одно целое
менеджер гендиректору: программисты провели анализ, наш AI принимает решение за 21 игроков сразу, нельзя это распараллелить
гендиректор менеджеру: а можно сделать чтобы было быстрее? сделайте быстрее, но в версии 11 должна быть многопоточность, переделайте ваш AI

занавес...
01.07.2009 09:49

mt2
mt2Всего баллов:
13,459
Зарегистрированный пользователь
Про AI в играх можно почитать в книге Андре Ламот, Программирование игр для Windows советы профессионала, 2е изд., Вильямс, 2004. В нескольких словах: у каждого бота много индивидуальных задач: выбирать цель и стратегию ее достижения, обходить препятствия, обнаруживать ближайших противников и противодействовать им и т.д. Вот эти-то индивидуальные задачи и можно решать либо последовательно, либо параллельно - с точки зрения конечного результата, разницы не будет, а задачи группового взаимодействия - это уже финальная часть, ее разбить на потоки труднее.
01.07.2009 10:06

ilnarb
ilnarbВсего баллов:
5,647
коричневый пояс
mt2, тогда, видимо, можно для каждого рассчитать его возможность достигать те или иные цели (забивать, противодействовать тому или иному врагу, обходить тоже с какой-то целью), оценить все угрозы и цели, оценить необходжимость достижения целей и отражения угро, и потом решить задачу о назначениях для получеия кооперативной стратегии. Надеюсь, лошгично
01.07.2009 11:51

vilianov
vilianovВсего баллов:
23,625
коричневый пояс
Ильнар, я уверен - ВСЕ ТАК И БЫЛО!

Кстати, FIFA пишут в Канаде.
01.07.2009 13:04

Dmitry Serkin (Intel)
Dmitry Serkin (Intel)Всего баллов:
3,945
коричневый пояс
Ничего себе вы тут накомментили :)
02.07.2009 04:57

mt2
mt2Всего баллов:
13,459
Зарегистрированный пользователь
>mt2, тогда, видимо, можно для каждого рассчитать его возможность достигать те или иные цели (забивать, противодействовать тому или иному врагу, обходить тоже с какой-то целью), оценить все угрозы и цели, оценить необходжимость достижения целей и отражения угро, и потом решить задачу о назначениях для получеия кооперативной стратегии. Надеюсь, лошгично

Ok!

Обратная ссылка (1)


Оставить комментарий  

Для получения технической помощи посетите сайт службы поддержки.
Имя (обязательно)*

Электронная почта (обязательно; не будет отображено на этой странице)*

Ваш URL-адрес (необязательно)


Комментарий*