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

       

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


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

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

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

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

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

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

Вам никогда не попадались программисты, занятые преобразованием отлично читаемых программ на Си в крайне неуклюжие (хотя, возможно, и очень умные) программы на ассемблере, хотя все уже гарантированно работает с частотой 120 кадров в секунду? А мне попадались. Понятно желание сделать код настолько быстрым, насколько это в принципе возможно, но это уж слишком. Не стоит забывать и о том, что код должен легко читаться, что особенно актуально в современных компаниях, занимающихся разработкой ПО (вполне вероятно, что к тому или иному фрагменту вашей программы будут обращаться десятки людей). В большинстве случаев введение в игру кода, написанного на ассемблере, на начальной стадии реализации проекта является плохой идеей. Это сильно затрудняет обновление и дополнение программы.



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