Илья Вайсмантехнический директор проекта,департамент клиентских игрwww.mail.ruКомпонентная архитектура игровой механики MMORPG
Оглавлениеwww.mail.ru2Постановка задачи Компонентная модель Последствия  Дизайн
  Сервисы
  Клиент
  РедакторыПостановка задачиwww.mail.ru3Постановка задачи Компонентная модель Последствия  Дизайн
  Сервисы
  Клиент
  РедакторыМеханика MMORPGwww.mail.ru4Классика:RPG-система  предметы  заклинания и пассивные способности  навыки  интерактивные объекты – мобы и устройства  система спавна  задания и скриптование зонСпецифика – всё, что угодно
Особенности MMOwww.mail.ru5Большое количество компонентовРаспределённые вычисленияЗащита от жульничества
Вопросы реализацииwww.mail.ru6Гарантия производительностиСвобода дизайнеровТрадиция. Дизайнеры не занимаются вопросами производительности.
Размер кирпичикаwww.mail.ru7Баланс между крайностями регулируется размером кирпичиков, из которых дизайнер собирает игру
Аргументацияwww.mail.ru8Низкая квалификация дизайнеровВысокая квалификация дизайнеровБольшие кирпичикиМаленькие кирпичики  Меньше работы дизайнерам.
  Рост гарантии эффективности работы игры.
  Риски, связанные с большим количеством типов компонентов.
  Код состоит из небольших независимы кусочков.
  Большие возможности для повторного использования.
  Отсутствие дублирования функциональности.Компонентная модельwww.mail.ru9Постановка задачи Компонентная модель Последствия  Дизайн
  Сервисы
  Клиент
  РедакторыПример сборки – заклинаниеwww.mail.ru10
Универсальные компонентыwww.mail.ru11УстройствоНавыкЗаклинаниеЗаданиеМобСпособностьПредметУсловиеВоздействиеДолговременный эффект
Опасность дублированияwww.mail.ru12Производя большое количество мелких элементов, легко наделать дубликатов или просто похожих запчастей.Эту тенденцию надо пресекать как можно раньше.
Непредвиденные ожиданияwww.mail.ru13Пример. Элементы типа «условие» легко проверять.Однако для реакции на их изменение каждый раз потребуется новый код.
Последствияwww.mail.ru14Постановка задачи Компонентная модель Последствия  Дизайн
  Сервисы
  Клиент
  РедакторыДизайнwww.mail.ru15Постановка задачи Компонентная модель Последствия  Дизайн
  Сервисы
  Клиент
  РедакторыЗаказана функциональностьwww.mail.ru16Это происходит со скоростью примерно одна задача на программиста в день.Заказ в текстовом видеДекомпозицияОбобщение компонентовРеализация недостающихИспользование существующихСборкапримераОбъяснение заказчикам, как этим пользоваться
Документацияwww.mail.ru17СхемыИмеют сложный дизайн, требуют подробного описания. Их немного и меняются они редко.КомпонентыУстроены просто, документируются именем и кратким описанием.
Сложная функциональностьwww.mail.ru18Пример сборки сложной функциональности – задание сопровожденияТриггер на сопровождаемомЗаставляет идти по маршруту, меняет поведение на агрессивное.Считает число сопровождающих, уничтожает носителя при обнулении.ЗаданиеИнициализирует ситуацию – развешивает триггеры на всех участников.По-разному обрабатывает ситуации «начать сопровождение» и «присоединиться к сопровождению».Триггер на сопровождающемСледит за удалением от сопровождаемого, за достижением им конца пути, за смертью всех участников.Специфичного кода нет
Повторное использованиеwww.mail.ru19А теперь – много заданий сопровождения, отличающихся деталями.Если никак не подпирать, число дизайнерских ошибок в заданиях сопровождения будет пропорционально числу заданий сопровождения.Выходы.Специальный код в редакторе (частное решение).Шаблоны ресурсов.
Сервисыwww.mail.ru20Постановка задачи Компонентная модель Последствия  Дизайн

Компонентная архитектура игровой механики MMORPG.