21
Copyright © Buka Entertainment Enterprises, 2003 Разработка Разработка AI Middleware AI Middleware SDK. SDK. Алексей Алексей Осипенко Осипенко Руководитель службы Руководитель службы R&D R&D Buka Entertainment Enterprises Buka Entertainment Enterprises [email protected] [email protected]

Разработка AI Middleware SDK

  • Upload
    steve

  • View
    66

  • Download
    0

Embed Size (px)

DESCRIPTION

Разработка AI Middleware SDK. Алексей Осипенко Руководитель службы R&D Buka Entertainment Enterprises [email protected]. Почему об этом имеет смысл подумать?. Разработка игровой логики является одним из самых проблемных мест в gamedev -е. - PowerPoint PPT Presentation

Citation preview

Page 1: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Разработка Разработка AI Middleware AI Middleware SDK.SDK.

АлексейАлексей ОсипенкоОсипенкоРуководитель службы Руководитель службы R&DR&D

Buka Entertainment EnterprisesBuka Entertainment [email protected]@buka.ru

Page 2: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Почему об этом имеет смысл Почему об этом имеет смысл подумать?подумать?

• Разработка игровой логики является одним из Разработка игровой логики является одним из самых проблемных мест в самых проблемных мест в gamedevgamedev-е.-е.

• Это одно из самых недетерминированных мест Это одно из самых недетерминированных мест в разработке...в разработке...

• ... и определяющих, получится ли, в итоге ... и определяющих, получится ли, в итоге играигра или нет.или нет.

Page 3: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Проблема изменения Проблема изменения архитектурыархитектуры

• Геймдизайнеры предлагают изменения в Геймдизайнеры предлагают изменения в системе игровой логики не сообразуясь с ее системе игровой логики не сообразуясь с ее программной архитектурой.программной архитектурой.

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

• Постепенно утрачивается концептуальная Постепенно утрачивается концептуальная целостность.целостность.

• Архитектура перестает быть понятной самим Архитектура перестает быть понятной самим программистам.программистам.

Page 4: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Как можно изменить эту Как можно изменить эту ситуациюситуацию

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

• Это представление должно опираться на Это представление должно опираться на простую графическую модель архитектуры.простую графическую модель архитектуры.

• Модель должна соответствовать текущему Модель должна соответствовать текущему положению дел.положению дел.

• Поддержание соответствия модели и Поддержание соответствия модели и программного кода не должно вносить программного кода не должно вносить дополнительные накладные расходы.дополнительные накладные расходы.

Page 5: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Откуда можно взять модельОткуда можно взять модель

• Архитектура содержится в программном коде Архитектура содержится в программном коде и должна извлекаться из него.и должна извлекаться из него.

• Механически извлеченная из кода модель Механически извлеченная из кода модель почти всегда имеет бессистемный характер – почти всегда имеет бессистемный характер – все абстракции «свалены в одну кучу».все абстракции «свалены в одну кучу».

• Такая модель «замусорена» деталями Такая модель «замусорена» деталями реализации и вспомогательными реализации и вспомогательными абстракциями.абстракциями.

• Невозможно вычленить многие значимые Невозможно вычленить многие значимые идеи.идеи.

Page 6: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Возможный способ Возможный способ преодоления описанных преодоления описанных

трудностейтрудностей• Использовать инкапсуляцию для фильтрации Использовать инкапсуляцию для фильтрации

малозначимых деталей.малозначимых деталей. Программисты должны скорпулезно следовать Программисты должны скорпулезно следовать

механизмам инкапсуляции, предусмотренным в механизмам инкапсуляции, предусмотренным в языке.языке.

• Визуализировать только интерфейсы.Визуализировать только интерфейсы.

• Помечать важные абстракции комментариями Помечать важные абстракции комментариями специального вида.специального вида. Подчас, трудоемко и не поддаётся верификации.Подчас, трудоемко и не поддаётся верификации.

• Механизмы все равно остаются «за кадром»!Механизмы все равно остаются «за кадром»!

Page 7: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Можно «зайти с другого Можно «зайти с другого конца»конца»

• Строить не модель по коду, а код по модели.Строить не модель по коду, а код по модели.

• Преимущества:Преимущества: Модель систематизирована и имеет осмысленную Модель систематизирована и имеет осмысленную

визуальную структуру.визуальную структуру. Можно отобразить вещи, не извлекаемые из кода.Можно отобразить вещи, не извлекаемые из кода.

• Недостатки:Недостатки: То, что не может быть извлечено из кода, не будет То, что не может быть извлечено из кода, не будет

перенесено в код автоматически.перенесено в код автоматически. Поддержка согласованности модели и кода Поддержка согласованности модели и кода

