netlib.narod.ru< Назад | Оглавление | Далее >

Глава 5. Пишем собственный графический движок с XNA

В первой части книги вы познакомились с XNA Framework, визуализацией двухмерной графики с помощью класса SpriteBatch, а также создали несколько интересных игр. Теперь пришло время исследовать намного более захватывающий мир программирования трехмерной графики. Создание трехмерной игры требует гораздо больше работы, чем сборка двухмерной игры, но большинство игр просто невозможны без широкого использования трехмерных графических технологий. Неоторые игры, например стратегические, можно реализовать в 2D, и многие успешные стратегические игры (StarCraft, WarCraft, Command & Conquer, Age of Empires) показывают, что двухмерные игры все еще остаются популярными. Но если вы взглянете на современные «стрелялки», то поймете, что они невозможны без трехмерной графики, и зачастую чем лучше и реалистичней графика, тем больше удовольствие от игры. Другие игровые жанры, такие как единоборства, приключения, спортивные игры и т.д., также извлекают преимущества из развития графики в последние годы. Конечно, Pong и ранние игры в теннис были увлекательны 10 или 20 лет назад, но они несравнимы с современными спортивными играми.

XNA — это великолепный каркас для быстрого создания двухмерных игр и, даже если вы одиночка, то, скорее всего, сможете быстро сформулировать идею игры, создать немного графики, или найти того, кто создаст ее для вас, и запрограммировать игру полностью в течение нескольких недель или месяцев.

Однако, большинство игровых программистов гораздо больше думают о создании трехмерных игр, и общая ошибка, совершаемая почти каждым из них, — сравнение собственной игровой идеи с наиболее успешными коммерческими играми, которые создаются огромными студиями в течение нескольких лет. Если вы одиночка, то почти наверняка не сможете конкурировать со следующей игрой EA, создаваемой опытной игровой студией, где работает более 100 человек, даже если думаете, что их игра не так хороша, как могла бы быть.

Но это не имеет значения; большинство из нас приходят в мир разработки игр только потому что мы любим создавать игры, и часто потому что мы думаем, что можем это делать гораздо лучше, чем другие парни. Хорошо то, что, хотя и трудно создать полнофункциональную трехмерную игру, которая может конкурировать с современными хитами, вам надо с чего-то начинать, и вступление в мир трехмерной графики становится все легче и легче. Доступно множество замечательных сайтов, уроков, каркасов приложений и книг для быстрого проведения даже очень неопытного программиста через первые этапы создания трехмерной графики для игр.

Поскольку доступно так много ресурсов, я не буду сосредотачиваться на основах математики, том как работать с матрицами и прочих основах трехмерной графики. Это было бы скучно для большинства программистов уже знакомых с темой и отняло бы много страниц у более интересных проектов этой книги. Точно так же, как в первой главе книги я рекомендовал начать с чтения учебника по C#, если вы еще не знакомы с этим языком, сейчас я предлагаю вам взять книгу о трехмерной графике, если вы действительно хотите досконально разобраться в основах. Если раньше вы уже работали с Direct3D или OpenGL, вы уже готовы двигаться дальше и должны знать все основы (надеюсь, это справедливо для большинства читателей).

Эта глава использует классический подход с первоначальной записью требований и созданием тестовых модулей по ним, и последующим переходам к деталям каждого из потребовавшихся новых классов. Как говорит название главы — ваша цель заключается в создании собственного графического движка и базового каркаса для всех проектов из оставшейся части книги. В игре Тетрис из предыдущей главы уже было много полезных вспомогательных классов, некоторые из графических классов будут подвергнуты рефакторингу в этой главе, а также вы добавите некоторые новые классы. Рефакторинг означает, что классы будут переписаны для соответствия новым требованиям.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz