Компьютерные игры. Как это делается

       

Нельзя недооценивать ассемблер


С появлением каждого нового поколения процессоров Intel в интернетовских группах новостей и курилках фирм, занимающихся разработкой ПО, вновь разгораются дискуссии относительно будущего языка ассемблер. Идея написать игру для ПК целиком на ассемблере уже никогда не осуществится, однако это вовсе не означает, что ассемблер перестал быть чрезвычайно полезным инструментом программирования. Интенсивно выполняющиеся циклы, которые потребляют львиную долю общего времени выполнения игры, всегда будут существовать в той или иной форме. Раньше они использовались для копирования больших битовых массивов, сейчас применяются для внутренних циклов отображения текстур. Что же дальше? Как насчет триангуляции сплайновых персонажей в реальном времени? Блок программы, который выполняет цикл сотни, тысячи или сотни тысяч раз для каждого кадра, часто будет работать гораздо быстрее, если он написан на ассемблере.

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

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

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



Содержание раздела