Не секрет, что любую программу можно написать разными способами: чтобы она занимала минимум места и была удобной для редактирования или же стала неповоротливым нагромождением мусорного кода. В издательстве Бомбора выходит нетривиальная книга по программированию игр, которая учит не тому, как писать код, а как его структурировать. Автор «Паттернов программирования игр» – программист с двадцатилетним стажем Роберт Нистрем, который восемь лет трудился в одной из крупнейших студий разработки Electronic Arts, а первые отзывы и корректировки получал от лучших критиков – своих коллег-разработчиков.
«Допустим, мы работаем над магической игрой-боем. Мы могли бы прописать заклинания прямо в коде, но тогда для внесения правок нам каждый раз пришлось бы привлекать программиста. Когда геймдизайнер хочет изменить некоторые значения и испытать, что выйдет, ему приходится перекомпилировать всю игру, перезагружать ее и снова возвращаться в сражение».
Перед нами кропотливая работа писателя-программиста, рассказывающего, как именно строить код при разработке игры, чтобы не пришлось все переделывать с нуля. Автор рассказывает, как избежать проблем в перспективе, изначально выбрав правильную архитектуру, приводит примеры необычных приемов, объясняет, как задавать двойную буферизацию, лежащую в основе рендеринга, как координировать перемещение юнитов по боевой сетке и даже описывает создание эмулятора машинного кода, чтобы внутри игры был собственный изолированный язык программирования для мододелов.
Вводная часть рассказывает читателю, о чем будет книга и как она структурирована. Раздел про отцов-основателей — это своеобразный референс в сторону важной для Роберта Нистрема книги 1995 года «Приемы объектно-ориентированного программирования. Паттерны проектирования». Основная часть книги — совокупность глав, каждая из которых посвящена отдельно взятому паттерну. Схема для всех глав одна: описание шаблона, примеры применения вместе с кодом (на C++), возможные ошибки и совместимость с другими паттернами. Эта схема во многом облегчает чтение и позволяет использовать книгу не только в ознакомительных целях, но и руководствоваться ей как справочником.
Эта работа окажется весьма полезна программистам и командам разработчиков игр, а также будет интересна всем тем, кто увлечен геймдевом. За рубежом она уже получила всеобщее признание, и даже специалисты по паттернам признаются, что нашли в книге пару-тройку полезных советов. Теперь настал черед отечественных любителей и профессионалов оценить данный труд. «Паттерны программирования игр» — ценный и довольно строгий рабочий инструмент в руках любого программиста, решившего создать собственную игру.