Скачать .docx |
Реферат: Интерфейс приложений DirectX и графическая библиотека OpenGL
Содержание
Введение ------------------------------------------------------------------------- 2
1 История развития компьютерных игр ----------------------------------- 4
2 Классификация компьютерных игр -------------------------------------- 6
2.1 Классификация игр по жанру ----------------------------------- 6
2.2Классификация игр по количеству игроков ----------------- 9
3 Направления и тенденции развития игровой индустрии ------------ 11
3.1 Направления развития индустрии видеоигр----------------- 11
3.2 Тенденции развития компьютерных игр --------------------- 11
4 Интерфейс приложений DirectXи графическая
библиотека OpenGL -------------------------------------------------------- 15
4.1 Чтотакое – DirectX? -------------------------------------------- 15
4.2 DirectX 9 --------------------------------------------------------- 16
4.3 DirectX 10 -------------------------------------------------------- 17
4.4 Графическая библиотека OpenGl --------------------------- 18
4.5 DirectX, OpenGL и видеокарта ------------------------------- 19
5 Игровой движок ----------------------------------------------------------- 21
5.1 Что такое игровой движок? ----------------------------------- 21
5.2 OpenSceneGraph ------------------------------------------------- 23
5.3 GLScene ----------------------------------------------------------- 24
5.4 The Nebula Device 2 --------------------------------------------- 25
5.5 Unreal Engine 3-------------------------------------------------- 26
5.6 Quest3D ---------------------------------------------------------- 28
Заключение ------------------------------------------------------------------ 29
Литература -------------------------------------------------------------------- 30
Введение
Сумасшедшие темпы развития высоких технологий затронули каждую из сфер нашей жизни. Технологический прогресс настолько огромен и стремителен, совсем недавно он был достоянием фантастических романов, а сегодня стал доступен каждому из нас.
Судить о темпах развития и научных достижениях современности можно по разным вещам, но в роли абсолютного эталона и показателя, в полной своей мере, может выступать индустрия компьютерных игр.
Кажется, ещё совсем недавно компьютерные игры были лишь простой, незатейливой забавой. Они не отличались уникальным сюжетом, и их графическое оформление оставляло желать лучшего. Они были лишь банальной забавой для довольно ограниченного круга людей, ведь компьютеры были мало распространены и не создавались как специальное «игровое средство».
Но сегодняшние дни развеяли все стереотипы прошлых времён, превзойдя все мыслимые ожидания, ведь создание и разработка компьютерных игр стало одной из величайших мировых индустрий.
Многие мировые компании и группы программистов снискали мировую славу в разработке разнообразнейших компьютерных игр. Современная компьютерная игра предоставляет своему пользователю невероятные возможности, которые могут обеспечить не только потрясающую графическую обработку и реализм, но и многие дни, а то и месяцы увлекательнейшего времяпрепровождения. Революционные разработки в области визуализации и реалистичной игровой физики просто шокируют своим реализмом. Всевозможные авто и авиасимуляторы, симуляторы спорта и фантастических космических кораблей показывают практически стопроцентное сходство с реальностью, отличить которую от виртуального пространства становится всё сложнее и сложнее. Чего стоит только легендарнейший авиасимулятор отечественных разработчиков «ИЛ-2: Штурмовик», описывающий воздушные сражения Второй Мировой Войны. Несмотря на то, что игре уже не один год, она до сих пор не имеет себе равных в реализме и физической правдоподобности.
Умопомрачительные по динамизму и драйву шутеры наполнены не только наилучшими и современнейшими графическими движками, но и огромным количеством адреналина. Такие всемирно известные игровые шедевры как линейка игр «CallofDuty» совсем недавно порадовала своих фанатов очередным эпизодом под названием «CallofDuty 4: ModernWarfare». Эта игра собрала в себе не только ультрасовременнейшую графику, но и уникальную систему поведения персонажа со своими, ранее не применявшимися особенностями и нюансами.
Жанр компьютерных стратегий преобразился не чуть не меньше. Основным его достоянием стала глубокая модернизация поведения искусственного интеллекта противника, который настолько близко приблизился к поведению реального человека, что отличить одно от другого, становиться всё сложнее и сложнее.
Игра как смысл жизни миллионов,конечно же, большинство из них играет от случая к случаю, но вот 10-15 миллионов игроков относятся к компьютерным играм как к главному делу своей жизни. Постоянно увеличивается и число тех, кто играет в онлайновые игры – их уже около 140 миллионов, причем 15-25 миллионов считаются постоянными геймерами. В Интернете уже существует более 30 многопользовательских онлайновых ролевых игр (MMORPG) – огромных виртуальных государств с собственной денежной системой, политикой и историей. По некоторым данным, в подобных проектах принимают участие около 20 миллионов игроков со всего мира, причем в ближайшие четыре года «параллельные миры» переживут демографический взрыв – согласно прогнозам, число их жителей вырастет до 114 миллионов.
1 История развития компьютерных игр
История компьютерных и видеоигр охватывает пять десятилетий.
1950-е : Изобретение видеоигр обычно приписывают кому-то из троих людей: Ральфу Баэру, инженеру, выдвинувшему в 1951 идею интерактивного телевидения, А.С. Дугласу, написавшему в 1952 "OXO" – компьютерную реализацию "крестиков-ноликов", или Уильяму Хигинботему, создавшему 1958 игру "Tennis For Two".
1960-е: Апрель 1962 – SPACEWAR для PDP-1.
1970: Дуглас Энгельбарт получает патент на «систему индикации X-Y позиции на мониторе», или, проще говоря, компьютерной мыши.
1975: Уильям Кроутер написал первую версию игры Colossal Cave Adventure, ставшей прообразом жанра "adventere". Одновременно с распространением игры по сети ARPANET возникает всплеск интереса к компьютерным играм. Появление первых успешных коммерческих игр (Zork).
1977: В продажу поступает Atari 2600. Приставочный бум. 5 июля выходит в свет Apple II. Появление первых графических игр для домашних компьютеров.
1980: Появился на свет "Pac-Man", самая распространенная игра в мире (согласно Книге Рекордов Гиннесса). Michael Toy, Glenn Wichman и Ken Arnold написали полноэкранную RPG – Rogue.
1982: В продажу поступает "Commodore 64", ставший лидером продаж. Из-за небывало низкой цены домашние компьютеры вытесняют игровые приставки. Закат игровых систем второго поколения.
1983: Появление прототипа приставки Nintendo Entertainment System. Начало эпохи игровых приставок.
1985: Алексеем Пажитновым написана самая популярная русская компьютерная игра – тетрис.
1986: Вышла "Dragon Quest", первая JRPG.
1993: Вышла вскоре ставшая культовой стратегия X-COM: UFO Defense от Microprose. В игре была реализована настолько выдающаяся концепция пошагового боя, что она не считается устаревшей и в настоящее время.
1996: Малоизвестная калифорнийская компания 3dfx Interactive, ранее занимавшаяся производством графических адаптеров для игровых автоматов, выпустила свою первую видеокарту с поддержкой 3D-ускорения – Voodoo I, совершив тем самым революцию в мировой индустрии игр. Карта имела множество недостатков (в том числе неспособность работать с 2D-графикой), однако благодаря дешевизне и скорой поддержке производителей игр эта карта стала популярной. 31 мая выходит "Quake", реализовавший полностью полигональный трехмерный мир. До этого использовались спрайтовые модели противников.
1998: Выходит культовая RTS StarCraft от Blizzard, которая сразу становится самой продаваемой игрой года. Чемпионаты по этой игре проводятся и поныне (2006). Выходит Half-life – игра, на основе движка которой было создано множество action-игр. Самой популярной игрой на основе движка от Half-life безусловно является Counter-Strike.
2004: Выходит игра "Doom 3" от id Software, выделявшаяся за счет своей передовой графики. Выходит Half-Life 2 от Valve, высокобюджетная игра, распространяемая через интернет-службу Steam.
2005: Ageia анонсирует выход ускорителей обработки игровой физики PhysX, призванных разгрузить центральный процессор от обсчета физики.
2 Классификация компьютерных игр
Компьютерные и видеоигры могут быть классифицированы по двум признакам: жанр и количество игроков.
2.1 Классификация игр по жанру
Четкая классификация затруднена из-за того, что подчас трудно отнести игру к каком-нибудь конкретному жанру. Игра может представлять собой как смешение существующих жанров, так и не относиться ни к одному из них. Несмотря на это, в ходе развития компьютерных игр сложилась следующая классификация:
3D Shooter (3D-шутеры, "бродилки") - название произошло от понятия 3D - 3 dimensions (три измерения) и shooter (англ. «стрелок»). Основной принцип состоит в изображении виртуального пространства и предметов посредством игровой программы, исполняемой на компьютере. При этом игрок может воздействовать на виртуальную игровую среду. Применяется для обозначения всех видов компьютерных игр, содержащих элементы боя в виртуальном трехмерном пространстве. В основном используется техника «шутер от первого лица» - при этом изображение на экране монитора компьютера имитирует вид из глаз игрока. С точки зрения организации игры различаются Singleplayer и Multiplayer - игра в одиночку против компьютера и игра с другими игроками. Примеры: Doom, Quake, Counter-strike, Half-life, Unreal, Tomb Raider
Arcade (аркада ) - игры в которых игроку приходится действовать быстро, полагаясь в первую очередь на свои рефлексы и реакцию. Аркады характеризуются развитой системой бонусов: начисление очков, постепенно открываемые элементы игры и т.д. Термин «аркада» по отношению к компьютерным играм возник во времена игровых автоматов, которые устанавливались в торговых галереях (arcades). Игры на них были простыми в освоении (чтобы привлечь побольше играющих). В последствии эти игры перекочевали в игровые приставки и до сих являются основным жанром на них.
Arcade Racing (Аркадные гонки) – аркадные гонки характеризуются легким, отдаленным от реальности управлением. Примеры: серия Trackmania, Goforride.
Classic Arcade (Классические аркады) – суть классических аркад объяснить довольно сложно. Обычно главной целью является прохождение уровня за максимально короткий промежуток времени или сбор всех бонусов на уровне. Сюда же можно отнести разнообразные арканоиды и пинболлы.
Примеры: Pacman, Digger, Battle City
Fighting (Драки) – в драках два персонажа дерутся на арене, применяя различные удары, броски и комбинации. Характеризуется большим количеством персонажей (бойцов) и ударов (иногда больше ста для каждого персонажа). Жанр мало популярен на PC из-за ориентации на совместную игру, а на клавиатуре довольно проблематично одновременно играть вдвоем. Однако хорошо развит на игровых приставках. По некоторым играм этого жанра даже проводятся мировые чемпионаты. Примеры: MortalCombat, StreetFighter, Tekken.
Platformer (Платформеры) – понятие платформеров пришло с игровых приставок. Именно там этот жанр наиболее популярен. Основной задачей игрока является преодоление препятствий (ям, шипов, врагов и т.д.) с помощью прыжков. Зачастую приходится прыгать по абстрактно расставленным в воздухе "палочкам" (т.н. платформам), отсюда и пошло название жанра. Примеры: Mario, Aladdin.
Scrollers (Скроллеры ) – в скроллерах экран непрерывно движется в одну из сторон, а игроку предлагается уничтожать появляющихся врагов и собирать появляющиеся бонусы. По направлению движения различают вертикальные и горизонтальные скроллеры. Жанр был очень популярен в середине 90-х годов, сейчас скроллеры практически не выпускаются. Примеры: Jets'n'Guns, AirStrike, DemonStar, KaiJin
Virtual Shooting (Виртуальный тир) – впервые зародился на игровых автоматах, впоследствии перешел на многие игровые платформы, включая PC. Игровой процесс представляет собой отстрел неожиданно появляющихся врагов, но в отличие от экшенов мы не можем управлять движением игрока или камерой, всю игру мы как едем по "рельсам". В связи с этим иногда делают видеотиры, т.е. всю игру снимают на видеокамеру, в определенных местах подставляя разные варианты видеоотрывков. Примеры: Mad Dog McGee, серия House of the Dead.
Simulation (симуляторы) –игра-симуляция. При помощи компьютера, как можно более полно, имитируется управление каким-либо сложным технической системы (например: боевым истребителем, автомобилем и т.д.). Примеры: серия NeedforSpeed, DescentIII, Aviator.
Экономические симуляции – в экономических симуляциях представлены различные экономические процессы и взаимодействия различных величин.
Примеры: Sims, Civilization
Strategy (стратегии) – игра требующая выработки стратегии, например для победы в военной операции. Игрок управляет не одним персонажем, а целым подразделением, предприятием или даже вселенной. Различают: походовые или пошаговые стратегические игры (Turn-Based Strategy, TBS). Игроки поочерёдно делают ходы, и каждому игроку отводится неограниченное или ограниченное (в зависимости от типа и сложности игры) время на свой ход. Стратегические игры в реальном времени (Real Time Strategy, RTS). Все игроки выполняют свои действия одновременно, и ход времени не прерывается. Примеры: WarCraft, StarCraft, Dune.
Sport (спортивные) – как и следует из названия - имитация какой-либо спортивной игры, например футбола.Примеры: FIFA, NBA, Tennis.
Adventure (приключения), или Quest – Игра-повествование, в которой управляемый игроком герой продвигается по сюжету и взаимодействует с игровым миром посредством применения предметов, общения с другими персонажами и решения логических задач. Примеры: Space Quest, Myst, Мор. Утопия.
Role - Playing Games ( RPG ) (ролевые игры) – правильное название этого жанра Computer RPG (CRPG), так как эти игры являются адаптированными для компьютера традиционными ролевыми играми.
Puzzle (головоломки, логические) – в некомпьютерной головоломке роль арбитра, следящего за соблюдением правил, играет или сам игрок (пасьянс), или некоторое механическое устройство (кубик Рубика). С появлением компьютеров возможности головоломок расширились, так как написать компьютерную программу проще, чем сконструировать механическое устройство. Головоломки, как правило, не требуют реакции от игрока (однако многие ведут счёт времени, потраченного на решение). Примеры: Сапёр (Minesweeper); Sokoban.
Traditional (традиционные) и board (настольные) – компьютерная реализация настольных игр, например шахмат. Примеры: CGoban.
Текстовые – новое веяние в игровой культуре. Чаще всего, жанр являет собой текстовый квест, количество участников в котором не ограничено. Иногда такая игра может длиться годами.
2.2Классификация игр по количеству игроков
Одиночные (single player) – рассчитаны на игру в одиночку, против компьютера.
Многопользовательские (multiplayer) – рассчитаны на игру нескольких человек (обычно до 32) по локальной сети, модему или Интернету.
Многопользовательские на одном компьютере (hot seat и splitscreen) –на современных персональных компьютерах бывают редко, однако часто встречаются на старых ПК и приставках. Hot seat – игра по очереди на одном компьютере. В режиме splitscreen экран делится на две части, каждый из игроков играет на своей части.
Многопользовательские через электронную почту (PBEM) – в основном встречается в пошаговых стратегиях. Результаты хода записываются в специальный файл и отсылаются другому игроку через электронную почту.
Массовые ( MMO , Massively Multiplayer Onine ) – массовые игры по Интернету. Наиболее часто встречающиеся жанры - настольные и ролевые игры (т.н. MMORPG, или Massively Multiplayer Online RPG). Среди них различают также браузерные игры (игры, не требующие установки какого-либо клиента), а также текстовые онлайновые игры – жанр MUD.
3 Направления и тенденции развития игровой индустрии
3.1 Направления развития индустрии видеоигр
Развитие видеоигр шло в нескольких направлениях. Во-первых, это совершенствование технической базы: использование игровых картриджей в консолях, усиление быстродействия, улучшение качества графического разрешения. Во-вторых, развивались различные типы игровых устройств: игровые автоматы, домашние телеприставки, компактные карманные игровые устройства, а также игры на персональных компьютерах. Последние, среди которых следует выделить Apple Macintosh, 1984, IBM PC, 1981–1985 и Commodore Amiga, 1985, быстро изменили ситуацию на рынке видеоигр, поскольку по своим возможностям значительно превосходили игровые автоматы и приставки. В-третьих, появлялись все новые важные элементы игры: звуковое сопровождение игрового действия (не только музыка, но и звуки происходящего, включая реплики героев), «скроллинг» – развитие действия в меняющемся пространстве экрана (выходим за экран – меняется место действия) и другие детали, преобразующие структуру игрового опыта.
3.2 Тенденции развития компьютерных игр
Мы можем выделить несколько важных тенденций будущего развития компьютерных игр.
- Расширение практики он-лайновых игр различных жанров.
- Внедрение технологий виртуальной реальности на базе домашних игровых устройств (приставки, компьютеры).
- Появление нового поколения гибридных мультимедийных устройств: телевизор, компьютер, стереосистема, игровая консоль в одной мультимедиамашине.
Если говорить о тенденциях, определявших развитие компьютерных игр на протяжении последних десяти-пятнадцати лет, то одной из основных можно назвать прогресс технической составляющей. Программисты ваяли новые графические движки, к дизайну пространств и уровней привлекались профессиональные архитекторы, интерфейс улучшался в сторону большей "дружелюбности".
Если описывать эту тенденцию в математических терминах, то лучше всего подходит асимптота. В нашем случае параллельная прямая – это фотореалистичность игрового пространства. Она же асимптота. Другими словами, каков бы ни был графический движок, его всегда можно будет отличить от реального видео.
Если говорить о характере совершенствования графических движков, то в первые годы развития тех же трехмерных шутеров (FirstPersonShooter) прогресс был заметен невооруженным глазом и продвинутость графики служила чуть ли не превалирующим фактором в оценке игры.
Сейчас кривая развития графики подбирается к фотореализму. То есть улучшать можно будет до бесконечности, но улучшения эти скоро придется рассматривать хорошо вооруженным глазом и после того, как вам скажут, где их искать.
Превалирование этого фактора – оформительской части компьютерных игр – я бы отнес к общим тенденциям развития PC-платформы, тенденциям на рынке "железа". Конкуренция есть конкуренция. Фирмы, производящие "железо" для наших тачек, изо всех сил выбиваются, чтобы оставаться в струе. Новые "камни", новые материнские платы, новые графические ускорители... С каждым годом под машиной high-end подразумевается все более и более мощный компьютер. Разработчики программного обеспечения (как и игр) не отстают от своих коллег. Выходят новые программные продукты, которые требуют все больших ресурсов.
Кто является ведущим в этой связке? Конечно, производители комплектующих. Их усилиями каждый из нас имеет сейчас на столе такой компьютер, какой сорок лет назад с трудом умещался на этаже какого-нибудь НИИ. И пока производители «железа», поставляют на рынок все более и более продвинутые устройства и платы, разработчики игр будут стремиться за ними поспевать.
Пока на рынке появляется более мощное железо, будет меняться и оформление игр. От лучшего к еще лучшему.
Для таких жанров, как FPS, авиа и прочих симуляторов, трехмерных приключенческих боевиков, процесс достигает своего предела. Геймеры привыкли к хорошей графике. Отлично сделанные модели, интерьеры и спецэффекты – это уже требование по умолчанию, на исполнении которого не въедешь на Олимп популярности. Во-вторых – сделать что-то особенное с каждым годом становится все труднее и труднее. То есть, тенденция в развитии игр, ориентированная на создание красивой одежки, возможно, не будет уже иметь такого влияния, которое она имела в последние десять лет.
"Технический фактор" пока еще остается актуальным для RPG, RTS, GodSim. Переход этих жанров в трехмерное пространство начался. Насколько быстро он достигнет своего предела? Появление Black & White убедительно говорит о том, что ждать придется недолго.
На первый взгляд, игры образца 2000 года и те, в которые мы играем сегодня, различаются очень существенно. В современных RTS, например, количеству высокополигональных моделей может позавидовать любой шутер начала века. Насколько это повлияло на восприятие игроков? Трудно сказать. Напрямую такие вещи, как содержание игры и ее технологическая упаковка, едва ли сопоставимы. Но для объективной оценки можно принять такую формулу: игровой опыт, получаемый игроком / технологические параметры игры.
Это отношение для игр нынешних и пятилетней давности примерно одинаково. Что означает спокойное развитие без резких скачков и провалов. Да, есть место вопросам и сомнениям. Изображение на экране мониторов так быстро хорошеет, что позволяет говорить о приближении того времени, когда игровая картинка будет мало отличаться от реального видео. Однако не стоит забывать, что фотореалистичность достигается не только и не столько повышением числа полигонов на квадратный миллиметр сцены, но упорной и кропотливой работой дизайнеров. Если в самых первых шутерах было достаточно одной текстуры 64х64 на весь коридор, то теперь надо вручную красить панель за панелью. Можно даже сказать, что рост технологических возможностей влечет усложнение отделочных работ. Поэтому приведенная выше формула остается практически неизменной.
Дизайн, цвето-архитектурное решение окружающего игрока пространства оказывает не меньшее, а то и большее влияние на уровень его immersion’а, нежели технологические параметры изображения. Кстати говоря, в ближайшем будущем игры не смогут достичь настоящей фотореалистичности. Усложнение игровой картинки имеет вполне объективный предел роста. Когда полностью оформить коридор в виртуале станет сложнее, чем в реале, этот предел будет достигнут.
4 Интерфейс приложений DirectX и графическая библиотека OpenGL
4.1 Что такое – DirectX ?
DirectX – это набор API (Application Programming Interface, Интерфейс программирования приложений), разработанный специально для простого решения задач, связанных с разработкой игровых систем и видеопрограммирования. Наиболее широко распространяется использование DirectX в разработке игр. Для начинающих пользователей ПК проще сказать, что DirectX значительно облегчает труд разработчков игр, так как им больше не приходится создавать стандартные процессы обработки видео и звука, они складывают их из уже заготовленных функций этой утилиты.
DirectX разделяется на ряд программных объектов, среди которых выделим DirectX Graphics – набор интерфейсов для обработки и последующего графики, DirectInput – интерфейс, используемый для обработки данных, поступающих с клавиатуры, мыши, джойстика и пр. игровых контроллеров, DirectPlay – интерфейс сетевой коммуникации игр, DirectSound и DirectMusic – интерфейсы для работы со звуком, DirectSetup – часть, ответственная за установку DirectX, Direct Media Objects – реализует функциональную поддержку потоковых объектов.
Естественно, на ряду с развитием технологий аппаратного обеспечения (видеокарт), развивается и программное, в лице DirectX. Выходят новые версии, оснащенные новыми возможностями, все чаще выходят дополнения, включающие незначительные изменения и так далее. Новые продукты выходят, в основном в комплекте с операционной системой Microsoft Windows. Так, в поставку Windows XP входила 9 версия DirectX, а вот в новой Windows Vista – включена 10, на сегодняшний день последняя версия. К ее выпуску компания Microsoft готовилась очень тщательно, поэтому в нем используется отличная от DirectX 9 модель управления.
4.2 DirectX 9
Большая часть функциональности девятой и предыдущих версий DX строится на основе COM объектов, доступ к которым мы получаем через интерфейсы. Если коротко –COM модель представляет собой более жесткое определение объектно-ориентированной модели. С COM объектами мы работаем только через интерфейсы. Каждая компонента DirectX будь то, к примеру, DirectInput или DirectSound содержит некоторое количество интерфейсов с использованием функций которых мы получаем доступ к возможностям объекта. Грубо говоря, интерфейс представляет собой класс, содержащий в себе указатели на функции, с помощью которых и происходит взаимодействие с объектом.
Этой версии разработчикам доступен HLSL (High-LevelShaderLanguage) – высокоуровневый язык работы с шейдерами. В качестве его альтернативы можно вспомнить соответствующее предложение от NVidia, а именно Cg. Сложно предсказать дальнейшее развитие обоих языковых платформ. Скорее всего, оба языка будут существовать и продолжать развиваться, как и в случае D3DvsOpenGL. Хотя в данном случае за спиной Cg стоит только NVidia. Программно реализована поддержка второй и третьей версии пиксельных и вершинных шейдеров. Со второй версии вершинных шейдеров, поддержка которых представлена в DX 9, появился контроль над исполнением хода шейдера – условия if/else/endif, циклы loop/endloop и подпрограммы. Взаимодействие с контекстом GDI, а также IDirect3DDevice смахивает на попытку поднятия из могилы недавно положенного туда DirectDraw. Формат пикселя с 10 битным каналом на каждую цветовую компоненту и 2 битами на альфа канал может показаться временным выходом из ситуации для жаждущих 64-битного представления цвета, тем не менее, аппаратная поддержка, а также в некоторых случаях совместимость оставляют желать лучшего.
В целом охарактеризовать DX 9 это акцент на графику как наиболее стремительно развивающуюся область и оптимизация в других компонентах как мне кажется, является правильным направлением на данный момент.
4.3 DirectX 10
DirectX 10, как мы уже говорили, разработан специально для операционной Windows Vista. Он изначально включен в комплект поставки всех версий операционной системы. Разумеется, для того, чтобы DirectX 10 работал в полную силу своих возможностей, вам понадобится Windows Vista, видеокарта с поддержкой DirectX 10 и новейшие игры, включающие в себя возможности программы.
Итак, рассмотрим, что же нового ожидает нас в играх, поддерживающих технологии десятой версии DirectX и разработанных специально для Windows Vista. Основные достижения DirectX 10:
- Более реалистичная анимация шерсти меха и растений
- Более мягкие и более чёткие тени
- Более насыщенные ландшафты с более сложной окружающей обстановкой
- Значительно более тщательно прорисованный лес, более масштабные и детальные сцены баталий
- Более динамичные и чаще меняющиеся по ходу событий сценарии игр
- Больший реализм и уменьшение смазывания движущихся объектов
- Объёмные эффекты
- Уточнённый, более реалистичный дым и облака
- Более реалистичные отражения и преломления на отражающих поверхностях - воде, автомобилях, стекле и др.
- Снижение загрузки CPU, перераспределение обсчёта ряда процессов на GPU, снижение вероятности подтормаживания и зависания системы при сложном геймплее
Таким образом, благодаря такому полезному явлению, как DirectX 10, рядовым пользователям ПК доступны новые возможности и прелести графики игрового мира, в то время, как нагрузка на процессор заметно снижена, возложив обязанности прорисовки и детализации на видеокарту и DirectX. DirectX 10 позволяет имитировать процессы реальной жизни в игровом времени, позволяя заменять статичное окружение динамичным.
4.4 Графическая библиотека OpenGl
OpenGL является одним из самых популярных прикладных программных интерфейсов (API – Application Programming Interface) для разработки приложений в области двумерной и трехмерной графики.
Стандарт OpenGL (Open Graphics Library – открытая графическая библиотека) был разработан и утвержден в 1992 году ведущими фирмами в области разработки программного обеспечения как эффективный аппаратно-независимый интерфейс, пригодный для реализации на различных платформах. Основой стандарта стала библиотека IRIS GL, разработанная фирмой Silicon Graphics Inc.
Библиотека насчитывает около 120 различных команд, которые программист использует для задания объектов и операций, необходимых для написания интерактивных графических приложений.
На сегодняшний день графическая система OpenGL поддерживается большинством производителей аппаратных и программных платформ. Эта система доступна тем, кто работает в среде Windows, пользователям компьютеров Apple. Свободно распространяемые коды системы Mesa (пакет API на базе OpenGL) можно компилировать в большинстве операционных систем, в том числе в Linux.
Характерными особенностями OpenGL, которые обеспечили распространение и развитие этого графического стандарта, являются:
- Стабильность. Дополнения и изменения в стандарте реализуются таким образом, чтобы сохранить совместимость с разработанным ранее программным обеспечением.
- Надежность и переносимость. Приложения, использующие OpenGL, гарантируют одинаковый визуальный результат вне зависимости от типа используемой операционной системы и организации отображения информации. Кроме того, эти приложения могут выполняться как на персональных компьютерах, так и на рабочих станциях и суперкомпьютерах.
- Легкость применения. Стандарт OpenGL имеет продуманную структуру и интуитивно понятный интерфейс, что позволяет с меньшими затратами создавать эффективные приложения, содержащие меньше строк кода, чем с использованием других графических библиотек. Необходимые функции для обеспечения совместимости с различным оборудованием реализованы на уровне библиотеки и значительно упрощают разработку приложений.
Наличие хорошего базового пакета для работы с трехмерными приложениями упрощает понимание студентами ключевых тем курса компьютерной графики – моделирование трехмерных объектов, закрашивание, текстурирование, анимацию и т.д. Широкие функциональные возможности OpenGL служат хорошим фундаментом для изложения теоретических и практических аспектов предмета.
4.5 DirectX, OpenGL и видеокарта
Полагаю, вы не раз видели при установки DirectX богатый набор файлов (d3d9.dll, ddraw.dll, dinput.dll, dsound.dll, и др.). Они содержат в себе основные компоненты DirectX: Direct3D (3D), DirectDraw (2D), DirectInput (ввод/вывод), DirectSound (звук) и др., встраивающиеся в систему через COM-интерфейс. Библиотека OpenGL представляет собой всего один файл, opengl32.dll, расположенный в системной директории.
Но как же тогда обновляются или совершенствуются возможности библиотеки, если файл не изменяется? DirectX, напротив, обновляется чуть ли не каждый месяц. Дело в том, что DirectX и OpenGL, в основном, не общаются с видеокартой напрямую, а используют в качестве надежного посредника ее драйвер. Вот, например, схема взаимодействия приложения и монитора компьютера с видеокартой ATI Radeon:
Рисунок 1 – взаимодействия приложения и монитора компьютера с видеокартой
Отсюда видно, что DirectX и OpenGL являются аппартно-независимыми, т.к. общаются с драйверами, которые у каждой видеокарты свои (и, естественно, являются аппартно-зависимыми).
5 Игровой движок
5.1 Что такое игровой движок?
Игровой движок – это центральный программный компонент компьютерных и видео игр или других интерактивных приложений с графикой, обрабатываемой в реальном времени. Он обеспечивает основные технологии, упрощает разработку и часто даёт игре возможность запускаться на нескольких платформах, таких как игровые консоли и настольные операционные системы, например, GNU/Linux, MacOSX и MicrosoftWindows. Основную функциональность обычно обеспечивает игровой движок, включающий движок рендеринга («визуализатор») для 2D или 3D графики, физический движок или обнаружение столкновений (и реакцию на столкновение), звук, скриптинг, анимацию, искусственный интеллект, networking, streaming, управление памятью, threading и граф сцены. Часто на процессе разработки можно сэкономить за счет повторного использования одного игрового движка для создания множества различных игр.
В дополнение к многократно используемым программным компонентам, игровые движки предоставляют набор визуальных инструментов для разработки. Эти инструменты обычно составляют интегрированную среду разработки для упрощённой, быстрой разработки игр на манер поточного производства. Эти игровые движки иногда называют «игровым подпрограммным обеспечением» (сокр. ППО; англ. middleware), так как, с точки зрения бизнеса, они предоставляют гибкую и многократно используемую программную платформу со всей необходимой функциональностью для разработки игрового приложения, сокращая затраты, сложность и время разработки – все критические факторы в сильноконкурирующей индустрии видеоигр.
Как и другие ППО решения, игровые движки обычно платформо-независимы и позволяют некоторой игре запускаться на различных платформах, включая игровые консоли и персональные компьютеры, с некоторыми внесёнными в исходный код изменениями (или вообще без них). Часто игровое ППО имеет компонентную архитектуру, позволяющую заменять или расширять некоторые системы движка более специализированными (и часто более дорогими) ППО компонентами, например, Havok– для физики, FMOD– для звука или SpeedTree– для рендеринга. Некоторые игровые движки, такие как RenderWare, проектируются как набор слабосвязанных ППО компонентов, которые могут выборочно комбинироваться для создания собственного движка, вместо более традиционного подхода расширения или настройки гибкого интегрируемого решения.
Некоторые игровые движки предоставляют только возможности 3D рендеринга в реальном времени вместо всей функциональности, необходимой играм. Эти движки доверяют разработчику игры реализацию остальной функциональности или её сбор на основе других игровых ППО компонентов. Такие типы движков обычно относят к «графическим движкам», «движкам рендеринга» или «3D движкам» вместо более содержательного термина «игровой движок». Однако эта терминология используется противоречиво: так, многие полнофункциональные игровые 3D движки упомянуты просто как «3D движки». Некоторые примеры графических движков: RealmForge, Ogre 3D, PowerRender, CrystalSpace и Genesis3D. Современные игровые или графические движки обычно предоставляют граф сцены – объектно-ориентированное представление 3D мира игры, которое часто упрощает игровой дизайн и может использоваться для более эффективного рендеринга огромных виртуальных миров.
Чаще всего 3D движки или системы рендеринга в игровых движках построены на графическом API, таком как Direct3D или OpenGL, который обеспечивает программную абстракцию GPU или видеокарты. Низкоуровневые библиотеки, например, DirectX, SDL и OpenAL, также обычно используются в играх, так как обеспечивают аппаратно-независимый доступ к другому аппаратному обеспечению компьютера, такому как устройства ввода (мышь, клавиатура и джойстик), сетевые и звуковые карты.
До появления аппаратно-ускоряемой 3D графики использовались программные визуализаторы. Программный рендеринг всё ещё используется в некоторых инструментах моделирования, для рендеринга изображений, для которых визуальная достоверность важнее производительности (количество кадров в секунду) или когда аппаратное обеспечение компьютера не удовлетворяет требованиям, например, не поддерживает шейдеры.
5.2 OpenSceneGraph
Разработчики называют OpenSceneGraph кроссплатформеным пакетом для создания графических приложений, в частности, компьютерных игр. Иными словами, движок заточен под игры, но на его основе можно делать еще много чего – например, неигровые программные модули, презентации и другой трехмерный контент.
OpenSceneGraph (далее OSG) – это open source-проект, то есть любой желающий может изменить исходный код инструментария и выложить творение своих рук в интернете. Благодаря этому движок постоянно развивается, чуть ли не ежемесячно в Сети появляются новые модули для OSG. Технология на полную катушку использует возможности OpenGL, который в последнее время набирает все большую и большую популярность среди игростроевцев.
OSG очень быстр, а картинка, которую можно создать даже без использования дополнительных модулей (то есть только при помощи базовых функций движка), вполне может потягаться по красоте с Unreal Engine первого поколения.
Откомпилировать движок можно в Visual Studio 6.0, Cygwin, Mingw и OSX. OSG умело работает с трехмерными моделями форматов .lwo, .obj, .geo, .3ds, .x, .wrl, то есть свободно оперирует с объектами, созданными в любом современном редакторе трехмерной графики (3DS Max, Maya и Lightwave 3D)
Что касается работы с 2D-изображениями, то и тут у движка все в полном порядке: поддерживается большинство распространенных графических форматов, от стандартных .bmp и .jpg до передовых .dds и .tga. Помимо этого, в OSG встроено несколько библиотек для работы со спецэффектами, системами частиц, шейдерами, ландшафтами и навигационными точками освещения.
На основе этого движка можно сделать неплохую трехмерную RPG, несложную пошаговую стратегию, залихватскую аркаду или даже космический симулятор.
5.3 GLScene
Рассмотрим основные возможности движка. Рендеринг осуществляется через библиотеку OpenGL, которая не только в несколько раз превосходит по скорости Direct3D, но и значительно проще в освоении. По сути, вам не нужно профессионально знать программирование, вы просто берете различные компоненты, которые уже спрограммированы за вас, и перетаскиваете их на форму программы. Впрочем, многие команды, функции, переменные и значения атрибутов по-прежнему вбиваются вручную.
Создатели GLScene максимально упростили процесс программирования: например, поворот и перемещение созданных объектов осуществляются с помощью специальных коротких движковых функций, а не посредством длинных команд OpenGL. Создание простых объектов вроде кубов, сфер и простеньких спрайтов также проводится с помощью простейших команд, так что игру уровня первого DOOM можно собрать из базовых форм (самому ничего рисовать не придется). Но для разработки тайтла современного уровня этого, конечно, недостаточно, поэтому GLScene поддерживает импорт 3D-моделей. Основной упор разработчики сделали на универсальный 3DS-формат. Впрочем, не «Максом» единым: OpenGL поддерживает файлы типов .obj/objf, .smd, .md2, .stl, .tin и .ply. «Оживить» объект можно как во внешнем графическом пакете, так и непосредственно из движка — набор для скелетной анимации прилагается.
Но на одних лишь примитивах и трехмерных модельках далеко не уедешь, для создания красивой картинки нужно нечто большее. И оно у OpenGL есть. На данный момент движок поддерживает практически все версии шейдеров, системы частиц (дождь, снег, туман), ряд универсальных программных модулей для создания спецэффектов. GLScene версии 1.0 научился работать с динамическими тенями, эффектами блеска и отражения. В движок были добавлены модули для работы со звуками и музыкой, а также для захвата данных с разных манипуляторов типа джойстиков и клавиатур. Отдельным пунктом идет возможность интеграции с одним из свободно распространяемых физических модулей – ODE.
5.4 The Nebula Device 2
После того как свет увидела игра Project Nomads, Nebula Device набрал популярность и не сбавляет темп по сей день. Многие разработчики выбирают именно его, особенно если собираются делать недорогой экшен или трехмерную аркаду.
Описанные выше игровые движки GLScene и OpenSceneGraph для вывода изображения на экран используют только графическую библиотеку OpenGL, а Nebula Device 2 поддерживает как OpenGL, так и Direct3D (движок по полной использует возможности DirectX 9.0). При этом Nebula Device 2 – кросс-платформенный движок, на нем можно делать игры под PC (Windows и Linux), Mac и даже Xbox.
Совсем уж здорово, что Nebula поддерживает сразу несколько широко распространенных скриптовых языков – TCL, Python и Lua. Но Nebula мало похож на конструктор для начинающих: девелоперы честно предупреждают, что их разработка – это не набор редакторов карт, трехмерных моделей и прочих удобных утилит. Чтобы сделать нормальную игру, вам сначала придется разработать инструментарий, и тут уж не обойтись без команды опытных программистов.
Игровой движок содержит модули для работы с particle-эффектами: огнем, дымом, туманом, дождем... Что касается форматов трехмерных моделей, поддерживаемых движком, то тут-то разработчики преподнесли весьма неприятный сюрприз – движок способен переваривать модели лишь трех форматов – .n3d и .nvx, которые известны только самому движку, и .obj (для импорта моделей такого формата используется специальный плагин).
Зато с 2D-изображениями проблем нет никаких. Nebula Device 2 поддерживает все известные типы графических файлов, начиная с классических .bmp и .jpg и заканчивая .png и .tga-форматами. Если говорить о современных технологиях, то тут стоит отметить, что Nebula Device 2 позволяет работать с динамическими тенями и HDR-освещением.
5.5 Unreal Engine 3
Предел мечтаний любой игрострой-компании, вот только слишком уж дорого стоит лицензия: движок по карману только самым крупным разработчикам. Давайте посмотрим для сравнения, что же предлагает Epic Games за почти миллион долларов.
UnrealEd – 3D-редактор уровней, созданный на базе Unreal Engine, один из лучших в своем роде.
В UE 3 реализована многопоточная система рендеринга Gemini, что позволяет максимально быстро и четко отрисовывать сцены и выводить на экране картинку в очень высоком разрешении, при этом в реальном времени просчитываются тени и освещение, на изображение накладываются HDR-эффекты, ну а motion blur (размытие) и depth of field (глубина резкости) вообще просчитываются за миллисекунды.
Впрочем, о том, что в плане графики движку Unreal Engine 3 нет равных, и без того знает каждый. Вот только это не единственная причина его популярности. Главное преимущество UE 3 – необычайно гибкая и удобная инструментальная база. Большинство программных элементов, которые для других движков нужно либо докупать отдельно, либо программировать самостоятельно, в UE 3 встроены по умолчанию. Смотрите сами: автоматическая генерация карт нормалей, редакторы файлов локализаций, звуков, скриптов, просмотрщики моделей и анимации, а также известный всем модотворцам редактор UnrealEd... Плюс множество конвертеров, плагинов и мини-редакторов всех сортов и калибров. По сути, приобретая лицензию на UE 3, разработчики избавляют себя от необходимости пользоваться какими-либо другими программными продуктами, кроме 3DS Max. Так что, несмотря на высокую цену движка, вложения вполне могут окупиться.
Отдельно стоит упомянуть модуль обработки физики – в Unreal Engine 3 в его роли выступает физический движок AGEIA PhysX, благодаря которому, собственно, и обеспечивается красивое падение тел персонажей, реалистичное передвижение транспортных средств, скольжение и другие геймплейные прелести.
Написание новых скриптов в UE 3 осуществляется двумя различными способами – путем визуального и обычного программирования. И если со вторым методом все более-менее ясно, то первый нуждается в некоторых пояснениях. Авторы внедрили в движок специальный модуль UnrealKismet для визуального программирования, освоить который сможет практически любой пользователь. Запускаете приложение, создаете новый файл и начинаете выстраивать цепочку из данных вам логических блоков. Например: NPC A – двигаться к отметке X, попытаться убить игрока, сесть в автомобиль и скрыться с места преступления. Замечаете? Программисты полностью избавлены от необходимости программировать скрипты с нуля, это дает колоссальный выигрыш времени.
5.6 Quest3D
В движок встроена физическая библиотека ODE (это, правда, не роскошь: данная библиотека используется в большинстве бесплатных игровых движков), вживлены качественные модули для рендеринга сцен, всевозможные редакторы частиц, скриптов и другие полезные в хозяйстве вещи.
Движок Quest3D превосходно справляется с рендерингом сцен. Водные поверхности, тени, отражения здесь ничуть не хуже, чем в других, куда более дорогих движках.
Quest3D поддерживает графическую библиотеку OpenGL, лихо справляется с обработкой теней и освещения в реальном времени, поддерживает HDRI-эффекты, DirectX-шейдеры, бампы, карты нормалей и другие графические технологии, реализованные в DirectX 9 (с DirectX 10 движок пока не дружит).
Но главный козырь этой многофункциональной системы – возможность визуального программирования приложений. Даже пользователь, никогда ранее не работавший с игровыми движками, в Quest3D сможет за несколько месяцев, а то и недель, собрать простенькую игру. Все, что от него потребуется при визуальном программировании, – умение работать с базовыми блоками (отвечающими за инициализацию сцены, расстановку источников освещения и так далее) и выстраивать логические цепочки. Ну а если вы опытный программист, то можете писать свой собственный код, используя скриптовый язык программирования LUA.
Заключение
В этой работе я рассмотрел основные тенденции развития компьютерных игр, а также последние версии программных средств для разработки игр.
Вывод краток и прост время графических как локомотивов, вытягивающих игры на верхушки хит-парадов, проходит. Красивая графика и реалистичная модель мира – это то, что сейчас уже является требованием по умолчанию. Да, совершенствовать "упаковку" можно будет до бесконечности, но революционных шагов в этом плане ожидать не стоит. Через пару лет новшества уже будет трудно разглядеть невооруженным глазом даже после большой рецензии со скрупулезнейшим разбором игры.
Литература
1 Гродек П. Как все начиналось. – [Электронный ресурс]
http://www.computer-museum.ru/games/genesis.htm.
2 Компьютерные игры. Как это делается. – Серия «Библиотека game.xe». – Логрус.РУ, 2000.
3Все о DirectX. – Журнал Computerbild № 19 / 2007.
4 Что такое компьютерная игра и куда мы движемся? – Журнал “Игромания” №12/51 2001.
5 Игровая индустрия на рубеже. – Журнал “Игромания” №1/100 2006.
6 Игровой движок. – [Электронный ресурс] Материал из Википедии – свободной энциклопедии.
7 Индустрия компьютерных игр "сегодня" и "завтра". –
[Электронный ресурс]http://www.x-sky.ru/2008/03/29/industrija-kompjuternykh-igr-egodnja.html#
8 Антон Звягинцев. – [Электронный ресурс] Обзор DirectX9. http://www.gamedev.ru/articles/read.shtml?id=10102
9 Обзор OpenGL. – [Электронный ресурс]
http://www.csportal.ru/print.php?article=Obzor-OpenGL&place=gd
10 Библиотека OpenGL. – [Электронный ресурс]
http://www.csportal.ru/print.php?article=Osnovi-1-biblioteki-OpenGL&place=gd
11 Пламенные моторы, часть 2. – Журнал “Игромания” №3/126 2008
12 Пламенные моторы . – Журнал “Игромания” №11/122 2007