• Думайте о производительности и учитывайте ее на
протяжении всего цикла разработки, но отложите
низкоуровневую тонкую оптимизацию,
которая де-
лает код менее гибким, на настолько поздний срок,
насколько возможно.
• Двигайтесь быстро, чтобы исследовать игровые ме-
ханики своей игры, но
не так быстро, чтобы остав-
лять за собой беспорядок. В конце концов, вам еще
придется работать с этим кодом.
• Если вы собираетесь использовать временный код,
не тратьте время на то, чтобы сделать его красивым.
Рок-звезды устраивают
погромы в гостиничных но-
мерах, ведь они собираются уехать на следующий
день.
• Но, прежде всего, если
вы хотите сделать что-то
интересное, научитесь получать удовольствие
от процесса
.
Поверьте, два
месяца
до релиза
не
самое
удачное время для бес-
покойства о «малень-
кой» проблеме типа
«эта игра работает
только на 1 FPS».
Паттерны программирования игр
— Другой взгляд на паттерны проектирования
31
Другой
взгляд
на паттерны
проектирования
Глава 2. Команда (Command)
Глава 3. Приспособленец (Flyweight)
Глава 4. Наблюдатель (Observer)
Глава 5. Прототип (Prototype)
Глава 6. Одиночка (Singleton)
Глава 7. Состояние (State)
Книге
«Приемы объектно-ориентированного проекти-
рования. Паттерны проектирования»
почти двадцать
лет, по моим подсчетам. И если прямо сейчас вы не стои-
те за моей спиной, то, когда вы прочитаете эти строчки,
«Паттерны проектирования»
будут считаться «взрослы-
ми». В
любой отрасли, которая развивается так же бы-
стро, как разработка, такой возраст для книги считается
пенсионным. Но длительная популярность
«Паттер-
нов»
говорит о том, насколько проектирование долго-
вечнее любого фреймворка или методологии.
Хотя я
и считаю
«Паттерны проектирования»
по-прежнему актуальными, мы многому научились
за последние несколько десятилетий. В этом разделе мы
рассмотрим несколько исходных паттернов, описанных
«Бандой четырех». Надеюсь,
для каждого из паттернов
я смог добавить что-то интересное или полезное.
Некоторые паттерны мне кажутся переоцененными
(Одиночка (Singleton)), а другие — наоборот (Команда
Часть II
(Command)). Некоторые попали в этот список, потому
что я хотел изучить их применимость в разработке игр
(Приспособленец (Flyweight) и Наблюдатель (Observer)).
И наконец, иногда я просто думаю,
что было бы интерес-
но показать, как паттерны взаимодействуют с другими
более широкими областями программирования (Про-
тотип (Prototype) и Состояние (State)).