сложна, трудоемка и не всегда доступна для сложна, трудоемка и не всегда доступна для верификации.верификации.

Page 8: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

В чем корень проблемыВ чем корень проблемы

• Элементы, составляющие архитектуру Элементы, составляющие архитектуру системы, не всегда имеют однозначное системы, не всегда имеют однозначное отображение на семантику языка отображение на семантику языка программирования и наоборот.программирования и наоборот. Семантика языков программирования очень богата Семантика языков программирования очень богата

– многие идеи возможно реализовать несколькими – многие идеи возможно реализовать несколькими различными способами.различными способами.

Большинство идей не отображаются прямо на Большинство идей не отображаются прямо на семантику языка – для их реализации требуются семантику языка – для их реализации требуются сложные конструкции.сложные конструкции.

• Многие важные для понимания архитектуры Многие важные для понимания архитектуры элементы возникают элементы возникают толькотолько в в runtime runtime -е. -е.

Page 9: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Двухуровневая системаДвухуровневая система

• Можно разнести значимые элементы архитектуры и Можно разнести значимые элементы архитектуры и детали реализации на разные уровни.детали реализации на разные уровни.

• Уровень, реализующий архитектуру должен иметь Уровень, реализующий архитектуру должен иметь взаимно однозначное соответствие с ее моделью:взаимно однозначное соответствие с ее моделью:

Всем элементам этого уровня соответствуют элементы модели.Всем элементам этого уровня соответствуют элементы модели.

Изменения в модели, внесенные путем ее визуального Изменения в модели, внесенные путем ее визуального редактирования, должны немедленно отражаться в реализации.редактирования, должны немедленно отражаться в реализации.

• На верхнем уровне должны быть отражены и На верхнем уровне должны быть отражены и абстракции времени выполнения.абстракции времени выполнения.

Этот уровень должен реализовываться как Этот уровень должен реализовываться как runtime environment runtime environment (middleware).(middleware).

Page 10: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

А как же код реализации?А как же код реализации?

• Реализация должна ограничивать Реализация должна ограничивать возможности редактирования модели:возможности редактирования модели: Изменения, противоречащие имеющейся Изменения, противоречащие имеющейся

реализации должны автоматически реализации должны автоматически ограничиваться.ограничиваться.

Эти ограничения должны базироваться на Эти ограничения должны базироваться на поведенииповедении реализации, а не на ее исходных реализации, а не на ее исходных текстах – еще одно «за» для текстах – еще одно «за» для runtime environment.runtime environment.

• Должны иметься эффективные механизмы Должны иметься эффективные механизмы управления связыванием элементов управления связыванием элементов реализации времени выполнения.реализации времени выполнения.

Page 11: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

А так вообще бывает?А так вообще бывает?

• В индустриальном программировании роль В индустриальном программировании роль такого такого runtime environment runtime environment выполняют базы выполняют базы данных.данных. Схема базы данных достаточно полно отражает Схема базы данных достаточно полно отражает

организацию данных системы.организацию данных системы. Там же содержатся ограничения, верифицирующие Там же содержатся ограничения, верифицирующие

соответствие вносимой информации архитектуре соответствие вносимой информации архитектуре системы – СУБД поддерживает целостность данных.системы – СУБД поддерживает целостность данных.

В БД имеются механизмы – триггеры.В БД имеются механизмы – триггеры.

• Имеется широкий спектр инструментальных Имеется широкий спектр инструментальных средств для визуализации и редактирования средств для визуализации и редактирования схемы базы данных.схемы базы данных.

Page 12: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Почему реляционные базы Почему реляционные базы данных не являются решением данных не являются решением

для нас?для нас?• Базы данных ориентированы на Базы данных ориентированы на

структурированное структурированное хранениехранение данных: данных: Системы на их основе, в основном, «Системы на их основе, в основном, «регистрируютрегистрируют» »

реальный мир.реальный мир. Ограничения, закладываемые в базу, отражают Ограничения, закладываемые в базу, отражают

правила внесения информации, не всегда правила внесения информации, не всегда проецирующиеся на законы и правила реального проецирующиеся на законы и правила реального мира.мира.

• Для реализации игровой логики нужна Для реализации игровой логики нужна система система моделированиямоделирования мира. мира.

• Изменения в схеме БД приводят к Изменения в схеме БД приводят к рассогласованию с остальным кодом системы.рассогласованию с остальным кодом системы.

Page 13: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Наш вывод из приведенных Наш вывод из приведенных предпосылокпредпосылок

• Для реализации «верхнего» уровня игровой Для реализации «верхнего» уровня игровой логики нужна логики нужна объектная база данныхобъектная база данных..

• Эта база должна быть системой времени Эта база должна быть системой времени выполнения – выполнения – middleware.middleware.

