Найстром шаблоны игрового программирования

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

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

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

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

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

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

Читайте также:  Луа язык программирования основы

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

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

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

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

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

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

Источник

Бесплатная книга «Game Programming Patterns» от программиста Electronic Arts Боба Найстрома

Боб Найстром, программист, проработавший восемь лет в компании Electronic Arts, закончил работу над книгой «Game Programming Patterns». Она доступна бесплатно на сайте gameprogrammingpatterns.com. Писать книгу Боб Найстром начал четыре года назад. Большинство книг, посвящённых программированию игр, говорит он во введении, либо подробно раскрывают какой-то из аспектов создания игры — физический движок, графику, искусственный интеллект, либо описывают процесс создания игры в определённом жанре от начала до конца. Ему очень не хватало книги, рассказывающей о решении типовых задач, возникающих перед программистом, книги достаточно универсальной, не привязанной к жанрам или конкретным подсистемам игр. И поэтому он решил написать такую книгу сам.

«Шаблоны программирования игр» можно читать начиная с любой главы, но всё же сначала стоит ознакомиться с вводной частью, в которой описаны общие вопросы архитектуры игр и наиболее часто используемые в играх классические шаблоны проектирования от «банды четырёх». Рассказ о шаблонах, относящихся непосредственно к играм, разбит на четыре части — шаблоны последовательности, поведения, декомпозиции и оптимизации. Все главы снабжены примерами кода на C++, в которых по возможности не используются узко специфические для этого языка конструкции и функции стандартной библиотеки, чтобы код был максимально понятен всем, кто знаком с ООП и синтаксисом Си, а не только программистам С++.

Сейчас, кроме HTML-версии на сайте, книга доступна в исходниках на Markdown. В скором времени Найстром рассчитывает сверстать электронную книгу и выпустить бумажный вариант — но в любом случае книга останется в свободном доступе.

Источник

Паттерны программирования игр

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

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

Хороший код — основа любой игры. Работа игрового программиста состоит из множества задач, среди которых оптимизация игры, повышение производительности и создание надежной архитектуры. Одна из наиболее частых проблем, с которыми сталкиваются программисты, — разрастание кода до неконтролируемых размеров, что нередко обескураживает команду и даже встает на пути выхода игры. Как с этим бороться? У автора книги, программиста Electronic Arts Роберта Нистрема, есть для вас парочка действенных советов.

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

«Лучший сборник практических рецептов реализации типовых задач в играх. Компактно, понятно, без информационного шума. Равномерный срез огромного пласта решений, уже принятых в игровой индустрии. Эта книга — отличная начальная точка для углубленного изучения конкретных алгоритмов и реализаций». — Кирилл Шабордин, CTO, W4 Kit / Cubelaria

Хороший код — основа любой игры. Работа игрового программиста состоит из множества задач, среди которых оптимизация игры, повышение производительности и создание надежной архитектуры. Одна из наиболее частых проблем, с которыми сталкиваются программисты, — разрастание кода до неконтролируемых размеров, что нередко обескураживает команду и даже встает на пути выхода игры. Как с этим бороться? У автора книги, программиста Electronic Arts Роберта Нистрема, есть для вас парочка действенных советов.

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

«Лучший сборник практических рецептов реализации типовых задач в играх. Компактно, понятно, без информационного шума. Равномерный срез огромного пласта решений, уже принятых в игровой индустрии. Эта книга — отличная начальная точка для углубленного изучения конкретных алгоритмов и реализаций». — Кирилл Шабордин, CTO, W4 Kit / Cubelaria

Источник

Найстром шаблоны игрового программирования

Главная » Шаблоны игрового программирования

Шаблоны игрового программирования

Шаблоны игрового программирования (GameProgrammingPatterns)

Автор/Издательство: Robert Nystrom
Оригинальное название: «Game Programming Patterns»
Год: 2014
Кол-во страниц: больше 350
Формат: PDF
Размер: 8.52 Мб
Язык: Русский

Самый большой вызов, стоящий перед многими программистами игр это закончить разработку игры. Большинство игровых проектов выдыхаются, подавляемые сложностью своего собственного кода. Шаблоны (паттерны) игрового программирования решают эту проблему. На основе многолетнего опыта ведения ААА-проектов, в этой книге собраны проверенные шаблоны, чтобы распутать и оптимизировать игру, организованные в качестве независимых рецептов, так что вы сможете выбрать любой, который вам будет нужен.

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

  • Введение
    • Архитектура, производительность и игры
    • Команда (Command)
    • Приспособленец (Flyweight)
    • Наблюдатель (Observer)
    • Прототип (Prototype)
    • Синглтон (Singleton)
    • Состояние (State)
    • Двойная буферизация (Double Buffering)
    • Игровой цикл (Game Loop)
    • Методы обновления (Update Methods)
    • Байткод (Bytecode)
    • Подкласс песочница (Subclass Sandbox)
    • Объект тип (Type Object)
    • Компонент (Component)
    • Очередь событий (Event Queue)
    • Поиск службы (Service Locator)
    • Локальность данных (Data Locality)
    • Грязный флаг (Dirty Flag)
    • Пул объектов (Object Pool)
    • Пространственное разбиение (Spatial Partition)

    Данная книга в электронной версии предназначена только для ознакомления, скачивая ее, вы соглашаетесь безоговорочно удалить произведение автора со своего устройства после краткого просмотра. Рекомендую вам купить оригинальное издание этой книги в бумажном, или электронном виде.

    Источник

Оцените статью