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

6.    Оптимизируйте работу с циклами.

Как правило, большую часть времени программа крутится в каких-либо циклах. Поэтому очень актуально ускорить время выполнения одной итерации. При этом если, например, время одной итерации вы уменьшили на 50 тактов работы процессора, а всего итераций - 10000, то в целом получится выигрыш: 10000*50 = 500000 тактов работы процессора Ускорение работы цикла можно получить таким образом: если количество итераций - константа, например -10000, то внутри тела цикла можно последовательно написать, допустим 5 итераций, а цикл сделать по 2000 (10000/5). Эго будет работать быстрее, т.к. ветвления в семействе процессоров 80x86 вызывают перезагрузку очереди команд, что дает некоторое замедление.

При работе с циклами старайтесь пользоваться только регистровыми переменными и использовать механизм предварительных вычислений.

7.    Оптимальная работа с видеобуфером.

Как известно, наибольшее замедление практически во всех играх получается при выводе изображения на экран. Это неслучайно. Дело в том, что работа с видеопамятью в два и более раз медленней, чем с обычной оперативной памятью. Поэтому' в своих играх вывод информации на экран надо сделать настолько оптимальным, чтобы не происходил несколько раз подряд вывод в одно и то же место на экране. Обычно изображение формируют в буфере экрана (виртуальный экран или теневой экран), коим является участок оперативной памяти размером с экран (для разрешения 320x200x256 размер буфера равен 64000 байт). После этого измененные участки или целиком бу фер копируют на экран. В DOOM’e использован другой подход, и он даже быстрее этого. В нем изображение формируется в невидимой части видеопамяти, но таким образом, что ни одна точка на экране не прорисовывается дважды. После этого производится переключение страницы. В некоторых играх, где производится постоянное обновление экрана, использован интересный подход, который с первого взгляда кажется неэффективным, ио на практике, в некоторых случаях, дает ощутимый выигрыш в скорости. Этот подход основан на том предположении, что каждый последующий кадр изображения незначительно отличается от предыдущего. На практике обычно так оно н есть. Для этого в оперативной памяти выделяются два буфера размером с экран. С каждым кадром изображение попеременно формируется то в первом, то во втором бу фере (просто меняются местами указатели этих буферов). Для вывода на экран эти два бу фера сравниваются между собой и выводятся только несовпадающие участки. Казалось бы, что проще и быстрее воспользоваться командой “rep movsd” для вывода целиком буфера. Однако, учитывая те факты,

Новости
Авторы Kingdom Come: «Мы хотели сделать Red Dead Redemption с мечами»
Не причислять себя к традиционным инди-разработчикам, а пытаться создать игру, сравнимую с Red Dead, Far Cry, «Ведьмаком», Assassin’s Creed и The Elder Scrolls V: Skyrim.
VR-игра по мотивам Psychonauts добралась до ПК
На ПК вышла VR-игра от легендарного Тима Шейфера: теперь в Psychonauts in the Rhombus of Ruin могут сыграть не только владельцы PS VR, но и обладатели HTC Vive или Oculus Rift.