воскресенье, 27 ноября 2011 г.

Проектирование игр: функциональный подход

Сегодня выкладываю свою презентацию с КРИ 2008. Она освещает вопросы проектирования видео игр, разумеется, не с гейм-дизайнерской, а с технической точки зрения. В презентации изложены ответы на такие вопросы:

  1. К каким проблемам приводят слишком большие иерархии классов?
  2. Чем можно заменить такие иерархии?
  3. Что брать в качестве основы декомпозиции на подсистемы - функции или объекты?
  4. Как проектировать AI-водителя для гоночной игры? (Описание примера.)
  5. Чем "грешит" паттерн "Цепочка обязанностей"?
КРИ 2008. Проектирование игр: функциональный подход
View more presentations from Kirill Lebedev

Звук к презентации в формате OGG можно скачать здесь.

4 комментария:

  1. > Построениене противоречивой иерархии объектным способом невозможно

    Вы вроде разбираетесь в ООП и пишете статьи о проектировании ПО, и по идее должны бы знать, что
    использование ООП не ограничивается использованием паттерна "шаблонный метод" где описываются проблемы этого самого простого и черезчур популярного паттерна в ООП и о которых говорится в первой 20-тке из 50 слайдов.

    Возможно Вам стоит перечитать азбуку ООП,
    http://www.ozon.ru/context/detail/id/2457392/
    прежде чем делать громкие заявления.

    ОтветитьУдалить
  2. 1) Коллега, в цитате, приведённой Вами, упущена частица 'не'.

    2) Не вижу, где бы я упоминал в презентации шаблонный метод.

    ОтветитьУдалить
  3. 1) Почти правы - я пропустил пробел.
    2) да, не упоминали - говоря другими словами, у вас самая обычная проблема злоупотребления наследованием.

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

    ОтветитьУдалить
  4. Я с Вами согласен - некоторые паттерны изобретены, чтобы устранить проблемы, порождённые классическим ООП. Но лучше проектировать с самого начала правильно и не порождать этих проблем.

    ОтветитьУдалить