Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемТарас Железняков
1 Copyright © Buka Entertainment Enterprises, 2003 Разработка AI Middleware SDK. Алексей Осипенко Руководитель службы R&D Buka Entertainment Enterprises
2 Copyright © Buka Entertainment Enterprises, 2003 Почему об этом имеет смысл подумать? Разработка игровой логики является одним из самых проблемных мест в gamedev-е. Разработка игровой логики является одним из самых проблемных мест в gamedev-е. Это одно из самых недетерминированных мест в разработке... Это одно из самых недетерминированных мест в разработке и определяющих, получится ли, в итоге игра или нет.... и определяющих, получится ли, в итоге игра или нет.
3 Copyright © Buka Entertainment Enterprises, 2003 Проблема изменения архитектуры Геймдизайнеры предлагают изменения в системе игровой логики не сообразуясь с ее программной архитектурой. Геймдизайнеры предлагают изменения в системе игровой логики не сообразуясь с ее программной архитектурой. Изменения вносятся на поздних этапах работы, когда большая часть кода уже написана. Изменения вносятся на поздних этапах работы, когда большая часть кода уже написана. Постепенно утрачивается концептуальная целостность. Постепенно утрачивается концептуальная целостность. Архитектура перестает быть понятной самим программистам. Архитектура перестает быть понятной самим программистам.
4 Copyright © Buka Entertainment Enterprises, 2003 Как можно изменить эту ситуацию Все члены команды, имеющие отношение к логике игры, должны иметь представление о ее программной архитектуре. Все члены команды, имеющие отношение к логике игры, должны иметь представление о ее программной архитектуре. Это представление должно опираться на простую графическую модель архитектуры. Это представление должно опираться на простую графическую модель архитектуры. Модель должна соответствовать текущему положению дел. Модель должна соответствовать текущему положению дел. Поддержание соответствия модели и программного кода не должно вносить дополнительные накладные расходы. Поддержание соответствия модели и программного кода не должно вносить дополнительные накладные расходы.
5 Copyright © Buka Entertainment Enterprises, 2003 Откуда можно взять модель Архитектура содержится в программном коде и должна извлекаться из него. Архитектура содержится в программном коде и должна извлекаться из него. Механически извлеченная из кода модель почти всегда имеет бессистемный характер – все абстракции «свалены в одну кучу». Механически извлеченная из кода модель почти всегда имеет бессистемный характер – все абстракции «свалены в одну кучу». Такая модель «замусорена» деталями реализации и вспомогательными абстракциями. Такая модель «замусорена» деталями реализации и вспомогательными абстракциями. Невозможно вычленить многие значимые идеи. Невозможно вычленить многие значимые идеи.
6 Copyright © Buka Entertainment Enterprises, 2003 Возможный способ преодоления описанных трудностей Использовать инкапсуляцию для фильтрации малозначимых деталей. Использовать инкапсуляцию для фильтрации малозначимых деталей. Программисты должны скорпулезно следовать механизмам инкапсуляции, предусмотренным в языке. Программисты должны скорпулезно следовать механизмам инкапсуляции, предусмотренным в языке. Визуализировать только интерфейсы. Визуализировать только интерфейсы. Помечать важные абстракции комментариями специального вида. Помечать важные абстракции комментариями специального вида. Подчас, трудоемко и не поддаётся верификации. Подчас, трудоемко и не поддаётся верификации. Механизмы все равно остаются «за кадром»! Механизмы все равно остаются «за кадром»!
7 Copyright © Buka Entertainment Enterprises, 2003 Можно «зайти с другого конца» Строить не модель по коду, а код по модели. Строить не модель по коду, а код по модели. Преимущества: Преимущества: Модель систематизирована и имеет осмысленную визуальную структуру. Модель систематизирована и имеет осмысленную визуальную структуру. Можно отобразить вещи, не извлекаемые из кода. Можно отобразить вещи, не извлекаемые из кода. Недостатки: Недостатки: То, что не может быть извлечено из кода, не будет перенесено в код автоматически. То, что не может быть извлечено из кода, не будет перенесено в код автоматически. Поддержка согласованности модели и кода сложна, трудоемка и не всегда доступна для верификации. Поддержка согласованности модели и кода сложна, трудоемка и не всегда доступна для верификации.
8 Copyright © Buka Entertainment Enterprises, 2003 В чем корень проблемы Элементы, составляющие архитектуру системы, не всегда имеют однозначное отображение на семантику языка программирования и наоборот. Элементы, составляющие архитектуру системы, не всегда имеют однозначное отображение на семантику языка программирования и наоборот. Семантика языков программирования очень богата – многие идеи возможно реализовать несколькими различными способами. Семантика языков программирования очень богата – многие идеи возможно реализовать несколькими различными способами. Большинство идей не отображаются прямо на семантику языка – для их реализации требуются сложные конструкции. Большинство идей не отображаются прямо на семантику языка – для их реализации требуются сложные конструкции. Многие важные для понимания архитектуры элементы возникают только в runtime -е. Многие важные для понимания архитектуры элементы возникают только в runtime -е.
9 Copyright © Buka Entertainment Enterprises, 2003 Двухуровневая система Можно разнести значимые элементы архитектуры и детали реализации на разные уровни. Можно разнести значимые элементы архитектуры и детали реализации на разные уровни. Уровень, реализующий архитектуру должен иметь взаимно однозначное соответствие с ее моделью: Уровень, реализующий архитектуру должен иметь взаимно однозначное соответствие с ее моделью: Всем элементам этого уровня соответствуют элементы модели. Всем элементам этого уровня соответствуют элементы модели. Изменения в модели, внесенные путем ее визуального редактирования, должны немедленно отражаться в реализации. Изменения в модели, внесенные путем ее визуального редактирования, должны немедленно отражаться в реализации. На верхнем уровне должны быть отражены и абстракции времени выполнения. На верхнем уровне должны быть отражены и абстракции времени выполнения. Этот уровень должен реализовываться как runtime environment (middleware). Этот уровень должен реализовываться как runtime environment (middleware).
10 Copyright © Buka Entertainment Enterprises, 2003 А как же код реализации? Реализация должна ограничивать возможности редактирования модели: Реализация должна ограничивать возможности редактирования модели: Изменения, противоречащие имеющейся реализации должны автоматически ограничиваться. Изменения, противоречащие имеющейся реализации должны автоматически ограничиваться. Эти ограничения должны базироваться на поведении реализации, а не на ее исходных текстах – еще одно «за» для runtime environment. Эти ограничения должны базироваться на поведении реализации, а не на ее исходных текстах – еще одно «за» для runtime environment. Должны иметься эффективные механизмы управления связыванием элементов реализации времени выполнения. Должны иметься эффективные механизмы управления связыванием элементов реализации времени выполнения.
11 Copyright © Buka Entertainment Enterprises, 2003 А так вообще бывает? В индустриальном программировании роль такого runtime environment выполняют базы данных. В индустриальном программировании роль такого runtime environment выполняют базы данных. Схема базы данных достаточно полно отражает организацию данных системы. Схема базы данных достаточно полно отражает организацию данных системы. Там же содержатся ограничения, верифицирующие соответствие вносимой информации архитектуре системы – СУБД поддерживает целостность данных. Там же содержатся ограничения, верифицирующие соответствие вносимой информации архитектуре системы – СУБД поддерживает целостность данных. В БД имеются механизмы – триггеры. В БД имеются механизмы – триггеры. Имеется широкий спектр инструментальных средств для визуализации и редактирования схемы базы данных. Имеется широкий спектр инструментальных средств для визуализации и редактирования схемы базы данных.
12 Copyright © Buka Entertainment Enterprises, 2003 Почему реляционные базы данных не являются решением для нас? Базы данных ориентированы на структурированное хранение данных: Базы данных ориентированы на структурированное хранение данных: Системы на их основе, в основном, «регистрируют» реальный мир. Системы на их основе, в основном, «регистрируют» реальный мир. Ограничения, закладываемые в базу, отражают правила внесения информации, не всегда проецирующиеся на законы и правила реального мира. Ограничения, закладываемые в базу, отражают правила внесения информации, не всегда проецирующиеся на законы и правила реального мира. Для реализации игровой логики нужна система моделирования мира. Для реализации игровой логики нужна система моделирования мира. Изменения в схеме БД приводят к рассогласованию с остальным кодом системы. Изменения в схеме БД приводят к рассогласованию с остальным кодом системы.
13 Copyright © Buka Entertainment Enterprises, 2003 Наш вывод из приведенных предпосылок Для реализации «верхнего» уровня игровой логики нужна объектная база данных. Для реализации «верхнего» уровня игровой логики нужна объектная база данных. Эта база должна быть системой времени выполнения – middleware. Эта база должна быть системой времени выполнения – middleware. Для поддержания однозначного соответствия с реализацией эта база должна поддерживать изменения «на лету». Для поддержания однозначного соответствия с реализацией эта база должна поддерживать изменения «на лету». Применение такой базы в играх будет возможным только в случае достижения приемлемого быстродействия. Применение такой базы в играх будет возможным только в случае достижения приемлемого быстродействия.
14 Copyright © Buka Entertainment Enterprises, 2003 Выработанная нами архитектура системы AI Middleware.
15 Copyright © Buka Entertainment Enterprises, 2003 Схема интерфейса играющего с системой
16 Copyright © Buka Entertainment Enterprises, 2003 Что может дать использование AI Middleware SDK Возможны быстрое создание и адаптация игрового мира в соответствии с потребностями game designer-а посредством интуитивно понятных инструментов, предполагаемых в данном SDK. Возможны быстрое создание и адаптация игрового мира в соответствии с потребностями game designer-а посредством интуитивно понятных инструментов, предполагаемых в данном SDK. Использование средств такой системы задает определенную методологию, позволяющую детерминировать процесс разработки. Использование средств такой системы задает определенную методологию, позволяющую детерминировать процесс разработки. Выражение игровых концепций в терминах такой системы позволяет снизить количество логических ошибок в игре благодаря встроенному как в ядро системы, так и в средства разработки контролю логической связности. Выражение игровых концепций в терминах такой системы позволяет снизить количество логических ошибок в игре благодаря встроенному как в ядро системы, так и в средства разработки контролю логической связности.
17 Copyright © Buka Entertainment Enterprises, 2003 Что может дать использование AI Middleware SDK (2) В комплект SDK можно включить типовые решения для популярных игровых жанров включающие в себя: В комплект SDK можно включить типовые решения для популярных игровых жанров включающие в себя: Набор базовых примитивов для формирования объектов игрового мира – unit-ов, правил и т.п.; Набор базовых примитивов для формирования объектов игрового мира – unit-ов, правил и т.п.; Набор средств разработки, позволяющий, выбрав жанр разрабатываемой игры, автоматически сформировать «скелет» игрового проекта. Набор средств разработки, позволяющий, выбрав жанр разрабатываемой игры, автоматически сформировать «скелет» игрового проекта. Зависимость логики игры от средств визуализации минимальна. Возможна быстрая адаптация существующих продуктов к новейшим средствам визуализации. Средства SDK позволят визуализировать функционирование логики игры в отсутствии какой бы то ни было системы визуализации, что позволяет разрабатывать логику игры совершенно независимо от других ее компонентов. Зависимость логики игры от средств визуализации минимальна. Возможна быстрая адаптация существующих продуктов к новейшим средствам визуализации. Средства SDK позволят визуализировать функционирование логики игры в отсутствии какой бы то ни было системы визуализации, что позволяет разрабатывать логику игры совершенно независимо от других ее компонентов.
18 Copyright © Buka Entertainment Enterprises, 2003 Что может дать использование AI Middleware SDK (3) В SDK можно включить широкий спектр алгоритмов для формирования ИИ как игры в целом, так и для задания сложной логики отдельных игровых объектов. В этот список входят: В SDK можно включить широкий спектр алгоритмов для формирования ИИ как игры в целом, так и для задания сложной логики отдельных игровых объектов. В этот список входят: Конечные автоматы, настраиваемые как с помощью визуальных средств системы так и программно; Конечные автоматы, настраиваемые как с помощью визуальных средств системы так и программно; Деревья принятия решений; Деревья принятия решений; Нейросети; Нейросети; Генетические алгоритмы; Генетические алгоритмы; Алгоритмы для часто встречающихся задач: поиск пути, расчет столкновений и т.п. Алгоритмы для часто встречающихся задач: поиск пути, расчет столкновений и т.п.
19 Copyright © Buka Entertainment Enterprises, 2003 Что может дать использование AI Middleware SDK (4) Система должна иметь многоуровневый программный интерфейс, позволяющий, с одной стороны, максимально просто решать типовые задачи и, с другой стороны, вносить изменения в поведение всей системы на любом уровне. Это позволяет быстро начать работу с системой, сразу имея зримый результат, и решать все нетривиальные задачи, возникающие в виду специфики разрабатываемой игры, по мере все более глубокого знакомства. Система должна иметь многоуровневый программный интерфейс, позволяющий, с одной стороны, максимально просто решать типовые задачи и, с другой стороны, вносить изменения в поведение всей системы на любом уровне. Это позволяет быстро начать работу с системой, сразу имея зримый результат, и решать все нетривиальные задачи, возникающие в виду специфики разрабатываемой игры, по мере все более глубокого знакомства. Такая система позволяет геймдезайнеру решать большинство возникающих проблем самостоятельно, не прибегая к помощи разработчиков. Такая система позволяет геймдезайнеру решать большинство возникающих проблем самостоятельно, не прибегая к помощи разработчиков. Позволяет команде разработчиков реализовывать более сложные и масштабные проекты, не ограничивая квалифицированных разработчиков и оставляя широкие возможности для творчества. Позволяет команде разработчиков реализовывать более сложные и масштабные проекты, не ограничивая квалифицированных разработчиков и оставляя широкие возможности для творчества.
20 Copyright © Buka Entertainment Enterprises, 2003 Что еще? Возможность создания и модификации объектов игрового мира - как с помощью визуальных средств, так и программно. Возможность создания и модификации объектов игрового мира - как с помощью визуальных средств, так и программно. Встроенная синхронизация игровых миров, существующих на различных машинах в рамках сети. Таким образом многопользовательский режим реализуется в игре с изначально и без каких бы то ни было дополнительных усилий. Встроенная синхронизация игровых миров, существующих на различных машинах в рамках сети. Таким образом многопользовательский режим реализуется в игре с изначально и без каких бы то ни было дополнительных усилий.
21 Copyright © Buka Entertainment Enterprises, 2003 Вопросы? Спасибо за внимание.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.