В этой лекции мы поговорим об игровых ресурсах, о редакторах для создания игровых ресурсов, а так же обсудим историю, развитие и особенности применения XNA Game Studio 2.0/3.0
Из чего состоит игра: игровые ресурсы
Любая игра состоит из множества частей. Но среди них можно выделить две основных. Первая – это игровые ресурсы, и вторая – это программный код.
Игровые ресурсы – это графические, музыкальные и иные ресурсы, которые используются для оформления игры. Рассмотрим различные форматы, в которых хранятся игровые ресурсы, с которыми можно работать в XNA Game Studio 2.0.
Графические файлы
Графические файлы используются для хранения изображений. Как правило, это – графические представления игровых объектов, которые применяются в двумерных или в псевдотрехмерных играх, когда трехмерный вид игровых объектов достигается лишь художественными средствами, без использования технологий трехмерной графики. Так же эти файлы могут быть использованы для создания элементов оформления игры и как текстуры для наложения на трехмерные модели.
JPEG
JPEG – это стандарт хранения файлов изображений, разработанный специально для хранения цифровых фотографий. JPEG расшифровывается как Joint Photographic Experts Group – именно так называлась рабочая группа, которая разработала этот стандарт. Особенностью JPEG является возможность сжатия изображения с потерями качества. Как правило, в JPEG выделяют 10 уровней сжатия (от 1 до 10), однако эти изображения можно сжимать и с более точным указанием уровня сжатия. Чем сильнее сжатие – тем сильнее потери качества. На невысоких уровнях сжатия JPEG-файлы практически не содержат так называемых артефактов сжатия. В случае с JPEG это проявляется в заметном искажении изображения, особенно – содержащего четкие границы между цветами, четкие линии. Дело в том, что при сжатии по алгоритму JPEG изображение разбивается на фрагменты 8х8 пикселей. После этого цветовая информация о пикселях одного квадрата сжимается, яркостная же информация остаётся в более сохранном виде.
Как правило, в JPEG хранят различные двумерные изображения, которые можно использовать для организации элементов интерфейса пользователя, для создания различных экранов игры (экран приветствия, экраны с информацией о набранных очках и так далее). В JPEG можно хранить изображения (их называют спрайтами), которые используются в двумерных играх в качестве игровых объектов (преимущественно – прямоугольной формы), в качестве фоновых изображений.
Лучше всего использовать JPEG для хранения цветных изображений с плавными цветовыми переходами. В частности, это могут быть фотографии, нарисованные игровые объекты и так далее. JPEG-файлы имеют расширение JPG или JPEG.
Для создания JPEG-файлов с успехом можно использовать популярные графические редакторы – такие, как Adobe Photoshop различных версий или Paint.NET который распространяется свободно.
PNG
Формат PNG (Portable Network Graphics) отличается от формата JPG тем, что использует алгоритмы сжатия, сжимающие изображение без потери качества. В результате оказывается, что изображения, имеющие четкие цветовые переходы (такие, как схемы, графики, изображения для простых элементов управления) могут быть довольно сильно сжаты в PNG-файлах. Если изображение имеет плавные цветовые переходы – лучшим выбором для его сжатия будет JPG, хотя и PNG вполне можно использовать. Как и JPG, данный формат поддерживает полноцветные изображения, однако изображение можно создать с использованием нескольких фиксированных цветов, что идет на пользу размеру графического файла, и, естественно, при правильном подборе цветов, не сказывается на его качестве.
Формат PNG был разработан для замены устаревшего, но все еще популярного формата GIF. Основное назначение GIF-файлов – простая интернет-графика.
PNG-файлы имеют расширение .PNG. Для их создания можно использовать растровые графические редакторы, такие, как Adobe Photoshop.
Еще одна важная особенность формата PNG – поддержка прозрачности. То есть при создании файла можно указать, какие из пикселей изображения считать прозрачными. В результате PNG идеально подходит для хранения графического представления двумерных игровых объектов сложной формы.
TGA
TGA (Truevision Graphic Adapter), TARGA - Truevision Advanced Raster Graphics Adapter – это графический формат, который используется преимущественно для хранения игровых текстур. Этот формат был специально создан для хранения текстур, он используется во многих существущих играх именно для этих целей. Он поддерживает полноцветные изображения (8, 16, 24, 32-битные), поддерживают 8-ми битный альфа-кана для указания прозрачных участков изображения.
Текстура – это растровое (точечное) изображение, которое накладывается на поверхность полигона, являющегося частью трехмерной модели. Текстуры позволяют придавать трехмерным моделям цвета, создавать видимость рельефа, мелких деталей модели. При проектировании 3D-модели создание мелких деталей обычно оказывается слишком ресурсоемким, использование же текстур позволяет получать привлекательно выглядящие модели, построенные с использованием сравнительно небольшого количества трехмерных элементов. Сегодня трехмерные модели создаются с высоким уровнем детализации – мощности современных компьютеров хватает для реалистичной обработки таких моделей. В играх прошлых лет модели обычно выглядят схематично (например, профиль колеса автомобиля в играх, использующих низкополигональные модели, может выглядеть как многоугольник, но не как окружность), однако текстурирование позволяет даже таким моделям выглядеть достаточно реалистично.
Текстуры различаются глубиной цвета и разрешением – чем выше и то и другое – тем выше качество изображения. В применении к текстурам существует такое понятик, как тексель – число пикселей, приходящееся на минимальную единицу текстуры.
TGA-файлы имеют расширение .TGA. Для создания TGA-файлов можно применять всё тот же Adobe Photoshop и другие редакторы. Например, бесплатный редактор Paint.NET
DDS
DDS (Direct Draw Surface) – это графический формат, разработанный специально для использования в DirectX SDK. Он предназначен преимущественно для хранения текстур. Благодаря особенностям формата – поддержке хранения сжатых и несжатых текстур, аппаратной поддержке, этот формат идеален для хранения игровых текстур.
DDS-файлы имеют расширение DDS. Для их создания можно использовать плагины для обычных графических редакторов, для работы с такими файлами созданы специальные наборы утилит и плагинов. Например, это NVIDIA Texture Tools , The Compressonator от ATI/AMD. Плагин для редактирования DDS-файлов в Photoshop.
BMP
BMP (Bitmap) – это графический формат, который хранит изображение в несжатом виде. Он поддерживает алгоритм сжатия, который, однако, используется достаточно редко. Создавать BMP-файлы можно практически во всех растровых редакторах. Особенность BMP – широкое распространение при создании графических интерфейсов пользователя в различных Windows-программах. BMP-файлы обычно имеют сравнительно большой объём. Файлы трехмерных моделей
Трехмерные модели используются в трехмерных, объемных играх. Для придания им реалистичного вида, на такие модели обычно накладывают файлы текстур.
FBX, X
FBX (Autodesk FBX), – это универсальный формат для хранения трехмерных моделей и сопутствующей информации. Он используется во множестве трехмерных приложений, в частности, весьма популярен в компьютерных играх.
Существуют плагины для популярных программ создания трехмерной графики, позволяющие конвертировать созданные в них модели в этот формат. ПО для работы с FBX-файлами. Формат X – это формат трехмерных файлов, который используется DirectX.
Файлы шрифтов
SPRITEFONT
Это xml-файл с настройками шрифта. Он содержит инструкции, касающиеся визуализации шрифта в игровом окне. Файлы этого типа имеют расширение .SPRITEFONT.
Звуковые файлы
XAP
XNA имеет специальный звуковой редактор - XACT - Microsoft Cross-Platform Audio Creation Tool. Это – основа XNA Framework Audio API. Редактор позволяет создавать файлы в формате .XAP. Основой для этих файлов являются стандартные звуковые .WAV-файлы. В XACT осуществляются операции по подготовке звуков перед импортом их в игру. После того, как .XAP-проект импортирован в игру, звуками, включенными в него, можно управлять. В частности, звуки можно воспроизводить, управлять параметрами воспроизведения, звуковыми эффектами.
Примечание: в XNA 3.0 все на много проще, звуковые файлы импортируются через контент пайплайн как и любые другие ресурсы.
Файлы эффектов
FX
FX-файлы – это файлы эффектов, которые применяются при рендеринге трехмерных изображений. В формате FX хранятся шейдерные программы. Для разработки FX-файлов можно применять программу FX Composer от nVidia.
Все вышеперечисленные форматы файлов – это игровые ресурсы, которые могут быть включены в XNA-проект.
Игровая терминология
Игровая терминология складывается под сильным влиянием англоязычных названий. Часто в русском языке довольно сложно найти хорошую аналогию принятым английским терминам, поэтому в сфере игровой терминологии существует двойственность – довольно часто создатели игр пользуются англоязычными терминами в то время, как и русскоязычные названия так же находят применение. Рассмотрим некоторые термины, которые используются в игровой индустрии.
Sprite – этот термин часто заменяют русскоязычным неологизмом спрайт – словарь Lingvo 12 определяет понятие «спрайт» как «элемент динамического графического отображения». В игровой индустрии синонимами слова спрайт являются такие слова, как «изображение», «картинка», иногда пользуются словом «текстура», однако обычно это понятие несет несколько иную смысловую нагрузку. Как правило спрайт – это двумерное изображение, причем, в узком смысле слова это – лишь изображение, а в широком – это игровой объект, который обладает гораздо более широким набором возможностей, нежели обычное изображение. Спрайты имеют прямоугольную форму, однако в компьютерных играх часто встречаются непрямоугольные объекты. Это достигается за счет задавания прозрачных областей при рисовании спрайта. Термин «анимированный спрайт» относится к спрайту, который выводится с использованием анимации, создающей иллюзию движения, перемещения каких-либо частей изображения – движение рук и ног персонажа при перемещении, движение колёс автомобиля, лопастей пропеллеров самолёта и т.д. Анимация обычно реализуется поочередной сменой нескольких статичных изображений, специально подготовленных для того, чтобы создать иллюзию движения.
Texture – текстура. Обычно текстурами называют двумерные изображения, которые «накладывают» на трехмерные модели. В терминологии XNA понятие текстуры и спрайта при разговоре о двумерных игровых объектах совпадает.
Background – фон. Так называется изображение, обычно – соответствующее размерами размерам игрового поля, которое является фоном для других изображений. Фон может быть неподвижным и подвижным. Подвижный фон (scrolling background) используется в играх, называемых скроллерами (scrollers). Скроллинг – это один из принятых игровых терминов. Он означает прокрутку, перемещение содержимого окна. Скроллинговые игры чрезвычайно распространены среди двумерных игр. Например, использование скроллингового фона позволяет создать иллюзию движения в двумерном гоночном симуляторе. Фон в двумерной игре может состоять из нескольких частей, движущихся с различной скоростью – это позволяет создать эффект трехмерности игрового мира.
2D-game – двумерная игра – игра, в которой использованы двумерные изображения.
3D-game – трёхмерная игра – использующая трехмерные модели и трехмерный игровой мир.
Tile – тайл – небольшое изображение, которое используется для конструирования уровней в играх. Tile можно перевести как «мозаика» или «черепица».
Polygone (полигон, многоугольник) – пространственный многоугольник, который используется для создания трехмерных объектов. Как правило, в компьютерной графике используются треугольники.
Pixel (пиксель) – наименьший элемент растрового изображения, точка, отображаемая на экране. Обычно в пикселях измеряют разрешение текстур (например – 1024х768), экранное разрешение монитора, размеры игровых окон. Слово Pixel – это аббревитура от Picture's ELement.
Texel (тексель) – точка текстуры в трехмерном пространстве.Слово Texel – это сокращение от Texture Element.
Voxel (воксель) – точка трехмерного изображения. Это слово – аббревиатура от Volumetric Pixel – объемный пиксель.
Texture Filtering (фильтрация текстур) – уменьшение искажений при наложении текстур на трехмерный объект. Camera (камера) – так называют точку в игровом пространстве, с которой игрок видит игровой мир. С точки зрения положения камеры игры можно подразделить на игры от первого лица (камера расположена так, что реализует вид как бы «из глаз» персонажа), игры с видом слева-сверху (стратегии), игры с видом сзади – камера располагается обычно позади игрока и немного выше его. Существуют и игры, где камера может принимать различные позиции, например, реализующие вид из глаз персонажа и вид сзади
Transparency (прозрачность) – прозрачными могут быть части двумерных изображений – это позволяет создавать изображения сложной формы, которые, фактически, ограничены прямоугольником. Прозрачными бывают и объекты в трехмерном игровом мире – например – это может быть прозрачная вода или стекло, определенным образом преломляющие свет.
Light Model (модель освещения) – способы моделирования освещения объектов.
Обзор XNA Game Studio 2.0. – история, развитие, особенности применения
На рис. 2.1. вы можете видеть логотип XNA. Обратите внимание на то, что одна из линий, составляющих букву X, построена из двух черточек и двух точек. Код Морзе определяет -..- как X, -. – как N, .- - как A. XNA – это не акроним (XNA’s Not Acronymed) – именно так в FAQ, посвященном XNA, представители Microsoft отвечают на вопрос о том, что же означает термин XNA.
Рис. 2.1. Логотип XNA
XNA Game Studio – это среда для разработки компьютерных игр, которые могут работать на платформах Windows и Xbox 360. Мы будем работать с XNA Game Studio 2.0. Эта версия среды разработки совместима с Visual Studio 2005 и Visual С# 2005 Express. Фактически, XNA Game Studio 2.0. – это набор библиотек (XNA Framework) и некоторых специальных инструментов, предназначенных для создания игр. Причем, работа по программированию игры ведется на языке C# либо в среде Visual C# 2005 Express, либо в среде Visual Studio 2005.
XNA подходит для различных категорий создателей игр, которых интересует разработка игр для Windows и Xbox 360. Дело в том, что весь необходимый инструментарий – XNA Game Studio 2.0. и Visual C# 2005 Express, а так же – документацию к этим продуктам – можно бесплатно загрузить с сайта Microsoft.
После скачивания дистрибутивов достаточно установить Visual C# 2005 Express, после чего – XNA. В результате, вы сможете создавать XNA-проекты в Visual C# (рис. 2.2.).
Рис. 2.2. Игровые XNA-проекты в Visual C# 2005
История и развитие
XNA Professional и XNA Express
Первая версия XNA вышла в двух вариантах в 2006 году. Это были XNA Professional и XNA Express. XNA Express была предназначена для любительского использования совместно со средой разработки Visual C# 2005 Express Edition, а версия Professional – для профессиональных разработчиков, работающих в Visual Studio 2005
XNA Game Studio 2.0
XNA 2.0. была анонсирована в августе 2007 года. Она сочетает в себе возможность работы в Visual C# 2005 Express Edition и в Visual Studio 2005, объединяя возможности двух предыдущих вариантов. Кроме того, многие компоненты XNA подверглись улучшению.
XNA Game Studio 3.0
В 2008 году была анонсирована XNA Game Studio 3.0. Её главная особенность в том, что эта версия XNA поддерживает создание игр для портативного медиаплеера Microsoft Zune. XNA 3.0.
Подробности о XNA Game Studio 2.0
XNA состоит из нескольких ключевых компонентов. В частности, это XNA Framework, Content Pipeline, XACT. XNA Framework
XNA Framework – это набор библиотек, которые содержат классы, необходимые при разработке игры.
Microsoft.Xna.Framework – содержит наиболее часто используемые классы – такие, как таймеры и игровые циклы.
Microsoft.Xna.Framework.Audio – позволяет загружать и проигрывать музыкальные фрагменты в игре.
Microsoft.Xna.Framework.Content – содержит компоненты Content Pipeline (о Contetnt Pipeline мы поговорим ниже).
Microsoft.Xna.Framework.Design – позволяет заниматься конверсией типов данных.
Microsoft.Xna.Framework.GamerServices – содержит классы, обеспечивающие различные функции для взаимодействия с игроком. Например – хранение данных играющего.
Microsoft.Xna.Framework.Graphics – работа с графикой – обработка и вывод изображений.
Microsoft.Xna.Framework.Graphics.PackedVector – содержит специальные типы данных, количество битов которых не кратно 8.
Microsoft.Xna.Framework.Input – поддерживает работу с устройствами ввода. Это – мышь, клавиатура и игровой манипулятор (Xbox 360 Controller)
Microsoft.Xna.Framework.Net – классы, поддерживающие создание многопользовательских сетевых игр.
Microsoft.Xna.Framework.Storage – классы для работы с файлами.
Content Pipeline
Content Pipeline (конвейер контента) предназначен для унификации включения в игру различных игровых ресурсов. Он позволяет автоматически конвертировать 2-х и 3-х мерные графические ресурсы, звуки (после предварительной обработки в XACT) в формат, который можно использовать для Windows-игр и для Xbox-игр. Content Pipeline – это очень важная особенность XNA, так как он позволяет снять с разработчика задачу подготовки контента различного формата для игры – всё, что нужно сделать для добавления ресурса в игру – загрузить его в игровой проект с помощью средств, представляемых для этого XNA Framework. Операции по преобразованию файлов различного типа в формат, подходящий для использования в игре, проводится автоматически. На рис. 2.3. вы можете видеть упрощенную схему загрузки данных с использованием Content Pipeline.
Данные в форматах, которые получаются на выходе различных программ по созданию контента, обрабатываются импортерами и преобразовываются во внутренний формат.
Этим процессом можно управлять, создавать собственные контент-импортеры (content importers) и контент-процессоры (content processor). Контент-импортеры преобразуют игровые ресурсы в формат XNA Game Studio Content DOM (document object model). Далее, контент-процессоры преобразуют данные из DOM-формата в формат, пригодный для компиляции и использовании в игровых проектах. XNA поставляется с большим набором стандартных импортеров и процессоров, при необходимости этот набор может быть расширен.
XACT
XACT - Microsoft Cross-Platform Audio Tool – это инструмент для обработки звука, пригодного для включения в XNA-проекты. XACT – это звуковой редактор, который позволяет создавать .XAP-проекты, включающие в себя звуки и параметры настройки звучания. Звуки из XAP-проектов можно воспроизводить в играх, управляя их воспроизведением. Например, можно включать и выключать воспроизведение звуков, управлять их громкостью, применять к ним различные эффекты и т.д.
Применение XACT направлено на унификацию озвучивания Windows-игр и игр для Xbox 360.
Вопросы
1) Этот стандарт хранения изображений разработан специально для хранения цифровых фотографий. Фотоснимки в этом формате могут быть очень сильно сжаты, однако, это ведет к потерям качества. О каком стандарте идет речь?
a. PNG
b. JPEG
c. BMP
d. DDS
e. TGA
2) Этот стандарт сжатия изображений умеет сжимать их без потери качества, поддерживает альфа-каналы. Он пришел на смену популярному некогда стандарту хранения изображений GIF. О каком стандарте идет речь?
a. PNG
b. JPEG
c. BMP
d. DDS
e. TGA
3) Основное назначение этого формата – хранение игровых текстур. Какой это формат?
a. PNG
b. JPEG
c. BMP
d. DDS
e. TGA
4) Этот графический формат разработан специально для использования в DirectX SDK. Как правило, для работы с файлами этого формата требуется установка плагинов для популярных графических редакторов, либо использование специальных редакторов. О каком формате идет речь?
a. PNG
b. JPEG
c. BMP
d. DDS
e. TGA
5) Файлы этого формата часто используются для создания элементов интерфейса пользователя в Windows-программах. Формат обычно хранит изображения в несжатом виде, поэтому они имеют достаточно большой объем. Этот формат поддерживается практически всеми графическими редакторами.
a. PNG
b. JPEG
c. BMP
d. DDS
e. TGA
6) FBX и X – это форматы файлов, предназначенные для хранения…
a. Звуковой информации
b. Растровой графической информации
c. Трехмерных моделей
d. Шрифтов
7) XAP-проекты используются в XNA для хранения…
a. Звуковой информации
b. Растровой графической информации
c. Трехмерных моделей
d. Шрифтов
8) Пиксель (Pixel) – это
a. Двумерная игра
b. Пространственный многоугольник
c. Наименьший элемент растрового изображения
d. Небольшое изображение, которое используется для конструирования уровней в играх
9) Тайл (Tile) – это
a. Двумерная игра
b. Пространственный многоугольник
c. Наименьший элемент растрового изображения
d. Небольшое изображение, которое используется для конструирования уровней в играх
10) Полигон (Polygone) –это
a. Двумерная игра
b. Пространственный многоугольник
c. Наименьший элемент растрового изображения
d. Небольшое изображение, которое используется для конструирования уровней в играх
11) XNA Framework – это
a. Графический редактор
b. Набор библиотек, которые содержат классы, необходимые при разработке игры
c. Набор технологий, предназначенный для унификации включения в игру различных игровых ресурсов
d. Инструмент для обработки звука
12) XNA Content Pipeline – это
a. Графический редактор
b. Набор библиотек, которые содержат классы, необходимые при разработке игры
c. Набор технологий, предназначенный для унификации включения в игру различных игровых ресурсов
d. Инструмент для обработки звука
13) XACT – это
a. Графический редактор
b. Набор библиотек, которые содержат классы, необходимые при разработке игры
c. Набор технологий, предназначенный для унификации включения в игру различных игровых ресурсов
d. Инструмент для обработки звука
Задание
Если вы занимаетесь освоением этого курса самостоятельно – сейчас самое время скачать и установить программы, которые понадобятся вам при разработке ваших собственных игр. Как мы уже говорили, XNA Game Studio 2.0. и Visual C# 2005 Express, а так же – документация к ним – это бесплатные продукты. Однако, для работы вам понадобятся, как минимум, графический редактор, редактор трехмерных моделей. Некоторые из подобных программ бесплатны, некоторые же вам придется приобрести.
Буква Х в азбуке Морзе = .... (четыре точки)
Буква N в азбуке Морзе = -. (тире и точка)
Буква А в азбуке Mорзе = .- (точка и тире)
Не надо неправильно давать расшифровку абревиатуры логотипа "XNA"
Пожалуйста, авторизуйтесь для добавления комментария.