• Для поддержания однозначного соответствия Для поддержания однозначного соответствия с реализацией эта база должна поддерживать с реализацией эта база должна поддерживать изменения «на лету».изменения «на лету».

• Применение такой базы в играх будет Применение такой базы в играх будет возможным только в случае достижения возможным только в случае достижения приемлемого быстродействия.приемлемого быстродействия.

Page 14: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Выработанная нами Выработанная нами архитектура системы архитектура системы AI AI

Middleware.Middleware.

Топологическийдвижок

База данных игрового мира

Физический движок

Движок управленияресурсами

(«экономический»)

Движок-агентигрока

Движок-агент ИИ

View

View

View

Подсистемапользовательского

интерфейса

Визуализатор

Звуковаяподсистема

Менеджерсобытий

Система поддержкираспределенных

вычислений

Сеть

Page 15: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Схема интерфейса играющего Схема интерфейса играющего с системойс системой

Monitor Keyboard

Mouse

БД игрового мира

Direct Input

View

View

View

3D Engine

Движок-агентигрока

Пользовательскийинтерфейс

Page 16: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Что может дать использование Что может дать использование AI Middleware SDKAI Middleware SDK

• Возможны быстрое создание и адаптация игрового Возможны быстрое создание и адаптация игрового мира в соответствии с потребностямимира в соответствии с потребностями game designer-а game designer-а посредством интуитивно понятных инструментов, посредством интуитивно понятных инструментов, предполагаемых в данном предполагаемых в данном SDK.SDK.

• Использование средств такой системы задает Использование средств такой системы задает определенную методологию, позволяющую определенную методологию, позволяющую детерминировать процесс разработкидетерминировать процесс разработки..

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

Page 17: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Что может дать использование Что может дать использование AI Middleware SDKAI Middleware SDK (2) (2)

• В комплект В комплект SDKSDK можно включить типовые решения для можно включить типовые решения для популярных игровых жанров включающие в себя:популярных игровых жанров включающие в себя: Набор базовых примитивов для формирования объектов Набор базовых примитивов для формирования объектов

игрового мира – unit-ов, правил и т.п.;игрового мира – unit-ов, правил и т.п.;

Набор средств разработки, позволяющий, выбрав жанр Набор средств разработки, позволяющий, выбрав жанр разрабатываемой игры, автоматически сформировать «скелет» разрабатываемой игры, автоматически сформировать «скелет» игрового проектаигрового проекта..

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

Page 18: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Что может дать использование Что может дать использование AI Middleware SDKAI Middleware SDK (3) (3)

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

визуальных средств системы так и программно;визуальных средств системы так и программно; Деревья принятия решений;Деревья принятия решений; Нейросети;Нейросети; Генетические алгоритмы;Генетические алгоритмы; Алгоритмы для часто встречающихся задач: поиск Алгоритмы для часто встречающихся задач: поиск

пути, расчет столкновений и т.п.пути, расчет столкновений и т.п.

Page 19: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Что может дать использование Что может дать использование AI Middleware SDKAI Middleware SDK (4) (4)

• Система должна иметь многоуровневый программный Система должна иметь многоуровневый программный интерфейс, позволяющий, с одной стороны, интерфейс, позволяющий, с одной стороны, максимально просто решать типовые задачи и, с максимально просто решать типовые задачи и, с другой стороны, вносить изменения в поведение всей другой стороны, вносить изменения в поведение всей системы на любом уровне. Это позволяет быстро системы на любом уровне. Это позволяет быстро начать работу с системой, сразу имея зримый начать работу с системой, сразу имея зримый результат, и решать все нетривиальные задачи, результат, и решать все нетривиальные задачи, возникающие в виду специфики разрабатываемой возникающие в виду специфики разрабатываемой игры, по мере все более глубокого знакомства.игры, по мере все более глубокого знакомства.

• Такая система позволяет геймдезайнеру решать Такая система позволяет геймдезайнеру решать большинство возникающих проблем самостоятельно, большинство возникающих проблем самостоятельно, не прибегая к помощи разработчиков.не прибегая к помощи разработчиков.

• Позволяет команде разработчиков реализовывать Позволяет команде разработчиков реализовывать более сложные и масштабные проекты, не ограничивая более сложные и масштабные проекты, не ограничивая квалифицированных разработчиков и оставляя квалифицированных разработчиков и оставляя широкие возможности для творчества.широкие возможности для творчества.

Page 20: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Что еще?Что еще?

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

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

Page 21: Разработка  AI Middleware SDK

Copyright © Buka Entertainment Enterprises, 2003

Вопросы?Вопросы?

Спасибо за внимание.Спасибо за внимание.