Основы разработки компьютерных игр в XNA Game Studio
Введение
Курс, первую лекцию которого вы читаете, посвящен разработке компьютерных игр в Microsoft XNA Game Studio. Для того, чтобы продуктивно изучать его, вы должны обладать знаниями в области .NET Framework, владеть основами объектно-ориентированного программирования на C#. Современные парадигмы программирования основаны на объектно-ориентированном подходе. Среда разработки игр XNA – не исключение. Вы вполне можете начинать заниматься по данному курсу, обладая лишь начальными знаниями о C#, однако понимание принципов и механизмов ООП необходимо для глубокого понимания принципов функционирования XNA и игр, которые разрабатываются в этой среде.
Разработка компьютерных игр – это огромная индустрия, но, как ни странно, в России очень сложно найти учебное заведение, в учебных программах которого есть курсы, посвященные созданию игр. Конечно, из отдельных дисциплин, преподаваемых на специальностях, связанных с информационными технологиями, можно взять знания, необходимые для создания компьютерных игр, а простейшие игры, созданные с помощью самых разных сред разработки – это одно из распространенных увлечений начинающих программистов. Однако до сих пор нет такой дисциплины, как «Разработка компьютерных игр». Человек, который хочет связать свою жизнь с разработкой компьютерных игр или даже просто попробовать свои силы в этом деле, вынужден заниматься самообучением. Разработчик компьютерных игр может воспользоваться огромным количеством разнообразных инструментов. Для данного курса была избрана среда разработки Microsoft XNA Game Studio 2.0. Позже мы подробно поговорим о её особенностях. Здесь лишь хочется сказать, что эта среда позволяет разрабатывать игры для ПК под управлением Windows и для игровой приставки Microsoft XBOX 360. Данный курс ориентирован на разработку игр для ПК, хотя, если вы сможете создать XNA-игру для ПК, вы без особенных проблем сможете изменить её таким образом, чтобы сделать кросс-платформенной.
Курс состоит из 5 лекций, двух семинарских занятий и 18 лабораторных работ. Каждая лабораторная работа содержит описание нескольких игровых проектов с разъяснениями концепций, использованных при их создании. Ко всем лабораторным работам есть одно общее задание – постарайтесь самостоятельно воспроизвести и понять те примеры, которые рассматриваются в работе. После того, как вы убедитесь в том, что вы освоили примеры, приведенные в работах – вы можете создавать собственных проекты, комбинируя полученные знания и экспериментируя с ними.
Одна из лабораторных работ – тринадцатая – предусматривает проведение конкурса разработчиков компьютерных игр. Если вы освоите предшествующий ей материал, вы, уверены, с удовольствием примете участие в таком конкурсе.
Среди материалов курса вы найдете практикум – список игровых тем с методическими указаниями по подходу к работе над игровыми проектами. Эти темы вы можете использовать при выборе игрового проекта, который вы решите реализовать.
Освоив данный курс, вы сможете самостоятельно заниматься разработкой разнообразных компьютерных игр на базе XNA Game Studio. Вы будете владеть ключевыми технологиями XNA, научитесь применять их на практике. Это откроет вам широкие перспективы дальнейшего «игрового» образования.
Лекция №1: Основы разработки компьютерных игр
Эта лекция посвящена основам разработки компьютерных игр. Здесь мы будем говорить об играх и об их создании без рассмотрения конкретных инструментов.
Многие учебники начинаются с исторической справки – мы не будем отходить от этой традиции.
1.1. Очерки истории компьютерных игр
История видеоигр начинается в пятидесятых годах прошлого века. Тогда появились первые устройства, которые позже превратились в игровые приставки, портативные игровые консоли и персональные компьютеры, которые сегодня являются старейшей игровой платформой.
Термин «видеоигры» (video games) сегодня используется для обозначения всех видов игр, взаимодействие с которыми организовано с помощью различных устройств для отображения видеоинформации. В эту категорию попадают компьютерные игры, игры для игровых приставок, для мобильных устройств.
Рассмотрим основные этапы развития видеоигр.
1940-е годы
Компьютерные игры ведут свою историю с 1947 года. Тогда была создана первая игра – ракетный симулятор. Эта игра вряд ли смогла бы стать массовой – а массовость – это один из признаков современных игр. Она была реализована с помощью запатентованной в 1947 году катодно-лучевой трубки. Игрок мог управлять световым пятном – ракетой, которой нужно было поразить цель. Причём, так как в те времена катодно-лучевые трубки были чрезвычайно ограничены в возможностях, цель была просто нарисована и прикреплена к поверхности экрана. Создание игровых устройств и программ привлекала многих людей, работавших в высокотехнологичной сфере, людей, связанных с компьютерами, поэтому уже в 50-х годах мы можем наблюдать развитие этой сферы.
1950-е годы
Развитие компьютеров, средств отображения информации, привело к созданию нескольких заметных игровых проектов. Как и прежде, они рассматривались скорее как достижения программистского искусства и современной в тот период времени техники, а не как игры, в которые могут играть все желающие. Так, в 1952 году Александр Дуглас разработал программу OXO – компьютерный вариант игры в крестики-нолики. Эта программа была создана в рамках его научной работы, которая была посвящена человеко-машинному взаимодействию. Программа содержала модуль искусственного интеллекта – именно он позволял компьютеру играть с человеком.
В 1958 году Уильям Хигинботэн разработал игру Tennis for Two (Теннис для двоих) – простой симулятор игры в теннис. Нередко именно эту игру считают первой настоящей видеоигрой. Для управления в игре использовались контроллеры, оснащённые джойстиком и кнопкой. В качестве устройства отображения информации игра использовала осциллограф. Устройство служило для развлечения посетителей Брукхэвенской Национальной Лаборатории в Нью-Йорке.
1960-е годы
В 60-х годах появляются проекты, которые вполне можно сопоставить с современными компьютерными играми. Однако, реализовывались они, в основном, на ЭВМ, которые имелись в распоряжении учебных заведений. В 1961 году Стив Рассел и его товарищи из Массачусетского университета (США) написали игру Spacewar! (именно так – с восклицательным знаком) – она работала на компьютере PDP-1. Цель игры – поразить космический корабль противника и при этом не попасть под его огонь и не столкнуться со звездой.
В 1966 Ральф Баер создал компьютерную игру Chase, которая примечательна тем, что впервые использовала в качестве устройства для вывода информации обычный телевизор.
В 1969 Кен Томпсон из компании AT&T написал игру Space Travel для ОС MULTICS. В последствии игра была портирована на другие ОС, в результате она стала первой программой для ОС Unix.
1970-е годы
Если ранее видеоигры были чем-то редкостным, то 70-е годы можно считать настоящим игровым бумом. Игры развивались в нескольких направлениях – это были игровые автоматы, игры для больших компьютеров, установленных в учебных заведениях, игры для домашних компьютеров, а так же – консольные игры. В частности, популярностью пользовались консоли от Atari и Magnavox.
Интересно развивалась ситуация среди пользователей домашних компьютеров. Например, в те времена некоторые игры распространялись в виде текстов, напечатанных в журналах или книгах. И домашний пользователь ПК должен был вручную набирать текст игры, отлаживать, компилировать программу, и, в результате – играть.
В 1971 появился первый игровой автомат – он был запущен в Стэнфордском университете. На автомат была установлена игра Galaxy (она была основана на концепции Spacewar!). В этом же году Нолэн Басшнелл и Тед Дабни создали игровой автомат, основанный на той же Spacewar!. Их игра называлась Computer Space, всего было произведено 1500 экземпляров этого автомата. В этом же году Дон Дэглоу написал первую компьютерную реализацию бейсбола на компьютере DEC PDP-10. В этом же году Майк Мэйфил из Массачусетского технологического университета разработал игру Star Trek
В 1972 основана компания Atari, в этом же году вышла игра Atari PONG и соответствующее устройство. Было продано 19000 копий этой игры.
В 1974 появились игры Maze War и Spasim – первые попытки создания многопользовательских трёхмерных FPS. В этом же году Брэд Фортнер разработал игру Airflight – авиасимулятор. Эта игра стала прообразом для Microsoft Flight Simulator.
В 1975 году была написана текстовая компьютерная игра Adventure. Компьютеры тех времён имели скромные вычислительные ресурсы, поэтому текстовые игры были популярными. К тому же, многие игры «общались» с игроками, распечатывая информацию на принтере.
В 1978 вышла игра Space Invaders от Taito – её успех активизировал других производителей игровых автоматов.
В 1979 году, выпущена игра Pac Man. Эта игра актуальна до сих пор. Она занесена в Книгу Рекордов Гиннеса как самая распространённая игра в мире.
1980-е
В 80-х годах игровые автоматы, которые были популярны в прошлом десятилетии, теряли позиции. Однако начало 80-х можно считать золотой эрой игровых автоматов.
Теперь на первый план выходят игры для ПК, а так же – для игровых консолей. Среди компьютеров тех времен можно отметить ZX Spectrum, Apple II, Apple Macintosh, Commodore 64, IBM PC.
В это же время появляются многие компании-издатели и компании-разработчики игр. Некоторые из них, например - Electronic Arts – существуют и по сей день.
В 1980-е были заложены основы многих популярных сегодня игровых жанров и способов построения игрового мира. Например – это скроллинговые игры, квесты, сетевые игры, трёхмерные игры. Благодаря разработке новых аппаратных средств в играх появилось неплохое звуковое оформление. В 1985 году была разработана игра, которая не теряет популярности и в наши дни. Речь идёт о всемирно известном Тетрисе, который создал наш соотечественник Алексей Пажитнов. В этом же году выпущена Nintendo Entertainment System – игровая консоль, которая набрала огромную популярность к началу 1990-х годов. Кстати, даже сегодня можно поиграть в NES-игры. Nintendo и некоторые другие компании выпускают игровые консоли, или, как их принято называть, игровые приставки, до сих пор.
В 1987 была разработана ролевая игра Final Fantasy – она стала одной из популярнейших ролевых игр и до сих пор выходят её новые релизы.
В 1989 компания Nintendo выпустила карманную игровую консоль Game Boy.
1990-е
В 90-х годах индустрия компьютерных игр окрепла, игры разрабатывались уже не одиночками, как это было раньше, а огромными командами профессионалов.
Сегодняшним играм мы обязаны разработкам, которые сделаны в 1990-е годы. А многие игры тех лет всё ещё популярны. Например – Star Craft (1998), чемпионаты по которому проводятся до сих пор, Duke Nukem 3D, продолжение которой ожидается уже много лет, но сама игра всё не теряет актуальности, или Counter Strike – мод к Half Life, вышедший в 1999 году. Первая версия Alone in the Dark вышла в 1992 году.
Одна из первых 3D-игр – Quake – увидела свет в 1996 году. Отчасти эта игра обязана своему появлению набору микросхем Voodoo, который выпустила компания 3dfx. Этот набор микросхем значительно ускорял возможности ПК по обработке трёхмерной графики.
В 90-е начали развитие Интернет-игры. Так, уже упомянутая Quake, позволяла устраивать многопользовательские бои в Интернете, то же самое касается StarCraft’а, Age of Empires, Ultima Online, EverQuest. Стали появляться игры, основанные на Macromedia Flash – такие игры – обычно различные реализации достаточно простых, но увлекательных концепций – популярны и сегодня. Главная особенность Flash-игр заключается в том, что для их исполнения нужен лишь WEB-браузер, оснащённый соответствующими надстройками.
Что касается игровых консолей, то они развивались в 90-х годах. Пожалуй, наиболее заметными среди них были SNES и Nintendo 64 от Nintendo, Sega Mega Drive, Sony Play Station
Наши дни
В наши дни игры продолжают развиваться. На рынке игровых консолей есть три сильных конкурента. Это Microsoft Xbox 360 (её предшественница – Xbox – появилась в 2001 году), Sony Play Station III и Nintendo Wii. Сегодня создание компьютерных игр – это огромная индустрия. Бюджеты игровых проектов достигают десятков миллионов долларов, а объём рынков современных игр – компьютерных, консольных, мобильных, оценивается десятками миллиардов долларов.
Можно заметить, что разработкой компьютерных игр в самом начале их возникновения занимались одиночки. Позже, в начале 80-х годов, начали возникать компании-разработчики и компании-издатели игр. В 1980-90-х годах заметные игровые проекты обычно создавались трудами крупных компаний. Однако, последние несколько лет роль небольших групп разработчиков и даже одиночек возрастает. Этот вывод можно сделать, например, если проанализировать такой феномен, как любительские модификации (или, как принято говорить, моды) популярных игр. Например, популярная игра Counter Strike появилась в виде любительского мода к Half Life.
Поговорив об истории игр, перейдём к описанию этапов создания игры и к характеристике «игровых» профессий.
1.2. Этапы разработки компьютерной игры
Разработка компьютерных игр – это достаточно чётко отлаженный процесс, который имеет определённые этапы, так или иначе проходимые играми при их создании. Однако жизнь обычно вносит свои коррективы даже в самые чёткие планы.
Очень часто разработчики игр не могут успеть доделать игру в сколько-нибудь приемлемые сроки – яркий пример – DukeNukem Forever, выпуска которого весь игровой мир ждёт уже много лет. Практически всегда после выхода компьютерной игры за ней следуют исправления – всё дело в том, что разработчики, опять же, не укладываются в отведённые им сроки.
Исходные коды игр нередко «уходят» в Интернет и все играют в новейшую игру задолго до её официального релиза. Причём, здесь нельзя однозначно сказать, вредно ли это для игровых компаний. С одной стороны – вредно – ведь копии игры попадают к пользователям совершенно бесплатно (не считая затрат на трафик в Интернете). Однако, с другой – часто «ушедшие» коды далеки от совершенства и «утечка» лишь разогревает интерес к финальной версии игры.
Надо учесть, что в игровом бизнесе существует два типа компаний – разработчик (developer) и издатель (publisher). Если разработчик и издатель совпадают – процесс разработки игры лишь выигрывает – разработчику нет нужды убеждать стороннего издателя в целесообразности капиталовложений в разработку.
Рассмотрим этапы разработки типичной компьютерной игры.
Подготовка к производству
Подготовка к производству игры – это первый этап работы над игрой. Задача разработчиков на этом этапе – разработать концепцию игры, дизайн персонажей, выбрать средства для реализации проекта, создать прототип игры, подготовить план, по которому будет создаваться игра и согласовать этот план с начальством, либо – с компанией, которая планирует издавать игру. Как правило, все современные игры пишутся под конкретного издателя, который часто вкладывает в разработку немалые средства. Когда все административные вопросы решены, игра вступает на этап производства.
Производство
Производство – это ключевой этап в создании игры. Разработчики занимаются реализацией ранее созданного плана. Однако первоначальный план игры подвергается изменениям – иногда эти изменения происходят очень часто – вплоть до ежедневных корректировок. В ходе производства игры – особенно это касается коммерческих версий – периодически устраивается рассмотрение текущих результатов разработки, к которым команда должна представить проект, достигший определённого уровня развития. То есть, например, к одному из таких моментов должна быть готова работающая демо-версия игры, к другому – первый уровень и так далее. Как правило, эти промежуточные результаты служат отличной рекламой новых игровых проектов – демо-версии публикуют на игровых сайтах, геймеры «примеряют» к этим версиям возможности своего оборудования.
Выпуск
После того, как игра создана, протестирована и отлажена, наступает время её выпуска. Как правило, интерес к этому событию усиленно подогревается издателем игры – ведь не стоит забывать, что главная цель издателя – прибыль. Как правило, наиболее успешные игры с лихвой оправдывают ожидания издателей.
Поддержка
Игры для ПК часто выходят с ошибками – всё дело в том, что разработчикам вечно не хватает времени чтобы всё как следует отладить. Благо, есть возможность исправлять ошибки на уже установленных игра, устанавливая патчи (от английского patch – заплатка). Этим пользуются разработчики, выпуская сыроватую игру и, после этого, целую вереницу заплаток для неё. Такая практика не распространена для консольных игр – тут разработчики вынуждены ответственнее подходить к своей работе и выпускать полностью рабочую игру, не требующую вмешательств. Как видите, разработка игр – дело нелёгкое. Конечно, выше приведена лишь примерная схема работы над игрой, однако практически все игры проходят через одинаковые этапы.
1.3. Игровые профессии
В процессе производства игры в дело вступают представители множества «игровых» профессий – поговорим об основных из них. Кстати, при разработке небольшого проекта в рамках ограниченного бюджета один человек может совмещать в себе обязанности целой команды разработчиков.
Программисты
Программисты заняты работой по написанию программного кода игры. Их усилиями реализуется игровая физика, искусственный интеллект, с которым предстоит сражаться игроку при игре «против компьютера» и многое другое. Что интересно, многие игровые программисты стали таковыми после того, как начали программировать самостоятельно, в виде хобби. Если говорить об инструментах программиста – то практически все коммерческие игры написаны на языке C++ или С, некоторые, особенно ответственные части игры, пишут на языке Assembler. В последнее время набирает популярность язык программирования C#. Строго говоря, игру реально написать на практически любом языке программирования – например, простые игры можно создавать в Microsoft Word или Microsoft Excel, используя встроенный в эти продукты Visual Basic For Applications.
Художники
Роль художников и вообще всех, кто работает с графикой, в современном игростроении трудно переоценить. Во все времена одним из критериев оценки игры была её графическая составляющая – а современные средства работы с графикой позволяют создавать красивейшие игровые миры, в основе которых лежит кропотливая работа художников во все её проявлениях. К тому же, аниматоры оснащены сегодня передовым аппаратным и программным обеспечением (в частности – технологией Motion Capture) которое, например, позволяет записывать реальные движения человека и переносить их потом на игровых персонажей.
Музыканты
Композиторы, музыканты, актёры, звукорежиссёры работают над звуковым оформлением игры. Они пишут и исполняют музыку, читают тексты персонажей. Без достойной музыки и качественного озвучивания, как и без хорошей графики, современная игра вряд ли будет успешной. Хотя, звуки и музыка, конечно, не главное в большинстве игр, но, например, поиграйте в Need For Speed: Underground 2 без звуков и музыки – немалая часть обаяния игры исчезнет без следа.
Писатели
Как правило, редкая современная игра не построена вокруг какого-то сценария. Особенно сильна роль сценариев в ролевых, приключенческих играх и в играх смешанных жанров, однако даже если работа ведётся над очередной FPS-игрой – качественные тексты ей не помешают. Всем этим занимаются сценаристы, режиссёры, писатели. Дизайнеры уровней Когда программисты, художники, музыканты выполнят основную работу по созданию персонажей игры, игровых интерьеров, звуков, за дело берутся дизайнеры уровней. Если даже игра представляет собой один большой «уровень» без явного разбиения на части, дизайнерам приходится немало поработать над созданием игровой вселенной.
Тестеры
Игра – это огромная программа, которая перед выходом в свет должна быть протестирована. Тестирование занимает очень важную роль в процессе создания игр – иногда тестеров набирают из числа добровольцев. Желающих поучаствовать в предварительном тестировании игры, как правило, больше, чем нужно – многие хотят попробовать новинку первыми. Если в ходе тестирования возникают ошибки, тестер сообщает о них разработчикам.
1.4. Перспективы программиста-разработчика компьютерных игр
Теперь, когда мы познакомились с этапами разработки игр и игровыми профессиями, подумаем о возможностях начинающих разработчиков.
Многие начинающие разработчики, которые хотят сами разрабатывать игры, задаются вопросом: «Может ли один человек, или, в крайнем случае, команда из нескольких энтузиастов, создать сегодня игру, которая принесёт разработчикам славу и богатство и станет желанным гостем на игровых устройствах игроков всего мира»? Это сложный вопрос.
История знает множество примеров, когда у истоков какой-либо игры, ставшей безумно популярной во всём мире, стояла небольшая группа энтузиастов. Например – это всем известный Tetris, который в практически неизменном виде существует уже не одно десятилетие. Или игровая серия Final Fantasy – первая версия этой игры появилась в конце 1980-х годов, а теперь – это целая игровая вселенная, над новыми версиями которой работает огромное количество людей.
Нужно признать, что одиночке сейчас гораздо сложнее, чем, скажем, 20 лет назад, создать значительную игру. Но игровой бизнес как никакой другой основан на интуиции и фантазии отдельных людей – и если в вашей голове родится гениальная игровая идея и вы сможете донести её до других людей – вполне возможно, что мир станет свидетелем рождения очередной великой игры.
Вопросы
1) Какую разработку принято считать прародителем компьютерных игр?
a. Ракетный симулятор 1947 года
b. Программу OXO 1952 года
c. Tennis for Two 1958 года
d. Spacewar! 1961 года
2) Какую игру принято считать первой программой для ОС Unix?
a. Spacewar!
b. Space Travel
c. Galaxy
d. Airflight
3) Какая игра впервые использовала в качестве устройства вывода информации обычный телевизор?
a. Spacewar!
b. Galaxy
c. Chase
d. Airflight
4) Игры Maze War и Spasim – это первые попытки создания
a. Авиасимуляторов
b. Логических игр
c. Многопользовательских трехмерных FPS
d. Приключенческих игр
5) Какая из перечисленных игр занесена в Книгу Рекордов Гиннеса как самая распространенная игра в мире?
a. Space Invaders
b. Pac Man
c. Tetris
d. Airflight
6) ZX Spectrum, Apple II, Apple Macintosh, Commodore 64, IBM PC – это
a. Жанры компьютерных игр
b. Компании-разработчики компьютерных игр
c. Модели компьютеров, популярные в 1980-х годах
d. Компьютерные игры, занесенные в Книгу Рекордов Гиннеса
7) В какой стране была разработана игра Tetris?
a. Япония
b. США
c. Германия
d. Россия
8) Counter Strike – это
a. Модель игровой приставки
b. Любительский мод к Half Life
c. Графический ускоритель
d. Первая трехмерная игра
9) Расположите в верной последовательности этапы разработки компьютерной игры
a. Выпуск
b. Производство
c. Подготовка к производству
d. Поддержка
Задание
Подумайте, какая игровая профессия вам больше всего подходит. Изложите письменно ваши мысли по этому поводу по такому плану:
1) Ваши любимые игры (перечень любимых игр, почему именно эти игры вам нравятся) 2) Ваши навыки (умеете рисовать, любите программировать, умеете сочинять истории, умеете организовывать командную работу, заниматься рекламой) 3) Игровая профессия, которая вам нравится больше других 4) В создании какой игры вам хотелось бы поучаствовать?
2203 Прочтений • [Основы разработки компьютерных игр в XNA Game Studio] [08.08.2012] [Комментариев: 0]