Основы разработки компьютерных игр в XNA Game Studio

Основы разработки компьютерных игр

Показывать лекцию целиком

1.1. Очерки истории компьютерных игр

История видеоигр начинается в пятидесятых годах прошлого века. Тогда появились первые устройства, которые позже превратились в игровые приставки, портативные игровые консоли и персональные компьютеры, которые сегодня являются старейшей игровой платформой.

Термин "видеоигры" (video games) сегодня используется для обозначения всех видов игр, взаимодействие с которыми организовано с помощью различных устройств для отображения видеоинформации. В эту категорию попадают компьютерные игры, игры для игровых приставок, для мобильных устройств.

Рассмотрим основные этапы развития видеоигр.

1940-е годы

Компьютерные игры ведут свою историю с 1947 года. Тогда была создана первая игра – ракетный симулятор. Эта игра вряд ли смогла бы стать массовой – а массовость – это один из признаков современных игр. Она была реализована с помощью запатентованной в 1947 году катодно-лучевой трубки. Игрок мог управлять световым пятном – ракетой, которой нужно было поразить цель. Причем, так как в те времена катодно-лучевые трубки были чрезвычайно ограничены в возможностях, цель была просто нарисована и прикреплена к поверхности экрана.

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

1950-е годы

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

Так, в 1952 году Александр Дуглас разработал программу OXO – компьютерный вариант игры в крестики-нолики. Эта программа была создана в рамках его научной работы, которая была посвящена человеко-машинному взаимодействию. Программа содержала модуль искусственного интеллекта – именно он позволял компьютеру играть с человеком.

В 1958 году Уильям Хигинботэн разработал игру Tennis for Two (Теннис для двоих) – простой симулятор игры в теннис. Нередко именно эту игру считают первой настоящей видеоигрой. Для управления в игре использовались контроллеры, оснащенные джойстиком и кнопкой. В качестве устройства отображения информации игра использовала осциллограф. Устройство служило для развлечения посетителей Брукхэвенской Национальной Лаборатории в Нью-Йорке.

1960-е годы

В 60-х годах появляются проекты, которые вполне можно сопоставить с современными компьютерными играми. Однако, реализовывались они, в основном, на ЭВМ, которые имелись в распоряжении учебных заведений.

В 1961 году Стив Рассел и его товарищи из Массачусетского университета (США) написали игру Spacewar! (именно так – с восклицательным знаком) – она работала на компьютере PDP-1. Цель игры – поразить космический корабль противника и при этом не попасть под его огонь и не столкнуться со звездой.

В 1966 Ральф Баер создал компьютерную игру Chase, которая примечательна тем, что впервые использовала в качестве устройства для вывода информации обычный телевизор.

В 1969 Кен Томпсон из компании ATT написал игру 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 PlayStation

Наши дни

В наши дни игры продолжают развиваться. На рынке игровых консолей есть три сильных конкурента. Это Microsoft Xbox 360 (ее предшественница – Xbox – появилась в 2001 году), Sony PlayStation III и Nintendo Wii.

Сегодня создание компьютерных игр – это огромная индустрия. Бюджеты игровых проектов достигают десятков миллионов долларов, а объем рынков современных игр – компьютерных, консольных, мобильных, оценивается десятками миллиардов долларов.

Можно заметить, что разработкой компьютерных игр в самом начале их возникновения занимались одиночки. Позже, в начале 80-х годов, начали возникать компании-разработчики и компании-издатели игр. В 1980-90-х годах заметные игровые проекты обычно создавались трудами крупных компаний. Однако, последние несколько лет роль небольших групп разработчиков и даже одиночек возрастает. Этот вывод можно сделать, например, если проанализировать такой феномен, как любительские модификации (или, как принято говорить, моды) популярных игр. Например, популярная игра Counter Strike появилась в виде любительского мода к Half Life.

Поговорив об истории игр, перейдем к описанию этапов создания игры и к характеристике "игровых" профессий.

1.2. Этапы разработки компьютерной игры

Разработка компьютерных игр – это достаточно четко отлаженный процесс, который имеет определенные этапы, так или иначе проходимые играми при их создании. Однако жизнь обычно вносит свои коррективы даже в самые четкие планы.

Очень часто разработчики игр не могут успеть доделать игру в сколько-нибудь приемлемые сроки – яркий пример – Duke Nukem 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 лет назад, создать значительную игру. Но игровой бизнес как никакой другой основан на интуиции и фантазии отдельных людей – и если в вашей голове родится гениальная игровая идея и вы сможете донести ее до других людей – вполне возможно, что мир станет свидетелем рождения очередной великой игры.

Вернуться к учебному плану