В сентябре выходят «Паттерны программирования игр»: новейший завет для всех, кто погряз в фигурных скобках

Свершилось, друзья: под буквальным лозунгом «Данные > Код» у нас готовится к релизу обласканная отзывами книга Роберта Нистрема «Паттерны программирования игр». И если кто-то скажет, мол, она научит вас кодить — не верьте: эта работа от подобного, скорее, отваживает. Но обо всем по порядку.

Сам автор десять из двадцати лет, посвященных программированию, отдал разработке игр. А восемь из них вовсе провел в стенах Electronic Arts, где приобрел ярко выраженную профдеформацию под названием «сроки разработки». Бобу они показались настолько ужатыми, что эта больная тема сквозной нитью проходит через всю его книгу. В результате автор называет скорость одним из трех важнейших факторов создания проекта наряду с оптимизацией и архитектурой кода.

Генеральной идеей работы Нистрема, однако, остается как раз архитектура: эта книга вовсе не о написании кода, она методах его организации, причем именно с прицелом на разработку игр. Вот почему мы говорим, что «Паттерны программирования игр» отучивают писать код: книга готовит к тому, как минимизировать процесс написания и изначально построить свой код, чтобы не пришлось потом его переделывать.

«Мера хорошо спроектированного кода — то, насколько легко в него вносить изменения».

В сентябре выходят «Паттерны программирования игр»: новейший завет для всех, кто погряз в фигурных скобках

Давно известно, что внесение поверхностных изменений не должно вынуждать заново класть фундамент, и автор хорошо показывает это на примере управления персонажем в игре. Программно на кнопки геймпада привязаны определенные действия, однако игрок может пожелать изменить управление. И такие вариации как раз задаются паттернами, в частности паттерном Command, ведь не лезть же игроку самому переписывать код — да и кто пустит?

Другой пример: представьте, вы с командой создаете игру, погрязли в коде, вроде что-то получается, и тут вы решаете добавить в сюжет дракона. Просто чтобы был. Идете с предложением к ведущему программисту, а он берет и падает в обморок. Оказывается, для внесения в игру какой-то жалкой огнедышащей ящерицы придется перелопачивать вообще все. Как подобного избежать, но при том получить своего дракона, как раз и пытается объяснить Роберт Нистрем.

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

В сентябре выходят «Паттерны программирования игр»: новейший завет для всех, кто погряз в фигурных скобках

Именно подгон под такой баланс связывает воедино довольно дискретные главы книги, посвященные описанию того или иного паттерна. Поймите правильно, это не рассказ о буднях программиста, не свод общих поверхностных знаний. Основной массив книги — воспроизведение паттернов, один за другим, глава за главой. Что делает конкретный паттерн, где применяется, его реальные кейсы, примеры кода (на C++) и указание особенностей взаимодействия с другими паттернами. Все сделано так, чтобы вы могли буквально переписать каждый указанный прием в собственный проект.

Это очень структурированная книга (а чего еще ждать от программиста?), где автор не просто делится известными данными, но и показывает найденные им самим нетривиальные решения для разработки. Роберта при этом никак не обвинишь в чересчур сухом изложении, посмотрите хотя бы на эти его милые иллюстрации:

В сентябре выходят «Паттерны программирования игр»: новейший завет для всех, кто погряз в фигурных скобках

Но чтобы вы не расслаблялись, есть там и такое: «Числовые константы просто равняются своим значениям. Сложение и умножение немного более сложные, так как включают вложенные выражения. Прежде чем их вычислить, надо рекурсивно вычислить вложенные выражения. Примерно так».

В сентябре выходят «Паттерны программирования игр»: новейший завет для всех, кто погряз в фигурных скобках

Вот здесь можно оформить предзаказ «Паттернов программирования игр» (на сайте Book24, а позднее во всех интернет-магазинах) и больше никогда не писать лишние куски кода.

160160
123 комментария

А восемь из них вовсе провел в стенах Electronic Arts

34

Комментарий недоступен

6

Насколько помню, в книге Роберт упоминал, что работал в Westwood. А в EA он попал только после покупки этой студии электрониками.

А откуда этот мем, пожалуйста?

новейший завет для всех, кто погряз в фигурных скобках@Andrey Apanasik переведи, тут что-то на програмистском.

6

Хорошо делай — хорошо будет.

22

{
    fuckThisShitImOut(mmmmm,hmmmmm);
}

5