Дата: Четверг, 27 Октября 2011, 23:12 | Сообщение # 1
Группа: Администратор
Сообщений: 892
Статус: Offline
Разработчик: Digital Illusions Creative Entertainment Издатель: Electronic Arts Жанр игры: FPS Дата выхода игры: 25 октября 2011 года
Платформа: PC PS3 Xbox360 Системные требования для игры Battlefield 3 Операционная система: Windows XP Процессор Pentium 4 1.7 GHz, рекомендуется 2,5 GHz ОЗУ 512 MB, рекомендуется 1GB DVD х16 Видеокарта со 128 MB, рекомендуется 256 MB DirectX 9.0с совместимая звуковая карта Для мультиплеера требуется 1 DVD с игрой Интернет соединение ISDN - игра до 16 человек, ADSL/Cable - до 32, T1/Lan - до 64
Для игры в Battlefield 3, видеокарта должна поддерживать pixel shaders версии 1.4. Список поддерживаемых видеокарт:
NVidia GeForce FX 5700 NVidia GeForce FX 5900 NVidia GeForce FX 5950 NVidia GeForce 6800 NVidia GeForce 6800 GT NVidia GeForce 6800 Ultra NVidia GeForce 5800 (AGP) NVidia GeForce PCX 5900 (PCIe) NVidia GeForce 6600 (PCIe) ATI Radeon X300 ATI Radeon 8500 ATI Radeon 9500 ATI Radeon 9700 ATI Radeon 9600 ATI Radeon 9800 ATI Radeon 9550 (RV350LX) ATI Radeon X800 PRO ATI Radeon X800 XT Platinum Edition ATI Radeon X600 (PCIe) ATI Radeon X700 (PCIe)
Динамичный шутер от первого лица от разработчиков игровой компании EA Digital Illusions CE (DICE).Студия DICE была основана еще в 1992 году, но своего звездного часа ей пришлось ждать долгих десять лет. Именно в 2002 году вышел Battlefield 1942 — первая часть долгоиграющего сериала, благодаря которому шведские разработчики стали знамениты на весь мир. За свою уже без малого десятилетнюю историю серия постоянно разрасталась вширь и вглубь: обзавелась тематическими дополнениями про войну во Вьетнаме и секретные разработки нацистских ученых, акцентировала внимание то на одиночной кампании, то на сражениях в отдаленном будущем. Но самой удачной, по мнению многих игроков, стала именно вторая часть, посвященная перипетиям современных боевых действий. Тем удивительнее, что анонса Battlefield 3 пришлось ждать так долго.
EA Digital Illusions CE использовали в Battlefield 3 игровой движок Frostbite 2.0 , вторая версия которого является отдельным «детищем» компании. Для того чтобы насладиться всеми прелестями игры движок использует DirectX 11. Для того чтобы начать игру, вам понадобится операционная система Windows Vista или Windows 7, желательно в 64-битной редакции. В качестве анимационного движка используется ANT от EA Tiburon. В качестве физического движка - Havok Physics.Благодаря этим современным технологиям игроки Battlefield 3 смогут насладиться замечательной анимацией и качественным звуком. Хотя и это меркнет перед разрушающими возможностями игры бателфилд 3. Физика здесь явно на высоте.
В игре Battlefield 3 вам предстоит стать морским пехотинцем армии Соединенных Штатов Америки. Вы сможете виртуально посетить такие города, как Париж, Тегеран, Нью-Йорк и т.д. Вы пройдете огнем и мечом по Среднему востоку и Европе. В ваших руках будет все современное стрелковое оружие. Рули, рычаги и педали наземного, воздушного и морского боевого транспорта также вам будут доступны в полной мере.
С улучшенным фирменным движком шведы реализовали высокий уровень разрушаемости объектов, кинематографические эффекты, а также масштабные виртуальные декорации. Battlefield 3 не зажата в рамках клипового мышления, это уже полноценный фильм, эдакое интерактивное «Падение Черного ястреба», которое разворачиваеться на ваших глазах и при вашем непосредственном участии. Игра не распадаеться на набор ярких и разрозненных сцен, вместо этого исследование каждого внушительного уровня превращаеться в настоящий получасовой боевик. И вы, конечно, в первых рядах зрителей.
Для усиления эффекта в ход идут все средства: и кинематографическая камера, дрожащая от каждого шага героя, и насыщенный звук и используемые на всю катушку возможности движка Frostbite 2.0. Battlefield 3 не только выглядит реалистично, но и живет по правилам реального мира: каждый хлипкий забор и строение из бетона одинаково подчиняются законам физики. Непредсказуемость сражений, известная по обеим частям Bad Company, предстанет во всей красе: ставшая полем боя тихая городская улочка может за минуту превратиться в месиво из бетона, асфальта и остовов догорающих машин. В Battlefield 3 невозможно где-либо спрятаться и обстреливать врагов. В любом случае вас достанут, пробив, если потребуется, ракетой крышу, взорвав стену, или пустят на вас танк, и он сравняет здание с землей.
Боевой арсенал в игре Battlefield 3 реально превзошел все ожидания. Именно большой выбор различного оружия и составляет класс всего проекта.Каждая огнестрельная единица обладает несколькими режимами ведения огня и целым ворохом допустимых модификаций: подствольные гранатометы, фонарики, лазерные прицелы и целеуказатели, оптические прицелы, глушители и тому подобные приятные мелочи разной степени необходимости. В комплект к каждому оружию входит реалистичное, а значит, в чем-то непредсказуемое поведение.
Вы сможете проходить компании и отдельные миссии в одиночной игре. Или же воспользоваться выделенными серверами и поиграть в многопользовательскую версию Battlefield 3. , ее возможности позволяют участвовать в битвах одновременно 64 игрокам.
Стоит отметить что игра уже получила более 60 наград и по предзаказам перевалила отметку в 3 млн. копий.Средняя оценка рецензий колеблеться между 9-ю и 10-ю баллами. IGN (9 / 10) GameTrailers (9.2 / 10) GameInformer (9.5 / 10) GameSpy (5 / 5) Joystiq (4.5 / 5) Editor Thoughts on Reviewing BF3 GameInformer (9.50 / 10) 1UP (A-) GameReactor.se (8 / 10) AusGamers (9.8 / 10) PCGames.de (87 / 100) FZ.se (5 / 5) GameArena.au (9.5 / 10) Everyeye.it (9.2 / 10) Gamereactor.dk (9 / 10) Gamestar.de (93 / 100) Tiscali.cz (9 / 10) Meristation.com (9.5 / 10) Spaziogames.it (9.3 / 10)
Дата: Суббота, 10 Декабря 2011, 16:20 | Сообщение # 3
Группа: Администратор
Сообщений: 892
Статус: Offline
Back to Karkand. Критики — о Back to Karkand.
До выхода первого дополнения для Battlefield 3 на ПК и Xbox 360 остаются считанные дни. Тем временем Back to Karkand уже вышел на Playstation 3, и игровая пресса написала первые рецензии. Давайте же посмотрим, что пишут западные критики про DLC, на который многие ветераны Battlefield возлагают большие надежды.
Все четыре карты объединяет общий визуальный стиль, разрушаемые здания, и ощущение пустыни, скрипящее песком на зубах. Разрушаемость теперь касается не только фасадов зданий, а заборы можно с упоением крошить на щепки. В этом ряду карта Wake Island выделяется преобладанием водной глади, зеленой травкой и небольшими зданиями. А также богатой историей. Если вы не видели этих карт раньше (на консолях, например, предыдущие версии почти не выходили), то они добавят вам пространства и квадратных километров для поиска и отстрела незнакомцев.
Великолепное разнообразие: от тесных переулков до огромных полей. Старые карты звучат по-новому, усеянные кустарником, обломками, ямами и мусором. Эти мелкие детали не только подчеркивают, как много времени прошло с тех пор, когда шли бои на оригинальных картах. Они также добавляют реализма в каждый ваш шаг по этим местам. Кажется, что бои происходят на реальной местности, изнуренной войной.
«В дополнение также входит новый режим «Захват в нападении». Игроки выполняют роль нападающих или обороняющихся, при этом захватывая флаги.
Этот режим не так уж сильно отличается от обычного «Захвата». Впрочем, необходимость активно атаковать или защищаться меняет тактику, которую следует применять командам. К сожалению, этот режим доступен только на двух картах.
Новое оружие, которое можно использовать как в дополнении, так и в оригинальной игре, открывается при выполнении определенных «Заданий». И хотя несколько странно открывать то, за что и так уплачены деньги — с другой стороны есть возможность еще немного «прокачаться» в свое удовольствие.
«Помимо оружия, в Back to Karkand есть также новая техника. Она не то, чтобы сильно отличается от оригинальной, но все же разнообразит бой. Итак, мы получаем:
Истребитель F35B — не самый быстрый самолёт в Battlefield 3, но воздушные бои с его участием захватывают.
БТР-90 — от остальных БМП в игре его характеристики отличаются мало. А вот вид живо напоминает про Battlefield 2.
DPV, армейский багги — пожалуй, лучший транспорт из новых. Быстрый, юркий, и со встроенным гранатометом на борту. »
Единственное, что можно заметить — некоторые карты дополнения настолько отличаются от оригиналов, что играются совершенно по новому. Как бы то ни было, даже если вы никогда не играли в Battlefield 2, вы этого не заметите: карты отличные, и играть на них — одно удовольствие.»
Дата: Вторник, 13 Декабря 2011, 00:38 | Сообщение # 5
Группа: Администратор
Сообщений: 892
Статус: Offline
Я вот непойму, как же будут играть те кто не купил "Возвращение в Карканд",они что, перед сменой карты с оригинальной игры на B2K, будут вылетать? Или на сервере - только оригинал, или B2K?
Дата: Вторник, 13 Декабря 2011, 17:58 | Сообщение # 6
Группа: Автопилот
Сообщений: 1668
Статус: Offline
Quote (Aleks|iva|)
Я вот непойму, как же будут играть те кто не купил "Возвращение в Карканд",они что, перед сменой карты с оригинальной игры на B2K, будут вылетать? Или на сервере - только оригинал, или B2K?
все правильно: игроки смогут играть только на картах оригинальной игры, если на сервере будут карты В2К, то игроки будут либо выкинуты с сервера, либо смогут играть только на оригинальных серверах
Дата: Суббота, 17 Декабря 2011, 21:03 | Сообщение # 7
Группа: Администратор
Сообщений: 892
Статус: Offline
Battlefield 3: Под капотом. Первая часть
У Battlefield 3 было в распоряжении несколько месяцев, чтобы проникнуть в умы и сердца геймеров по всему миру. После успешного запуска он занял заслуженное место в рядах топовых шутеров на рынке: великолепная графика, потрясающий звук, направленность на командную игру стали его главными козырями. EA и DICE удалось создать зрелищный продукт. Блогу компании AMD удалось пообщаться с Йоханом «repi» Андерссоном, архитектором рендеринга в DICE. Предлагаем к прочтению первую часть интервью, посвященную использованию технологии DirectX 11 в игре, новым техникам рендеринга и тому, как разработчикам удалось настолько хорошо оптимизировать Battlefield 3.
Движок Frostbite 2, на котором построен Battlefield 3, был создан на основе DirectX 11 API, который стал минимальным требованием для ПК. Почему было принято такое решение, и не опасались ли вы, что исключение пользователей, использующих Windows XP и соответственно, DirectX 9, существенно снизит продажи игры?
Battlefield как игра, и DICE как студия имеют очень стойкие традиции разработки для персональных компьютеров. Первые игры сериала были созданы именно для ПК. Также у нас в DICE царит философия, гласящая, что наши игры должны использовать каждую платформу на полную мощность.
Чтобы максимально использовать потенциал современного ПК с видеокартой, поддерживающей DirectX 10 или DirectX 11, мы создали движок будущего. В этом свете использование DirectX 11 было правильным решением. С таким фундаментом мы могли создать по-настоящему захватывающую игру.
Новая технология освещения в Battlefield 3 позволяет прочитывать тысячу источников света одновременно.
Мы правильно рассчитали, что к началу жизненного цикла движка Frostbite 2 и Battlefield 3 проникновение графических процессоров с поддержкой DX10/11 и операционных систем Windows Vista и Windows 7 будет достаточно высоким, чтобы мы могли достичь широкой аудитории. А то, что Battlefield 3 будет сильно ориентирован на ПК, для остальных геймеров станет серьезной мотивацией для апгрейда.
Говоря про DirectX 11, вы смогли бы достичь такого же уровня графики без этого API? Приведите примеры, какие возможности DirectX 11 использует Battlefield 3?
Я не думаю, что нам бы удалось создать такую же графику без DirectX 11. Это отличная современная платформа для нашего движка и подсистемы рендеринга.
Мы используем множество аппаратных возможностей DirectX 11:
• «Плиточное» освещение при помощи вычислительных шейдеров. Мы разработали новую технологию высокоэффективного динамического освещения, при которой возможно масштабирование вплоть до сотен источников света на высоких разрешениях и адаптивный суперсемплинг. Мы делим экран на маленькие кусочки размером 16×16 пикселей («плиток»), а вычислительные шейдеры DirectX 11 рассчитывают их освещение всеми источниками света.
Механизм «плиточного» освещения в Battlefield 3
• Карта смещения местности. Поверхность земли в Battlefield 3 построена при помощи разрушаемых полей высоты высокого разрешения, которые просчитываются при перемещении по этой поверхности. Это позволяет нам очень детально прорисовывать поверхность на огромных площадях. DirectX 11 позволяет нам в полной мере раскрыть детализацию при помощи тесселяции и карт смещения в DX11. Таким образом мы получаем очень точные и детальные силуэты рельефа на большом удалении и значительно уменьшает «скачки» поверхности при пролёте над ней.
• Шейдерные оптимизации. Мы используем совсем немного шейдеров, и благодаря улучшенным возможностям шейдерной модели DX11 получаем повышенную производительность.
• Прорисовка объектов. Частая проблема многих движков в том, что чем больше объектов и детализации вы хотите показать на экране, тем больше запросов сыпется на процессор и видеокарту, а каждый запрос — большая нагрузка, даже в DirectX 11.
В Battlefield 3 мы хотели, чтобы на больших дистанциях было видно множество объектов, особенно на установках графики «Ультра» и «Высоко». И мы разработали всесторонний подход к созданию запросов, которые «сбивают в кучу» различные объекты и передают их на обработку одновременно.
Это значительно сокращает количество запросов на наших картах. К примеру, на карте «Вершина Дамаванды» в качестве «Ультра» нам удалось сократить число запросов с 4000 до 900, что отразилось существенным улучшением производительности как на слабых, так и на топовых компьютерах.
Одновременная обработка объектов даёт большой прирост производительности.
Какие преимущества использования виртуального текстурирования для отрисовки поверхности земли в Battlefield 3? Как ваш подход отличается от других техник рендеринга?
Большинство техник отрисовки поверхности земли заключаются в сочетании нескольких слоев текстур, чтобы воспроизвести различные натуральные и искусственные поверхности — такие, как трава, песок, камень, асфальт и т. д. То же самое мы делали в первой версии Frostbite при помощи очень гибкой технологии, названной нами Смешивание Процедурных Шейдеров, благодаря которой каждый материал мог отображаться как сеть шейдерных графов, созданных вручную нашими художниками уровней.
Для Battlefield 3 мы хотели еще больше улучшить качество и размер ландшафтов, и наша новая система виртуального текстурирования стала ключом к этому.
Новая технология использует тот факт, что поверхность земли повторяется от кадра к кадру. Когда вы бежите по земле (или даже летите над ней), большая часть поверхности в течение многих сотен кадров выглядит одинаково. Таким образом, вместо того, чтобы заставлять видеокарту отрисовывать каждый пиксель каждого кадра сложными и ресурсоемкими шейдерами земли, мы рендерим часть шейдеров поверхности и кешируем их в большие виртуальные текстуры, покрывающие весь рельеф. Этот кеш обновляется только по требованию, по мере того, как вы перемещаетесь по поверхности.
Виртуальное текстурирование.
Такая технология во многом выигрышна:
• Улучшенная производительность. Так как большая часть шейдеров поверхности теперь не нуждается в попиксельной отрисовке, а кешируется в большой виртуальной текстуре — мы экономим запас мощности видеокарты и уменьшаем провалы FPS на сложных участках.
• Более высокое качество. Благодаря запасу производительности, сэкономленной нами, а также тому, что виртуальное текстурирование масштабируется лучше, чем традиционное, наши художники уровней получили возможность добавить больше разнообразия и деталей на поверхность земли.
Процедурная генерация декора поверхности земли тоже облегчает задачу компьютерного железа.
• Большая дистанция прорисовки. Технология виртуального текстурирования к тому же позволила нам увеличить дальность прорисовки без необходимости убирать важные текстуры. Ландшафт карты «Операция Огненный Шторм» — хороший пример этого.
• Использование памяти. Недостаток нашей технологии (кроме сложности) в том, что она требует, по сравнению с обычными текстурами, больше памяти видеокарты для хранения больших виртуальных текстур. Хотя для ПК сегодня это не большая проблема — производители современных видеокарт щедро снабжают их одним или даже двумя гигабайтами памяти (как на AMD Radeon™ HD 6950 и HD 6970).
Во второй части статьи речь пойдет про перенос передовых технологий игры с ПК на консоли, уникальных технологиях освещения Battlefield 3, пользе многоядерных процессоров, технологиях 3D-изображения и о будущих играх, которые могут использовать Frostbite 2.
Дата: Пятница, 23 Декабря 2011, 19:33 | Сообщение # 8
Группа: Администратор
Сообщений: 892
Статус: Offline
Battlefield 3: Под капотом. Вторая часть.
Предлагаем вашему вниманию заключительную часть интервью с разработчиком Battlefield 3 Йоханом «repi» Андерссоном, опубликованного в блоге компании AMD. Сегодня речь пойдет про перенос передовых технологий игры с ПК на консоли, уникальные технологии освещения Battlefield 3, пользу многоядерных процессоров, технологии 3D-изображения и про будущие игры, которые могут использовать Frostbite 2.
Игра Battlefield 3 и ядро Frostbite 2 были разработаны для ПК в качестве основной платформы. Как DICE справилась с проблемами производительности и качества при переносе этих разработок на консоли?
С Xbox 360 и Playstation 3 мы работаем с тех пор, как появились первые образцы устройств, так что мы хорошо разбираемся в разработке и оптимизации для консолей; в том, что работает хорошо, а что — плохо.
Когда мы начали работать над Frostbite 2, то помнили о тонкостях разработки для консолей. В то же время, создавая абсолютно новую систему рендеринга и освещения, мы не позволяли консольным ограничениям сдерживать нас. Вместо этого мы свободно экспериментировали с множеством техник отрисовки и моделирования объектов и эффектов на ПК при помощи DirectX 11, пока не достигли именно того, что хотели.
Уровень в Battlefield 3 может содержать больше 10 тыс. объектов
Я думаю, это был свежий и здоровый подход, который позволил нам сделать ощутимый шаг вперед, к новым технологиям. Технологиям, о которых мы бы не подумали, если бы вели более традиционную разработку и фокусировались прежде всего на консолях.
Перенос игры и ядра на консоли стал большим вызовом для нас. Мы занялись низкоуровневой оптимизацией и адаптацией системы для использования сильных сторон консолей; в то же время нам предстояло вписаться в небольшой объем памяти и фиксированных 30 кадров в секунду.
Мы не хотели жертвовать визуальным рядом и сетевой игрой на 64 человека, которую нам позволял демонстрировать хороший компьютер — а это значило, что и ядро и игру предстояло масштабировать. И сам геймплей тоже.
Оптимизация и масштабирование игры для консолей принесло нам еще одну выгоду — эти наработки мы могли использовать для улучшения картинки на слабых ПК и при установке качества графики на «минимум».
Разработчики Battlefield 3 серъезно подошли к аутентичности отображенных в игре объектов.
ПК — обширная платформа, и хотя минимальные требования у нас были выше, чем у большинства игр, компьютеры, подходящие под эти требования, слабее консолей (особенно процессором). Для нас это вызов: мы не можем сильно масштабировать графику, потому что в сетевой игре остутствие таких критичных компонентов, как тени или источники света, приведет к нечестной игре.
Освещение в Battlefield 3 не похоже ни на что виденное нами в играх ранее. Могли бы вы посвятить нас, как DICE удалось разработать настолько реалистичный свет в этой игре?
Мы очень гордимся системой освещения в Frostbite 2 и тем, как нашим художникам удается ей распорядиться. Мы посвятили её разработке весьма продолжительное время, так как хотели создавать не только традиционные залитые солнцем пейзажи, а и высокодетализированные городские территории и помещения с «честным» освещением. Не говоря уже о ночных уровнях и множестве одновременных динамических источников света.
Уровень Battlefield 3 может содержать больше тысячи источников света.
Наше освещение создано на базе нескольких технологий, работающих сообща для создания финальной картинки:
• «Плиточное» освещение и отложенное затенение. Это наш ключевой инструмент метод отрисовки и освещения, позволяющий эффективно работать с множеством источников света одновременно.
• Непрямое освещение. У нас есть встроенная технология «radiosity», просчитывающая, как свет взаимодействует с окружением. Это отличное дополнение к динамическому освещению, благодаря которому игровые объекты выглядят натурально.
• Освещение объёмных частиц. Настоящая инновация в Frostbite 2 — то, что все частицы освещаются и затеняются наравне с остальными объектами. Таким образом они отлично выглядят в любых сценариях освещения и кажутся по-настоящему объемными
Сверху — частицы, освещенные объёмно.
• Рендеринг HDR и пост-обработка. Весь просчет и освещение созданы в HDR (расширенном динамическом диапазоне интенсивности света — прим. Skeeter), и проходят длинную цепочку фильтров пост-обработки, чтобы добиться натурального пересвета, «кинокартинки», глубины резкости, смаза при движении и HBAO.
Для создания финальной картинки задействуется больше 10 фильтров постобработки.
Всё это — важные технологии, но создание реалистичного освещения в игре требует не только технологий, но и художественного подхода, талантливых дизайнеров, сильной и целостной арт-дирекции. Сообща команда проделала огромную работу над освещением и вообще визуальной частью Battlefield 3.
Слева — пример того, как изменяет картинку непрямое освещение
Расскажите, пожалуйста, насколько эффективно ядро Frostbite 2 использует несколько ядер процессора для оптимизации производительности.
Frostbite 2 ориентирован на распараллеливание задач. Большинство его задач разделяются на меньшие части, называемые нами «дела». «Дела» могут одновременно делаться на шести процессорах, чтобы улучшить производительность и устранить задержки.
На этом подходе построено всё ядро. Вот несколько подсистем с большим количеством «дел», которые выигрывают от многоядерности: анимация, физика, звук, отрисовка, местность, эффекты
Сцена в игре состоит из нескольких слоев — нормалей, мягкости, поглощения и отражения.
Что вы думаете про технологии AMD Eyefinity и AMD HD3D? Как Battlefield 3 их использует?
Для технологии AMD Eyefinity мы уже делали полную поддержку в Battlefield: Bad Company 2. От игроков мы получили множество позитивных отзывов: все хвалили возможность поиграть с настоящим периферийным зрением и с огромным разрешением. Конечно же для Battlefield 3 мы тоже внедрили эту технологию.
В этом режиме графический интерфейс размещается на центральном экране, а боковые мониторы используются для отображения игрового мира. Таким образом мы задействуем периферийное зрение игрока. Это очень затягивает — все эти эффекты и бешеный геймплей на нескольких мониторах. К тому же в сетевой игре вы лучше осведомлены об окружающей обстановке.
Один из примеров использования Eyefinity.
Что касается стереоскопического 3D-изображения — мы экспериментировали с ним в Bad Company 2, но в Battlefield 3 хотели поднять на новый уровень. Из-за сложности движка и особых методик отрисовки, традиционные 3D-решения на основе драйвера просто не работают в Frostbite 2. Вместо этого нам следовало встроить поддержку стереоскопического 3D непосредственно в Frostbite 2, всё самостоятельно продумать, и рисовать два абсолютно разных кадра для каждого глаза. Такой двойной рендеринг является самым точным методом создания 3D-стерео и отлично выглядит в работе.
Технология HD3D от AMD отлично вписывается в этот подход и корректно работает с Frostbite 2. Мы очень рады, что у геймеров, использующих быстрые видеокарты от AMD есть возможность насладиться настоящим 3D!
Ядро Frostbite 2 будет использоваться в других играх, или оно было создано преимущественно под Battlefield 3?
Frostbite 2 — мощный и отлично масштабируемый движок. В первую очередь он был создан для создания Battlefield 3 таким, как мы его представляли — а это требовало уникальных и эффективных решений. Также он будет использоваться при разработке будущих игр от DICE.
Во время создания ядра мы слышали про интерес других студий внутри EA к нашей разработке. Например, ванкуверская Black Box, которая уже десятилетие выпускает игры серии Need for Speed, стала первой внешней студией, использовавшей Frostbite 2 в своей новой Need for Speed: The Run. Замечательно наблюдать, как они адаптировали наш движок для гоночной игры, насыщенной событиями и драйвом.
Многие игроки ждут возвращения Mirror`s Edge от DICE уже на движке Frostbite 2.
А в будущем вы увидите еще множество отличных игр от DICE и EA на ядре Frostbite 2!
Дата: Вторник, 27 Декабря 2011, 21:17 | Сообщение # 9
Группа: Администратор
Сообщений: 892
Статус: Offline
Как стреляет шутер
[Статья Armin Ronacher о принципах вычисления коллизий в сетевых шутерах. Носит скорее обзорный и исследовательский, нежели технический характер. Здесь и далее в квадратных скобках примечание переводчика]
Сегодня я хочу выглянуть из своего окошка и поделиться знаниями по весьма сложной теме, в которой я буквально пару месяцев назад ничего не понимал. Зачем? Ну, мне кажется, что это просто здорово – читать об этом обо всем. А еще это может дать кому-нибудь повод для дальнейшего погружения в тему. И еще – несмотря на все мои изыскания, я не выяснил достаточно для того, чтобы представлять совсем динамичные игры, вроде баттлфилда. Так что я не выражаю претензий на истину в последней инстанции. И, что еще хуже, очень многое из этого было действительно трудно раскопать.
Немного контекста
Должен признать, после того как вышла Bad Company 2 и, теперь уже, Battlefield 3, я спустил просто ужасающее количество времени за этой серией. А всякий раз, когда я понимаю, что трачу время на бесполезную ерунду, я пытаюсь получить от этой ерунды хоть что-нибудь, что можно было бы использовать в будущем.
И очень здорово, что разработчики из DICE активны и доступны на форумах, в твиттере и reddit и всегда можно получить целую кучу информации о том, как это все разрабатывалось. Кроме того, эти игры достаточно популярны и многие люди пытаются разобраться в исполняемых файлах для того чтобы увидеть что там сделано хорошо, а что плохо.
Что касается Battlefield, мне стало интересно, как работает сетевая часть. В основном из-за того, что эта игра одну вещь делает совсем не так, как все из того, во что я играл раньше — каждая выстрелившая тут пуля имеет ускорение и вполне подвержена воздействию гравитации. Конечно концепция снарядов сама по себе не нова, но очень редкая игра пытается ввести для снарядов еще и компенсацию времени отклика. Вообще-то я не могу вспомнить ни одной игры кроме Bad Company 2 и Battlefield 3, которые делали бы это, но это, очень может быть, просто сказывается недостаток моих знаний в этой области.
Чертова физика.
Проблема номер один – скорость передачи информации. Наш теоретический предел – это, конечно, скорость света, но предел фактический значительно ниже. Для передачи сигнала мы используем медь и волокна, а сверху над ними стоит наше сетевое оборудование и наверняка что-то еще. И все это, конечно, добавляет задержки.
Есть три способа выйти из этой ситуации. Первый – в вашу игру будут играть только по локальной (местной) сети, где задержки пренебрежительно малы, второй – вы можете попросту игнорировать эту проблему и позволить игрокам разбираться с их «лагами» самостоятельно. Третье решение – использовать для компенсации задержки какие-нибудь хитрые трюки.
Конечно (в общем) время отклика сильно уменьшилось за последнее время, однако мы сейчас уже подбираемся к чисто физическим ограничениям, а проблема все еще никуда не делась. Ведь сейчас мы взаимодействуем с людьми по всему миру, несмотря на то, в то время как раньше были более изолированы.
Так что все, что делают игры – на самом деле просто фокусы, заставляющие игроков поверить в то, что нет никаких лагов. Для большинства игр вы даже не заметите задержку в 150 мс (это ведь совсем ничего по сравнению с общим временем, проводимым в игре). Быть может вы почувствуете как с увеличением времени отклика падает производительность, но привязать это падение производительности к сетевым задержкам сможете только если обладаете некоторым опытом.
Основы
Современные сетевые шутеры (как правило) состоят из двух частей. Из клиента и сервера. Хост моделирует игру с жестко указанной скоростью (например – 20 пересчетов игровой ситуации в секунду) и сообщает всем клиентам о том, что на сервере произошли изменения, посылая им обновления игрового мира на также жестко заданной скорости обновления. А клиент просто получает эту информацию и рисует на экран все, что происходит на сервере.
Если сервер пересчитывает игровую ситуацию только 20 раз в секунду, то самым простым решением будет привязать клиент к тем же 20 герцам. Ну а если вдруг нужно как-то поднять FPS, обычно прибегают к помощи интерполяции.
Предположим, что сервер работает на 20 герцах и для каждого пересчета клиенту отсылается пакет. А клиенту надо на каждый пришедший пакет отрендерить три кадра. Вся штука с интерполяцией заключается в том, что она может оперировать только уже существующими данными. Значит предполагая на клиенте 60 герц, мы получаем примерно 16 миллисекунд на кадр, и если клиент интерполирует ситуацию между пересчетами сервера, то с каждым пакетом у нас будет 48 мсек уже прошедшего времени для интерполяции.
[я так понимаю имеется в виду, что при интерполяции происходит пост-обработка. Приходит пакет и на его основании строится уже прошедшие на самом деле три кадра, т.е. в приведенном примере ВСЕГДА будет отставание в те самые 48 мсек.]
Теоретическая альтернатива, это экстраполяция с текущей (известной) точки в будущее, но это сильно располагает к появлению ошибок и гораздо сложнее в разработке, чем обычная линейная интерполяция.
Со всем вот этим у нас появляется отличный базис для моделирования повторяющихся движений других игроков. Но что делать с игроком локальным? Если локальный игрок захочет начать движение, затем отправит свои намерения на сервер и будет ждать, пока его команда на начало движения (подтвержденная) вернется обратно, прежде чем на самом деле начать двигаться, будет очень большой лаг. Решением этой является своеобразная «предсказательность» на клиентской части. В компьютерных играх к этой концепции часто относят термин Dead Reckoning (навигационное счисление). В статическом мире, где нет ничего, кроме изменений самого игрока, можно с уверенностью сказать, что клиент может просто игнорировать сервер для просчета собственных движений и имитировать начало движения в тот самый момент, когда была нажата клавиша.
А если моделирование на клиенте и сервере перестанет совпадать, вы получите артефакты, вроде коротких телепортаций игрока. Почему оно может перестать совпадать? Обычно такое случается, когда с игроком (на сервере) происходит что-то, чего клиент просто не мог предсказать. Например игрок может столкнуться с другим игроком. Или встать сверху на транспортное средство, которым управляет не он.
Машина времени.
Выше перечисленные основные методы хорошо подходят играм вроде Quake или Counter-Strike, где динамическими являются лишь игроки и ракеты. Если клиент предскажет что-то не так, сервер просто продолжит рассылать новую информацию о положениях игроков. И если клиент заметит, что данные с сервера слишком сильно расходятся с его собственными предсказаниями, он просто вносит небольшие коррективы.
А если с точки зрения текущего моделирования пришедшие с сервера данные будут как бы «из прошлого», игра просто откатит изменения назад. Она, как правило, хранит несколько последних сообщений от сервера в локальном буфере, так что игре остается только найти то сообщение, которое ближе всего к пришедшим данным, откатить симуляцию назад и применить текущее обновление к уже скорректированному состоянию.
Я попал?
С движениями все ясно, а вот со стрельбой пока совсем нет. В Quakeworld, например, задержки на движении игроков были замечательно скомпенсированы благодаря «предсказательности», но игроку приходилось стрелять на опережение, чтобы самостоятельно скомпенсировать задержку на стрельбе. Смотрите – если у стрелка возникает 100 миллисекундный лаг и он хочет выстрелить в другого игрока, движущегося со скоростью 100 условных единиц в секунду, игрок должен целиться в точку на земле за десять условных единиц до бегущего, для того, чтобы попасть в него. Раздражает.
Если же вы играете в современный шутер – это больше не проблема. Так как оно работает? В принципе – почти так же. Для того, чтобы определить, что игрок задел что-то выстрелом, клиент передает на сервер саму цель и намерение игрока выстрелить. Сервер считает разницу во времени, «возвращается в прошлое» на уже посчитанное время и проверяет – попал ли стрелок во что-нибудь. Если попал, то к цели «применяется» урон.
Однако, у этого метода есть два «но». Прежде всего, такой метод работает только с бесконечно быстрым оружием (hitscan), потому что в этом случае на самом деле не создается и не начинает бороздить время и пространство, собственно, пуля. Второе но – если у стрелка случился лаг в, скажем, 200 мсек, то человек, который должен был получить этот выстрел, вполне мог за эти 200 миллисекунд успеть забежать за укрытие. А благодаря тому, что стрелок, как бы, стреляет из будущего в прошлое, забежавший, уже было, за укрытие игрок вдруг умирает, потому что на момент выстрела был ясно виден стрелку.
Вы не можете избавиться от лага, можете только переместить его в какое-нибудь другое место. И современные игры решили воспользоваться этой мантрой и дать стрелкам возможность совсем не ощущать на себе последствия лага. Но эта иллюзия абсолютно синхронной игры, конечно же, разваливается на куски как только происходит что-то экстраординарное (игроки из разного «времени» бегут вместе, или кто-нибудь получает пулю уже будучи в укрытии и т.д.).
Настоящие пули.
Первая проблема Battlefield в том, что он создает пули. В Quake и других играх в матче участвуют порядка 16 игроков. Каждый раз когда вы пытаетесь узнать, получил ли кто-нибудь пулю, сервер просто возвращает всех игроков на правильные (с точки зрения задержки клиента) позиции, интерполирует время и наблюдает – получил кто пулю, или нет. Даже с очень «многопулевым» оружием это не создает особых проблем, особенно если вы можете немного схитрить и запихать несколько пуль в один сетевой пакет. Конечно и раньше были игры, променявшие старый добрый hitscan на снаряды, но они не вводили никакой компенсации задержки и делали снаряды сравнительно медленными. И это вот сильно затрудняло игру при большом пинге. Попробуйте как-нибудь поиграть в Team Fortress 2 с медицинской пушкой, на далеком-далеком сервере с большим пингом. Посмотрим, как у вас будет получаться =).
Однако в Battlefield, стреляя, вы создаете настоящие пули. Время жизни каждой пули около 1,5 секунд, а для пули, выпущенной из снайперской винтовки, – целых пять секунд. Учитывая, что большая часть оружия – штурмовые винтовки, мы получаем что-то около 700 выстрелов в минуту с очень большим количеством вероятных промахов. Более того: карты здесь настолько огромные, что большая часть пуль будет лететь весь отведенный им срок (а это, как мы помним, 1,5 секунды) перед тем, как их удалят со сцены. А самое жуткое то, что при все при этом приходится иметь дело с максимумом в 64 игрока и кучей боевой техники. Это огромное количество динамических объектов, каждый шаг каждого из которых должен быть проверен на столкновение с чем бы то ни было. И при каждой такой проверке игре нужно двигать все назад во времени к собственному времени каждой проверяемой пули, которое было записано как время выстрела. И это на каждом шагу моделирования. Не только при выстрелах.
Техника и разрушаемость.
Другая большая проблема баттлфилда – разрушаемое окружение – это часть игрового дизайна. Здания и техника здесь могут получать урон, так же как и игроки. И если, для того, чтобы проверить не было ли что-нибудь «застрелено», вам необходимо путешествие во времени, то вам нужно двигать назад не только игроков, но и всю технику и все строения с поля боя. Правда, я не думаю, что это же самое надо делать для разрушений [зданий], потому как разрушения не создают новых препятствий для пуль. Щебень может быть легко прострелен насквозь, а если новое препятствие, вдруг, и возникает в результате разрушения, оно, скорее всего, не будет замечено из-за дыма, это разрушение сопровождающего. Другое дело – разрушение земли. В этой игре вы можете проделывать в земле настоящие дыры. А настоящие дыры, неожиданно появляющиеся на поле, весьма разрушительно воздействуют на любого вида предсказания или интерполяцию. Можно вспомнить те тонны игроков, что слали репорты о солдатах, провалившихся под карту во время бета-теста Battlefield 3. Нет ничего удивительного в значительном «смягчении» разрушаемости земли в игре к релизу.
Растягиваем протокол.
64 игрока на поле боя, десятки единиц техники, тонны разрушений, ракет, пуль, оружия, стреляющего в разные стороны и черт его знает чего еще – огромное количество данных для передачи. Однако если вы, вдруг, посмотрите на трафик, создаваемый Battlefield 3, вы увидите, что он не так уж и высок. Я полагаю, что тут используется что-то похожее на сетевую модель, применяемую в Halo, которая, в свою очередь, содана на основе модели из Tribes. Halo добавил в нее такую вещь как различные степени приоритетов для всех передаваемых по сети объектов. Объекты, находящиеся далеко от игрока обновляются (на клиенте) гораздо реже, чем объекты вблизи.
На моем компьютере при игре на сервере с 64 игроками игра передает около 16кб/сек в обоих направлениях. А это совсем немного.
Halo's Ragdoll Trick
На поле боя очень много физических объектов и я не думаю, что все они передаются по сети. К примеру рагдолл в большинстве случаев займет канал только на стадии начальной синхронизации физики между клиентами, а это мелочи. Вы в любом случае можете стрелять сквозь мертвые тела, так что самая большая проблема больше не проблема. Но есть другая беда – Battlefield позволяет вам оживлять павших товарищей. Вот один пример. Некоторые люди не совсем честно используют механизм возрождения. По крайней мере если ниженаписанное правда.
По информации с некоторых сайтов (пусть останутся неназванными) позиция игрока после оживления контролируется оживляющим. Это, в общем, имеет смысл, потому что оживляемый в любом случае не знает где находится его тело и что с ним происходит, ведь когда он умер – камера начала показывать ему совсем другие вещи. А с точки зрения оживляющего было бы странно видеть, как только что оживленный человек вдруг воскрес в каком-то другом месте (читай – где он умер), а не там, где его оживили.
Но независимо от того, передает Battlefield рагдолл по сети, или нет, это просто частный и интересный случай того, как гейм-дизайн может повлиять на сетевое сообщение и как сетевое сообщение может повлиять на гейм-дизайн. Этот метод определенно замечательно работает в Halo, где тела не служат никакой цели, в отличие от Battlefield, где их можно оживить.
Определение столкновений в Battlefield 3
Итак в Battlefield 3 есть настоящие пули и эти пули имеют корректно скомпенсированное время отклика. Если вы видите, что попадаете во что-нибудь – вы действительно попадаете в это. Что еще интереснее – попадание очень близко к «pixel perfect». Сложно точно сказать, потому что даже первый выстрел не дает 100% точности. Но, похоже, чертовски близко.
Все дело в том, что определением столкновений в Battlefield 3 занимается клиент, а не сервер. Почти как в моде ZeroPing для UT99. Если учесть сложности создаваемые всеми пушками в Battlefield 3, то все это обретает смысл. Преимущества определения столкновений на стороне клиента очевидны: дешево, 100%-верное определение, автоматическая компенсация задержки за ничего. Однако эти преимущества приходят с большим недостатком. Такой пересчет легко обмануть.
По словам Алана Кертза, DICE компенсирует последствия определения столкновений клиентом выполняя простую проверку на сервере, которая четко отвечает могло ли быть «доложенное» столкновение, или нет. Я полагаю, они и вправду что-то делают, так как видео с «убийствами через карту» перестали появятся сразу по окончании бета-тестирования. Да и главная проблема на PC – это эймботы и ESP хаки, так что я совсем не уверен, существует ли серьезный убыток безопасности на деле, а не на словах.
Как можно удостовериться в том, что столкновение было на самом деле? Вы можете создать конус, расходящийся от игрока. Поскольку у вас есть гравитация, конус – это не идеальное решение, но оно достаточно близко к.
[видимо автор имел в виду – и проверить – попадает ли в этот конус цель]