Киберсантинг - создание игр
Создание игр (Game Development, геймдев) — это процесс разработки видеоигр от задумки до выпуска на рынок. В нём участвуют различные специалисты: программисты, художники, дизайнеры, QA-специалисты и другие.
Разработчики создают игры для разных платформ: компьютеров, мобильных устройств, игровых приставок, онлайн-платформ и других. Если продукт поддерживает несколько платформ, это называется кроссплатформенностью.
Некоторые этапы создания игр:
Концепция — определяется идея игры, её жанр, платформа, целевая аудитория, основные механики.
Проектирование — разработчики составляют дизайн-документ, где описывают подробно игровой мир, персонажей, сюжет, уровни, механики игры.
Программирование — разработчики пишут код, который управляет логикой игры и взаимодействием с пользователем.
Художественное оформление — дизайнеры и художники работают над графическими элементами игры, такими как фоны, персонажи, интерфейс.
Звуковое оформление — на этом этапе создаются звуковые эффекты, музыка и диалоги, которые используются в игре.
Тестирование — тестировщики ищут ошибки, баги и другие проблемы, которые могут повлиять на игровой процесс.
Оптимизация — разработчики оптимизируют код, графику и звуковое оформление для улучшения производительности игры на различных устройствах.
Релиз — игра готова к выпуску на рынок и выкладывается на платформы для загрузки и продажи.
Поддержка — разработчики поддерживают игру, выпуская обновления для исправления ошибок, добавления новых уровней, персонажей и механик игры.
-
Введение в программирование трехмерных игр с DX9
Эта книга представляет собой введение в программирование интерактивной трехмерной компьютерной графики с использованием DirectX9.0, в котором основное ударение делается на разработку игр. Прочитав ее, вы изучите основы Direct3D, после чего сможете перейти к изучению и применению более сложных технологий. Раз вы держите в руках эту книгу, у вас есть начальное представление о том, что представляет собой DirectX. С точки зрения разработчика DirectX - это набор API (интерфейсов программирования приложений) для разработки мультимедйных приложений на платформе Windows. В этой книге мы сосредоточимся на ограниченном подмножестве DirectX, называемом Direct3D. Как видно из названия, Direct3D - это API, используемый для разработки приложений с трехмерной графикой.
Книга разделена на четыре части. В первой части исследуются математические инструменты, применяемые в остальных частях книги. Во второй части объясняются базовые технологии трехмерной графики, такие как освещение, текстурирование, альфа-смешивание и работа с трафаретами. Третья часть посвящена использованию Direct3D для реализации различных более интересных техник и приложений, таких как выбор объектов, визуализация ландшафтов, системы частиц, настраиваемая виртуальная камера, а также загрузка и визуализация трехмерных моделей (X-файлов). Темой четвертой части являются вершинные и пиксельные шейдеры, включая каркасы эффектов и новый (появившийся в DirectX 9.0) высокоуровневый язык шейдеров. Настоящее и будущее трехмерных игр неразрывно связано с использованием шейдеров, и, посвящая им целую часть, мы хотели получить книгу, соответствующую современному состоянию дел в программировании графики.
Предпосылки
Необходимые средства разработки
Рекомендуемое оборудование
Для кого предназначена эта книга
Установка DirectX 0
I Для разработки приложений
I Отладочные сообщения, выводимые если объект Direct не был освобожден
Настройка среды разработки
I Добавление путей к включаемым и библиотечным файлам DirectX в VC++ 0
I Указание библиотекчных файлов для компоновки с проектом в VC++ 0
Использование библиотеки DX
Использование документации и примеров из DirectX SDK
I Просмотр документации, относящейся к SDK
Соглашения об оформлении кода
Обработка ошибок
Ясность
Примеры программ и дополнительная поддержка
Введение в программирование трехмерных игр с DX9
Глава Инициализация Direct
Обзор Direct
Взаимосвязь между приложением, Direct и аппаратурой
Устройство REF
DDEVTYPE
COM
Предварительная подготовка
Поверхности
Поверхность
Множественная выборка
Слева изображена линия
Формат пикселей
Пул памяти
Цепочка обмена и переключение страниц
Цепочка обмена из двух поверхностей (первичного и вторичного буфера)
Показ Используя содержащую
Буфер глубины
Группа объектов, частично закрывающих друг друга
Обработка вершин
Возможности устройств
Инициализация Direct
Запрос интерфейса IDirect9
Проверка поддержки аппаратной обработки вершин
Заполнение структуры DPRESENT_PARAMETERS
Создание интерфейса IDirectDevice9
Пример приложения: инициализация Direct
Окно программы, рассматриваемой в этой главе
Файлы dUtilityh/cpp
Каркас примера
Приложение D Init
Итоги
Введение в программирование трехмерных игр с DX9
Глава Конвейер визуализации
Левое изображение показывает несколько
Представление моделей
Ландшафт, представленный с помощью сетки из треугольников
Треугольник, заданный тремя вершинами
Форматы вершин
Треугольники
Прямоугольник, образованный из двух треугольников
Индексы
Составленный из треугольников куб
Виртуальная камера
Усеченная пирамида, определяющая область пространства, которую видит камера
Конвейер визуализации
Упрощенная схема конвейера визуализации
Локальное пространство
Чайник, описанный в его собственной, локальной системе координат
Мировое пространство
Несколько трехмерных объектов, описанных в единой мировой системе координат
Пространство вида
Преобразование из мирового пространства
Удаление невидимых поверхностей
Объект с фронтальными и обратными полигонами
Сцена после отбрасывания обратных граней
Освещение
Отсечение
Отсечение геометрии, находящейся вне видимого пространства
Проекция
Проекция точки в трехмерном пространстве в окно проекции
Компоненты пирамиды видимого пространства
Преобразование порта просмотра
Прямоугольник порта просмотра
Растеризация
Растеризация треугольника на экране
Итоги
Введение в программирование трехмерных игр с DX9
Глава Цвет
Представление цвета
-Разрядное представление цвета
Цвета вершин
Затенение
Слева равномерное затенение треугольника
Пример приложения: цветные треугольники
Итоги
Введение в программирование трехмерных игр с DX9
Глава Освещение
Компоненты света
Материалы
Нормали вершин
Лицевая нормаль поверхности
Нормали вершин поверхности
Пример объекта, у которого нормали
Источники света
Точечный свет
Направленный свет
Зональный свет
Пример приложения: освещенная пирамида
Окно приложения LitPyramid
Дополнительные примеры
Итоги
Введение в программирование трехмерных игр с DX9
Глава Текстурирование
Куб с текстурой деревянного ящика
Координаты текстур
Система координат текстуры иногда называемая пространством текстуры
Слева изображена треугольная грань
Создание текстур и разрешение текстурирования
Фильтры
Детализируемые текстуры
Цепочка текстур с понижаемой детализацией;
Фильтр детализации текстур
Использование детализируемых текстур в Direct
Режимы адресации
Режим отражения
Пример приложения: текстурированный квадрат
Окно с изображением текстурированого квадрата, полученное в приложении TexQuad
Итоги
Введение в программирование трехмерных игр с DX9
Глава Смешивание
Формулы смешивания
Непрозрачный чайник
Прозрачный чайник
Коэффициеты смешивания
Прозрачность
Альфа-канал
Разрядная карта оттенков серого, представляющая альфа-канал текстуры
Текстурированный квадрат, у которого альфа-канал задает прозрачность отдельных частей
Указание источника альфа-компоненты
Создание альфа-канала с помощью утилиты DirectX Texture Tool
Изменение формата текстуры
Полученная текстура с альфа-каналом
Пример приложения: прозрачный чайник
Итоги
Введение в программирование трехмерных игр с DX9
Глава Трафареты
На рисунке сверху изображено отражение
Использование буфера трафарета
Создание буфера трафарета
Проверка трафарета
Управление проверкой трафарета
Эталонное значение трафарета
Маска трафарета
Значение трафарета
Операция сравнения
Обновление буфера трафарета
Маска записи трафарета
Пример приложения: зеркала
Математика отражений
Отражение относительно
Обзор реализации отражений
Сцена, визуализированная
Визуализация зеркала в
Код и комментарии
Часть I
Часть II
Часть III
Часть IV
Часть V
Пример приложения: плоская тень
Окно рассматриваемого в этом разделе
Tень, отбрасываемая объектом при его освещении параллельным источником света
Матрица тени
Использование буфера трафарета для предотвращения двойного смешивания
Обратите внимание на темные области
Итоги
Введение в программирование трехмерных игр с DX9
Глава Шрифты
IDXFont
Создание IDXFont
Рисование текста
Вычисление частоты кадров
CDFont
Создание экземпляра CDFont
Рисование текста
Очистка
DXCreateText
Трехмерный текст, созданный функцией DXCreateText
Итоги
Введение в программирование трехмерных игр с DX9
Глава Сетки: часть I
Геометрия сетки
Подгруппы и буфер атрибутов
Дом, разбитый на несколько подгрупп
Соответствие между треугольниками
Рисование
Оптимизация
Таблица атрибутов
Данные геометрии и содержимое
Данные о смежности
Каждому треугольнику соответствуют
Клонирование
Создание сетки (DXCreateMeshFVF)
Пример приложения: создание и визуализация сетки
Куб, созданный и визуализированный как объект IDXMesh
Итоги
Введение в программирование трехмерных игр с DX9
Глава Построение гибкого класса камеры
Проектирование класса камеры
Векторы камеры определяют ее ориентацию и местоположение в мировой системе координат
Вычисление матрицы вида
Преобразование из мирового пространства
Часть Перемещение
Вращение относительно произвольной оси
Вращение относительно произвольной оси, определенной вектором A
Наклон, рыскание и вращение
Наклон, или поворот относительно правого вектора камеры
Рыскание, или поворот относительно верхнего вектора камеры
Вращение, или поворот относительно вектора взгляда камеры
Ходьба, сдвиг и полет
Перемещение вдоль векторов ориентации камеры
Пример приложения: камера
Окно программы, рассматриваемой в этой главе
Окно программы, рассматриваемой в этой главе - 2
Итоги
Введение в программирование трехмерных игр с DX9
Глава Сетки: часть II
IDXBuffer
X-файлы
Загрузка X-файлов
Материалы в X-файле
Пример приложения: загрузка X-файла
Окно программы XFile
Генерация нормалей вершин
Прогрессивные сетки
Изображение сетки с тремя различными уровнями детализации
Создание прогессивной сетки
Веса атрибутов вершин
Методы IDXPMesh
Пример приложения: прогрессивная сетка
Ограничивающие объемы
Сетка визуализированная с ограничивающей
Новые константы
Типы ограничивающих объемов
Пример приложения: ограничивающие объемы
Окно программы Bounding Volumes
Итоги
Введение в программирование трехмерных игр с DX9
Глава Основы визуализации ландшафтов
(A) Сетка с треугольными ячейками
Карты высот
Создание карты высот
Карта градаций серого, созднная в Adobe Photoshop
Загрузка файла RAW
Досуп к карте высот и ее модификация
Свойства размеченной треугольной сетки Точки на пересечении линий сетки обозначают вершины
Вычисление вершин
Соответствие между вершинами ландшафта и координатами текстур
Вычисление индексов определение треугольников
Вершины квадрата
Текстурирование
Процедурный подход
Освещение
Обзор
Угол между вектором освещения
Вычисление затенения квадрата
Вычисление двух векторов, находящихся в одной плоскости с квадратом
Затенение ландшафта
Ходьба по ландшафту
Исходная сетка ландшафта и сетка
Высота ячейки (координата Y) для заданных координат местоположения камеры X и Z
Ячейка до и после преобразования, переносящего ее верхнюю левую вершину в начало координат
(А) Вычисляем два вектора, совпадающих
Пример приложения: ландшафт
Возможные усовершенствования
Итоги
Введение в программирование трехмерных игр с DX9
Глава Системы частиц
Частицы и точечные спрайты
Формат структуры
Режимы визуализации точечных спрайтов
Частицы и их атрибуты
Компоненты системы частиц
Рисование системы частиц
Разделенный на сегменты буфер вершин
Хаотичность
Примеры систем частиц: снег, фейерверк, след снаряда
Окно программы Snow
Окно программы Firework
Окно программы Laser (Particle Gun)
Итоги
Введение в программирование трехмерных игр с DX9
Глава Выбор объектов
Пользователь выбирает чайник
Луч, проходящий через точку p
Преобразование из экранного пространства в окно проекции
Вычисление луча выбора
Преобразование лучей
Пересечение луча и объекта
Длина вектора p c, обозначаемая
A) Луч проходит мимо сферы; и
Окно примера к данной главе
Итоги
Введение в программирование трехмерных игр с DX9
Глава Введение в высокоуровневый язык шейдеров
Пишем шейдер на HLSL
Глобальные переменные
Входная и выходная структуры
Точка входа
Таблица констант
Получение дескриптора константы
Установка констант
Установка значений по умолчанию для констант
Компиляция HLSL-шейдера
Типы переменных
Скалярные типы
Векторные типы
Матричные типы
Массивы
Структуры
Ключевое слово typedef
Префиксы переменных
Ключевые слова
Поток выполнения программы
Приведение типов
Операторы
Определяемые пользователем функции
Встроенные функции
Итоги
Введение в программирование трехмерных игр с DX9
Глава Знакомство с вершинными шейдерами
Вершинный шейдер заменяет этапы преобразования и освещения в фиксированном конвейере
Объявление вершин
Описание объявления вершин
Создание объявления вершин
Разрешение использования объявлений вершин
Использование данных вершин
Этапы работы с вершинным шейдером
Написание и компиляция вершинного шейдера
Создание вершинного шейдера
Установка вершинного шейдера
Уничтожение вершинного шейдера
Пример приложения: рассеянный свет
Пример приложения: мультипликационная визуализация
(А) Объекты с затенением выполненным
Мультипликационное затенение
Текстура затенения содержит используемые
Используемый оттенок зависит от интервала, в который попадает координата текстуры
Код вершинного шейдера для мультипликационного затенения
Обводка силуэта
Представление краев
Квадрат, представляющий край
Вырожденный квадрат, описывающий край, разделенный на два треугольника
Вершины vи vкрая силуэта смещаются
Проверка для краев силуэта
На Рисунок (a) одна из граней
Край, определенный вершинами vи vиспользуется только одной гранью
Генерация краев
Код вершинного шейдера обводки силуэта
Итоги
Введение в программирование трехмерных игр с DX9
Глава Знакомство с пиксельными шейдерами
Основы мультитекстурирования
Визуализация освещенного прожектором
Разрешение работы с несколькими текстурами
Координаты для нескольких текстур
Входные и выходные данные пиксельного шейдера
Этапы работы с пиксельным шейдером
Написание и компиляция пиксельного шейдера
Создание пиксельного шейдера
Установка пиксельного шейдера
Уничтожение пиксельного шейдера
Объекты выборки в HLSL
Пример приложения: мультитекстурирование в пиксельном шейдере
Комбинирование текстур Пусть b
Итоги
Введение в программирование трехмерных игр с DX9
Глава Каркас эффектов
Техники и проходы
Встроенные объекты HLSL
Объекты текстуры
Объекты выборки и режимы выборки
Объекты вершинных и пиксельных шейдеров
Строки
Аннотации
Состояния устройства в файле эффекта
Создание эффекта
Установка констант
Использование эффекта
Получение дескриптора эффекта
Активация эффекта
Начало эффекта
Установка текущего прохода визуализации
Завершение эффекта
Пример
Пример приложения: освещение и текстурирование в файле эффектов
Окно приложения Lighting and Texturing Текстуры, материал и режимы освещения заданы в файле эффекта
Пример приложения: туман
Окно программы Fog Effect В этом
Пример приложения: мультипликационный эффект
EffectEdit
Окно программы EffectEdit, поставляемой вместе с DirectX SDK
Итоги
Введение в программирование трехмерных игр с DX9
Часть IМатематическая подготовка
Векторы в трехмерном пространстве
Свободные векторы, определенные независимо от системы координат
Слева изображена левосторонняя
Векторы в стандартной
Нулевой вектор и базовые орты трехмерной системы координат
Равенство векторов
Вычисление модуля вектора
Нормализация вектора
Сложение векторов
Сложение векторов Обратите
Вычитание векторов
Вычитание векторов
Умножение вектора на скаляр
Скалярное произведение векторов
Векторное произведение
Векторное произведение Вектор p = u v перпендикулярен как вектору u, так и вектору v
Решение
Матрицы
Равенство, умножение матрицы на скаляр и сложение матриц
Умножение
Единичная матрица
Инвертирование матриц
Транспонирование матриц
Матрицы в библиотеке DX
Основные преобразования
Перемещение на единиц по оси X и на единиц по оси Y
Поворот на градусов против часовой стрелки вокруг оси Z
Масштабирование с коэффициентом по оси X и коэффициентом по оси Y
Комбинирование преобразований
Некоторые функции для преобразования векторов
Плоскости
Плоскость, заданная вектором нормали n и точкой плоскости p0
Если точка pпринадлежит
DXPLANE
Взаимное расположение точки и плоскости
Создание плоскостей
Нормализация плоскости
Преобразование плоскости
Точка плоскости, ближайшая к заданной
Точка q плоскости (, d)
Лучи
Лучи
Луч, заданный начальной
Пересечение луча и плоскости
Итоги
Часть IIОсновы Direct
Часть IIIПрименение Direct
Часть IVШейдеры и эффекты
Введение в программирование трехмерных игр с DX9
Приложение Введение в программирование для Windows
Обзор
Ресурсы
События, сообщения, очередь сообщений и цикл обработки сообщений
Управляемая событиями модель программирования
GUI
Графический интерфейс
Windows-приложение Hello World
Окно приведенной выше
Исследование программы Hello World
Включение файлов, глобальные переменные и прототипы
WinMain
WNDCLASS и регистрация
Создание и отображение окна
Экранное пространство
Цикл сообщений
Оконная процедура
Функция MessageBox
Улучшенный цикл сообщений
Итоги
-
Компьютерные игры. Как это делается
Прежде чем перейти к основному содержанию, оговорим несколько базовых понятий, с которыми нам потом придется часто сталкиваться. В первой части этой главы вы познакомитесь с нашим вариантом классификации игровых жанров. Это необходимо, чтобы говорить с вами на одном языке. Кроме того, прежде чем сесть за компьютер и начать писать собственную игру, имеет смысл определить, в каком жанре (или их комбинации) вы намереваетесь творить.
К тому же нам понадобятся термины, описывающие перспективу игры - точку, с которой игрок наблюдает за происходящим. В разделе «Типы игровой перспективы» мы объясним и снабдим примерами такие понятия, как «вид с высоты птичьего полета», «игра от первого (третьего) лица», «изометрическая проекция» и т.п.
Посвящение автора
Марк Зальцман, редактор-составитель
Участники проекта
Игровые жанры и типы перспективы
Экшен-игры (Action) и аркады (Arcade)
Стратегии
Квесты (Quests, Adventures)
Ролевые игры (RPG)
Спортивные игры
Симуляторы
Головоломки (логические игры)
Игры от первого лица (first-person)
Игры от третьего лица (third-person)
Игры с высоты птичьего полета (top-down)
Игры в изометрической проекции
Игры с видом сбоку
Игры в текстовом режиме
Общие принципы создания игр: экшен-игры и стратегии
Сигеру Миямото (Shigeru Miyamoto), Nintendo
Курт Арнлунд (Kurt Arnlund), Accolade
Тоби Гард (Toby Card), Confounding Factor
Карл Шнурр (Carl Schnurr), Red Storm Entertainment
Гейб Ньюэлл (Gabe Newell), Valve Software
Клифф Блежински (Cliff Bleszinski), Epic Games
Дэвид Перри (David Perry), Shiny Entertainment
Мэтью Тошлог (Matthew Toschlog), Outrage Entertainment
Алан Пэтмор (Alan Patmore), Surreal Software
Дэвид Уоллс (David Walls), Hasbro Interactive
Джей Уилсон (Jay Wilson), Monolith
Джон Зук (Jon Zuk), Raven Software
Сид Мейер (Sid Meier), Firaxis Games
Питер Молиньё (Peter Molyneux), Lionhead Studios
Рик Гудман (Rick Goodman), Stainless Steel Studios
Брюс Шелли (Bruce С. Shelley), Ensemble Studios
Брайан Рейнольде (Brian Reynolds), Firaxis Games
Брайан Рейнольде (Brian Reynolds), Firaxis Games - 2
Крис Тэйлор (Chris Taylor), Gas Powered Games
Питер Морленд (Peter Moreland), Hothouse Creations
Чип Бамгарднер (Chip Bumgardner), Interplay
Крис Тэйлор (Chris Taylor), Interplay
Марк Грин (Mark Green), Psygnosis
Вольфганг Валк (Wolfgang Walk), Blue Byte
Торстен Хесс (Torsten Hess), Blue Byte
Общие принципы создания игр: квесты, РПГ
Боб Бейтс (Bob Bates), Legend Entertainment
Рон Гилберт (Ron Gilbert), Humongous Entertainment
Чэд Фримен (Chad Freeman), Dreamforge Intertainment
Ли Шелдон (Lee Sheldon), SouthPeak Interactive
Роберта Вильяме (Roberta Williams), Sierra
Мэтт Хаусхолдер (Matt Householder), Blizzard Entertainment
Рэй Музика (Ray Muzyka), BioWare
Том Холл (Tom Hall), ION Storm
Шон Хауз (Sean House), Electronic Arts
Стив Коалльер (Steve Coallier), Electronic Arts
Алексей Пажитнов, Microsoft
Франц Ланзингер (Franz Lanzinger), Actual Entertainment
Стюарт Роузмен (Stuart Roseman), nineCo
Адам Левески (Adam Levesque), Blue Fang Games
Аллен Джексон (Allen Jackson), Origin Systems
Аллен Джексон (Allen Jackson), Origin Systems - 2
Создание персонажей, эскизов и проектной документации
Компьютерные игры. Как это делается
Создание головоломок
Создание уровней
Одиночные уровни
Уровни для многопользовательской игры (deathmatch-уровни)
«Захват флага»
Интересность
Интерактивность игры
Достоверность
Советов по проектированию уровней
Общие рекомендации по разработке игр
Геометрия и текстуры
Освещение
Трюки, ловушки, головоломки
Монстры, боеприпасы, аптечки (динамика игры)
Сценические эффекты
Цель
Игровой процесс
Атмосфера
Ограничение в инструментах
Спланируйте все заранее
Не работайте в одиночку
Творите
Создание миссий
Этапы работы над кампанией Brood War
Баланс юнитов
Вам нужен план
Тонкая грань между юмором и серьезностью
Бесплатный инструментарий
Лучше меньше, да лучше
Больше удовольствия за те же деньги
До полного блеска
Не злоупотребляйте триггерами
Старайтесь разбудить эмоции
Сложность, подсказки и баланс игры
Не забывайте об игроках-одиночках
Программирование
Компромисс между сроками и желаниями
Будьте конкретны, предельно конкретны
Какой путь выбрать, кратчайший или оптимальный?
Сначала разработка, затем программирование
Изучите свою аудиторию и конкурентов
Техника - это еще не все
Используйте движок, управляемый данными
Экспериментируйте с существующими движками
Избегайте статических классов и переменных
Количество полигонов и минимальные системные требования
Подготовьте полный проект своей игры
Вовлекайте в работу как можно больше людей
Выделяйте время на исследования и разработку
Нельзя недооценивать ассемблер
Не стоит оптимизировать программу раньше времени
Любите свою программу, но не обожествляйте ее
Игра
Логический интерфейс
Ощущение и отчуждение
Особенности
Искусственный интеллект
Итеративный процесс разработки
Начните с простого
Умножение и деление на двойку
Моделируйте, но не имитируйте
Занимайтесь структурой, а не поведением
Природа - великий подсказчик
Будьте профессионалом
Реализм
Реализм или увлекательность?
Чем проще, тем лучше
Игровая графика
Ваши возможности не безграничны
Программное обеспечение - это еще не все
Работа в команде
Логика мироздания
Оригинальное фоновое освещение
Наложение текстур
Вы не одни
Держите марку
Будьте готовы к критике
Готовьтесь к неожиданностям
Научитесь наступать на горло собственной песне
Работайте быстрее!
Двухмерные инструменты
Трехмерные инструменты
Начало вашей карьеры
Прототипы
Обоснованная критика
Настойчивость
Технические ограничения
Консультируйтесь с художниками
Программные средства
Стержневая идея
Компьютерные игры. Как это делается
Трудная любовь
Идеи и исполнение
Оцените свои возможности
Композиция
Эстетичность
D Studio MAX и SOFTIMAGE (для 3D-графики)
Photoshop (для 2D-графики)
Чувство формы
Анимация
Анимация и искусственный интеллект
Используйте справочный материал
Следите за синхронизацией
Развлекательность важнее реализма
Понимание действий персонажа
Интерфейс пользователя и управление игрой
Интерфейс оболочки
Игровой интерфейс
Интерфейс управления игрой
Управление камерой или персонажем?
Простота и совершенство
Старый друг лучше новых двух
Синдром экскаваторщика
Мэтт Хаусхолдер (Matt Householder), Blizzard North
Звуковое оформление
Загляните в мир разработчика
Будьте полезны
Ломайте стереотипы
Выработайте творческий подход
Начните с качественного звука
Сотрудничайте с коллегами
Творите и не повторяйтесь
Многократно проверяйте звук
Мыслите творчески
Гиперболизируйте эффекты
Нежнее с обработкой!
Музыка в играх
Играйте!
Аудитория - это «игрок», а не «слушатель» или «зритель»
Изучайте используемую технологию
Какое нужно настроение?
Удобное рабочее место
Работа в спешке
Тестирование
Маркетинг и работа с прессой
a href="index-bill-linn-bill-linn-linn-pr.htm" >Билл Линн (Bill Linn), Linn PR
Женевьева Остергард (Genevieve Ostergard), Sierra Studios
Майкл Мейерс (Michael Meyers), Acclaim Entertainment
Адам Кан (Adam Kahn), Acclaim Entertainment
Брэндон Смит (Brandon Smith), Cavedog Entertainment
Вине Дезидерио (Vince Desiderio), Running With Scissors
Даг Ломбарди (Doug Lombardi), Sierra Studios
Лиз Белл (Liz Bell), THQ
Разработка веб-сайтов, посвященных играм
Техническая поддержка и послепродажное обслуживание
База данных
Квалификация
Будьте внимательным слушателем
Хорошая организация
Обменивайтесь информацией
Будьте искренни и доброжелательны
Сделай сам, или Великая Условно-Бесплатная Революция
Компьютерные игры. Как это делается
Как найти свое место в игровой индустрии
Митци Макгилврей (Mitzi McGilvray), Electronic Arts
Джош Резник (Josh Resnick), Pandemic Studios
Майкл Рубинелли (Michael Rubinelli), THQ
Пол О'Коннор (Paul O'Connor), Oddworld Inhabitants
Пол Джейкуэйз (Paul Jaquays), id Software
Кевин Клауд (Kevin Cloud), id Software
Фил Штейнмейер (Phil Steinmeyer), РорТор Software
Ричард «Лорд Бритиш» Гэрриот (Richard «Lord British» Garriott), Origin Systems
Джейн Дженсен (Jane Jensen), Sierra On-Line
Мэтт Притчард (Matt Pritchard), Ensemble Studios
Агенты и вербовщики
Резюме
Демонстрационная версия игры
Распространенные ошибки и простые советы
G.O.D. - божественное откровение
Школы для разработчиков
Ресурсы по разработке игр в Интернете
Www.neversoft.com/christer/GR/design
Www.ultranet.com/~melkior/crpg/index.htm
Www.devgames.com
Www.gamasutra.com
Http://members.aol.com/anarchyxi/gamedev.htm
Rec.games.design
Www.gameslice.com/vgd/index.shtml
Www.gdmag.com
Www.resourcium.com
Www.game-developer.com
Www.gameslice.com
Www.gaminginsider.com
Http://happypuppy.com/biz/index.html
Www.crossover.com/~costik/nowords.html
Www.loonygames.com
Http://kovalic.com/Murphys/Murphys.html
Www.makegames.com
Www.sweetoblivion.com
Www.ugr.net/listings/listings.htm
Конференция разработчиков игр (GDC)
GAMEXecutive
Фестиваль независимых игр
Торговая ярмарка электронных продуктов (ECTS)
Milia Games
SIGGRAPH
GamesCon
GenCon
Comdex, CES, MacWorld Expo...
Академия интерактивных искусств и наук (AIAS)
Международная ассоциация разработчиков игр (IGDN)
Ассоциация индустрии программного обеспечения и информации (SIIA)
Ассоциация художников компьютерных игр
Ассоциация интерактивного компьютерного программного обеспечения (IDSA)
Ассоциация разработчиков компьютерных игр (CGDA)
Американская ассоциация искусственного интеллекта (AAAI)
Совет по оценке развлекательных программ (ESRB)
Ассоциация продавцов интерактивной развлекательной продукции (IEMA)
Консультативный совет по развлекательному программному обеспечению в Интернете (RSACi)
Европейская ассоциация издателей развлекательного программного обеспечения (ELSPA)
Проект Бар-Би-Кью (Project Bar-B-Q)
От издательства
-
Программирование игр для Windows. Советы профессионала
Теперь мы приближаемся к пониманию истинной ценности режима 13h. Он является наиболее простым в программировании. Как вы заметили, все графические режимы (CGA, EGA, VGA, SVGA, XGA и другие) используют некоторую область памяти для представления битовой карты, выводимой на экран.