Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Видеоигры Печать
Декорации для видеоигр

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

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

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

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

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

Создание образов. Каждый возникающий на экране компьютера образ начинается с простой картинки, например с силуэта автомобиля (вверху). Затем создатель игры накладывает на него сетку (в центре) и строит приближенное представление графического образа с помощью квадратиков так, чтобы его можно было закодировать и хранить в памяти компьютера. Кодирование заключается в том, что каждому закрашенному квадратику ставится в соответствие 1, а каждому пустому - 0. в этом упрощенном примере графический образ автомобиля описывается с помощью 16 рядов единиц и нулей (внизу). Чтобы нарисовать автомобиль, компьютер должен сопоставить цифры определенным точкам на экране. Единицы соответствуют светлым точкам, нули - темным. Если изображение автомобиля надо сделать цветным, то компьютеру потребуется более сложная информация. Она должна включать дополнительный набор чисел, с помощью которых компьютеру сообщается не только, какие точки светлые, а какие темные, но и их цвет.
 
Создание таблицы образов. Каждая участвующая в игре фигура должна быть закодирована в виде набора чисел и записана в таблицу образов (каталог). Движущиеся фигуры (например, автомобиль или паровоз) приходится вносить в таблицу несколько раз - отдельно для каждого угла зрения или совершаемого действия. Таблица образов для нашей простой игры должна содержать более 100 различных объектов.


Создание библиотеки звуков

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

Человеческие рефлексы против машинной логики

В течение всего сеанса игры (в нашем примере это авторалли) создаваемые программой картинки и сопутствующие им звуковые эффекты определяются двумя факторами: действиями игрока и внутренней логикой алгоритма. На каждом шаге программа повторяет неизменяемые элементы ландшафта, а также продвигает вперед поезд, коров и другие программно-управляемые фигурки. Кроме того, программа - в соответствии с последней командой, полученной через джойстик от игрока, - перемещает автомобиль.

Одновременно происходит непрерывный отсчет (и показ) времени, прошедшего с начала игры, и отслеживание (в соответствии с заложенными в программе правилами) «конфликтных ситуаций» между автомобилем и другими фигурками на экране.

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

На экране слева показан момент игры, соответствующий 83-й секунде игрового времени. Автомобиль движется наперерез приближающемуся поезду. Программа генерирует гудок паровоза и другие сигналы предупреждения, но дальнейший ход событий зависит от реакции игрока.

Сцена на экране внизу показывает, что случилось в игре секунду спустя (подобную картинку надо демонстрировать, по-видимому, около 8 с): игрок вовремя не остановился, автомобиль врезался в поезд - и программа, изобразив с соответствующим шумом аварию, заканчивает игру.