Сегодня я начинаю цикл статей, для всех желающих познакомиться со сравнительно новой технологией для создания игр от компании Microsoft - XNA.
Часть
1:
Основы
программирования игр и знакомство с платформой XNA
Процесс создания
современной компьютерной игры простым назвать никак нельзя. Если говорить о таких творениях как STALKER или CRYSIS,
то это результат напряженной и кропотливой работы десятков, а иногда и сотен
людей. Эти коллективы состоят не только из программистов, но так – же из
художников, дизайнеров уровней, звуковиков, тестеров, специалистов по
моделированию трехмерных моделей, созданию анимации и это еще далеко не всё.
Становится ясно, что создавать такие проекты по плечу только серьезным
компаниям, с большим количеством сотрудников. К тому же, до недавних пор,
написание графических приложений для
платформы . NET
было
задачей не тривиальной. Широко известные
графические API,
такие как OpenGL
и
DirectX,
использовать совместно с .NET не представляется возможным из-за того, что их
подключаемые библиотеки рассчитанные на язык C
+ +. Преобразование этих файлов к .NET проблему не решает, так как зачастую переводится
только «ядро» API
без вспомогательных библиотек. Так вот, для исправления ситуации, Microsoft выпустила
XNA
–
инструментарий разработки кроссплатформенных
графических приложений для .NET, рассчитанных на сравнительно небольшие группы
разработчиков. В основе XNA
лежит
сборка XNA
Framework.
Она представляет собой набор высоко - производительных библиотек .NET для эффективности
работы с различными подсистемами
компьютера, например звуковые карты, джойстики и т.д. К тому же в XNA, отсутствует жесткая привязка к Windows, и это дает
возможность запускать графические приложения написанные под XNA на других платформах,
поддерживающих XNA
Framework.
XNA практическое
применение
1.Подготовка
к работе:
Платформа XNA предназначена для облегчения жизни
разработчикам, которые пишут игры для запуска под операционной системой Windows, для игровых приставок
X
Box
360 и ZUNE и Windows
Mobile. Во время работы мы будем использовать язык программирования C#
, и для написания шейдеров HLSL (high level shader language), о котором речь пойдет
в следующих главах. Так – же, в конце каждой статьи вы
найдете примеры исходного кода описанные в последующих главах.
Для создания игр вам
потребуются следующие инструменты разработки
и умение пользоваться ими :
1.Microsoft Visual
Studio или студия С# express
(которая является бесплатной).
2.Microsoft Game
Studio 3.1.
3.Графический редактор (не обязательно)
4.3D редактор (не обязательно)
5.Установленные
компоненты разработки XNA framework. Эти компоненты будут автоматически установлены на ваш компьютер во
время установки GameStudio 3.1, но для
того, что - бы ваша игра запускалась на других машинах, вам необходимо будет
поставлять эти компоненты вместе с игрой, так же как большинство современных
игр поставляются в комплекте с библиотеками DirectX, или OpenGL.
2.Создание
пустого проекта:
1. Создайте новый проект в Visual Studio путем нажатия на
кнопку Create
Project
2. В появившемся диалоговом окне выберите тип проекта XNA GameStudio 3.1
3. В правой части формы выберите тип
проекта Windows
Game(3.1)
4. По желанию можете присвоить ему своё
название и нажмите OK.
После этого Visual Studio сгенерирует исходный проект готовый
для написания вашей будущей игры. В нем мы видим
список подключаемых библиотек Microsoft.Xna.Framework, и несколько
обязательных методов для начала работы:
1. Это конструктор нашего пока что
единственного класса Game1,унаследованного от Microsoft XNA Framework Game, и реализующий его методы. В
нем уже создан экземпляр нашего
графического устройства (видеокарты), и указывается корневая папка игры в которой будут храниться ресурсы.
2. Метод
Initialize
служит для тех же целей ,что и в любой другой программе
3. Метод
Load
Content служит для загрузки файлов ресурсов таких как
текстуры , модели, эффекты ,аудио или видео файлы.
4. Метод Unload Content служит
для выгрузки используемых файлов и освобождения ресурсов.
5. Метод Update обновляет данные используемые в
игре, всю игровую логику и математику пишут преимущественно именно здесь.
В
этом методе уже имеется строчка, которая позволяет используя игровую приставку X Box 360, осуществить выход из игры.
6.
Метод Draw занимается только рисованием игры
на экране монитора, и считается хорошим тоном программирования игр не писать в
нем лишний код, который можно было написать в методе Update.В этом методе так же имеется
строчка
GraphicsDevice.Clear(Color.CornflowerBlue);
которая очищает экран от предыдущего изображения для создания нового,
подобно кинопленке , кадр за кадром. По
умолчанию цвет экрана голубой. Важно отметить, что при
компиляции файлов ресурсов, все выходные файлы будут иметь расширение .xnb, поэтому, имея в одной папке с
ресурсами файлы с одинаковым названием, но разными расширениями мы получим
ошибку компиляции, так как их названия с расширениями станут совпадать. Вот и все, пустой
проект создан. Что - бы посмотреть на результаты своего труда, запускаем debug, и видим свое творение. Это пустое окно,
окрашенное в голубой цвет.
Замечательно то, что для достижения этого же результата например в DirectX на С++, нам пришлось бы потратить времени и сил куда больше, чем в XNA. Как видите, нас избавили от рутинного кодирования инициализации окна, создания графического устройства и многого-многого другого. Фреймворк XNA уже содержит удобные в использовании классы по управлению графическим API, лежащим в его основе. Им является Microsoft DirectX, но в .NET оболочке и частично переписаный специально для нужд новой платформы.
На этом первое знакомство с XNA закончено. В следующий раз я расскажу, как вывести первое
"Hello World" и первую картинку (спрайт) на экран.
Всем, кто решился это повторить - Удачи!
Замечательно то, что для достижения этого же результата например в DirectX на С++, нам пришлось бы потратить времени и сил куда больше, чем в XNA. Как видите, нас избавили от рутинного кодирования инициализации окна, создания графического устройства и многого-многого другого. Фреймворк XNA уже содержит удобные в использовании классы по управлению графическим API, лежащим в его основе. Им является Microsoft DirectX, но в .NET оболочке и частично переписаный специально для нужд новой платформы.
На этом первое знакомство с XNA закончено. В следующий раз я расскажу, как вывести первое
"Hello World" и первую картинку (спрайт) на экран.
Всем, кто решился это повторить - Удачи!
Комментариев нет:
Отправить комментарий