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

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

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

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

Не стоит оптимизировать программу раньше времени

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

Оптимизация кода инициализации

Зачем это нужно? Он запускается один раз в начале программы. Разумеется, если из-за предварительной обработки крупных текстур запуск игры занимает полминуты, тогда что-то сделать нужно (скажем, вынести эту задачу как отдельный шаг в обработке уровней), но в 99,9% случаев, если код выполняется всего один раз, вообще не стоит об этом беспокоиться.

Оптимизация до анализа

С моим опытом в программировании, уходящим далеко в прошлое (я впервые сел за Apple II+ в семь лет), я по-прежнему часто ошибаюсь в определении, что замедляет, а что не замедляет мой код. К счастью, профайлеры (особенно VTune от Intel) стали обычным инструментом программирования. Они помогут вам быстро и легко определить, какие функции и даже какие строки являются причиной того, что ваш код выполняется столь вяло. После подобного анализа вы наверняка никогда не будете расточать время, оптимизируя что-то, что и так работает достаточно быстро.

Оптимизация быстрых программ

Вам никогда не попадались программисты, занятые преобразованием отлично читаемых программ на Си в крайне неуклюжие (хотя, возможно, и очень умные)


Новости
Lego начнет создавать безопасную для детей онлайн-среду
Lego начнет создавать безопасную онлайн-среду для детей Life.
SEGA продолжит серию House of the Dead аркадой Scarlet Dawn
Хоррор-игра House of the Dead: Scarlet Dawn разрабатывается на Unreal Engine 4 и количество жутких врагов в ней обещает стать рекордным для серии.