Хонич А.
Как самому создать трехмерную игру
стр. 14

Глава 1 Выбор инструментария

Скорость работы 3-мерных игр зависит от многих факторов, основным из которых является тип используемого процессора. Если для игры DOOM написано, что для ее работы требуется процессор не ниже 386SX, то это не означает, что в нее можно играть на компьютерах с использованием данного процессора. Через некоторое время вам это надоест, и более того, сложится ложное представление об игре, как о неинтересной и нудной. Практика показывает, что для нормальной, быстрой работы данной программы необходим процессор не хуже 486DX2-66 да еще и с быстрой видеокартой с шиной VLB или PCl!

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

Конечно же, исходя из второго пункта, можно попытаться написать DOOM на ассемблере. Однако, маю того, что это занятие не для слабонервных, к концу написания может оказаться, что данная программа уже устарела года этак на три, и вы напрасно потеря.™ столько драгоценного времени, получив разве что моратьное удовлетворение.

Третий пункт также может быть не совсем понятен. Каким это образом такую сложную технологию можно реализовать без операций вычисления с плавающей точкой? Однако здесь можно внести поправку. Отказ от плавающей арифметики вовсе не предполагает использование целочисленной арифметики. Имеется нечто среднее между ними - фиксированная точка. Число с фиксированной точкой состоит из 32 бит (4-х байт). При этом младшие 16 бит несут информацию о дробной части, следующие 15 бит - информацию о целой части, а последний 32-й бит - информацию о знаке числа. Операции над числами с фиксированной точкой (в дальнейшем буду называть фиксированными числами) несу щественно отличаются от целочисленной арифметики и не предполагают наличие арифметического сопроцессора. Например, сложение и вычитание фиксированных чисел не отличается от целых чисел, для преобразования фиксированного числа в целое необходимо сдвинуть его вправо на 16, для обратного преобразования - влево на 16, при умножении фиксированных чисел одно число умножается на другое и полупившийся 64-битный результат сдвигается вправо на 16. Например, если одно число находится в регистре ЕАХ, а второе в EDX, то их произведение будет выглядеть так:


Новости
3-й эпизод Hitman завтра станет бесплатным
Tomorrow the HITMAN: Summer Pack arrives. Giving you access to download Episode 3: Marrakesh.
Разработчики шутера GTFO показали новых врагов-теней в действии
Разработчики продемонстрировали в действии новых врагов-теней.