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

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

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

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