Архитектурные особенности систем разработки консольных и многоплатформенных игр презентация
Содержание
- 2. Системы разработки игр Задачи и характеристики Типичные архитектурные решения Ключевые проблемы
- 3. Уточнение Разработка консольных или кроссплатформенных игр – огромная тема Планирование
- 4. Уточнение (2) Консоли предъявляют жесткие требования к распределению ресурсов во время
- 5. Уточнение (3) Основные темы: Снижение накладных расходов при сохранении гибкости и
- 6. Мотивы создания систем разработки игр Отраслевые тенденции Ожидания потребителей Требования издателей
- 7. Мотивация: отраслевые тенденции Стремительное развитие технологий Резкое усложнение игрового контента Самые
- 8. Мотивация: ожидания потребителей Покупают не технологию, а контент Но ожидают кинематографическое
- 9. Мотивация: требования издателей Минимум рисков, связанных с производством Сокращение цикла разработки
- 10. Характеристики системы разработки игр Простота внедрения Гибкость и расширяемость Масштабируемость Производительность
- 11. Задачи: простота внедрения Быстрое обучение Простые, но мощные средства Единообразные инструменты
- 12. Задачи: гибкость, расширяемость Простота настройки контента Изменение данных «в последний момент»
- 13. Задачи: масштабируемость Большие и сверхбольшие размеры контента Параллельное создание контента Параллельная
- 14. Задачи: производительность технологической цепочки Четкое разграничение проблем Разделение труда Принцип «наиболее
- 15. Задачи: производительность движка Еще раз: большие и сверхбольшие размеры контента Еще
- 16. Типичные архитектурные решения Абстрагирование, расцепление (decoupling) Компонентные архитектуры Архитектуры, управляемые данными
- 17. Компонентные архитектуры Подключаемые (plug-in) модули Сложные динамические системы из простых компонент
- 18. Компонентные архитектуры (2) Уменьшение «зацепления» кода Повторное использование компонент Много игр
- 19. Data driven архитектуры Инкапсуляция структуры игрового мира и настроек его компонентов
- 20. Data driven архитектуры (2) Данными легче управлять, чем кодом У данных
- 21. Data driven архитектуры (3) Единообразные инструменты Меньше инструментов – больше областей
- 22. Скрипты Инкапсуляция поведения элементов системы Мы даже код сделаем данными™ Оставьте
- 23. Скрипты (2) Высокоуровневые примитивы языка, специфичные для игровых задач Естественный доступ
- 24. Обобщенный формат хранения Сериализация/десериализация Компоненты + данные Все равно, что, где
- 25. Результаты Вроде бы, все хорошо Гибкость, расширяемость Производительность технологической цепочки Единообразный
- 26. Пиррова победа? Чрезмерная общность Высокие издержки, «over engineering» Неформальные «договоренности» Явные
- 27. Пиррова победа? (2) Еще раз: большой и сложный мир… Высокая степень
- 28. Два детальных примера Хранение 3D сцен на диске и их представление
- 29. Case 1: представление 3D моделей Типичные схемы: Монолитное представление Слишком жесткое,
- 30. 3D: монолитное представление «Классика жанра»: Quake При разработке движка фиксируется набор
- 31. 3D: открытое представление Scene graph, DAG, дерево подобъектов Доступны все атрибуты
- 32. 3D: открытое представление (2) Существуют правила именования подобъектов и их атрибутов
- 33. 3D: открытое представление (3) «Слишком» гибкое представление Наши намерения не выражены
- 34. 3D: открытое представление (4) Статические объекты могут быть представлены более эффективно
- 35. 3D: открытое представление (5) Игровой код: уродлив, неэффективен, подвержен ошибкам //
- 36. 3D: открытое представление (6) Игровой код: хотелось бы что-то подобное: //
- 37. Вседозволенность против гибкости Абстрагирование и позднее связывание вызывают потери неявной информации
- 38. Вседозволенность: Стек на C# class Stack { public void Push( object
- 39. Гибкость: Стек на C# с Generics class Stack<T> { public void
- 40. 3D: явная параметризация Явная параметризация типов в языках программирования переносит время
- 41. 3D: открытое представление (7) // получение бокса левого закрылка render::box b
- 42. 3D: явная параметризация (2) Введем в движок описание 3D моделей: game
- 43. 3D: явная параметризация (3) Для архитектур, управляемых данными, – это естественный
- 44. 3D: назад к монолитам Фактически, мы возвращаемся к «жестким» монолитным форматам
- 45. 3D: memory layout В соответствии с описанием 3D модели, все ее
- 46. 3D: детали Автоматически генерируемый для игровых объектов интерфейс работы с 3D
- 47. 3D: детали (2) Формат представления конкретной модели определяется файлом описания и
- 48. 3D: детали (3) Движок (включая рендер) работает со структурой, близкой к
- 49. 3D: голые факты Считаем только пользовательскую часть, без звуков и 3D
- 50. 3D: голые факты Вседозволенность: Одна копия: около 80K в 140 блоках
- 51. Case 1: результаты Высокая производительность Минимальные требования к ресурсам Отсутствие сложного
- 52. Case 1: заключение Обобщенный формат используется для хранения и трансформаций контента
- 53. Case 2: настройка контента Художник создает модель и указывает ее рабочие
- 54. Настройка: о чем речь? В идеале, художник прямо в пакете моделирования
- 55. Настройка: о чем речь? (2) Для отладки и тестирования настройки могут
- 56. Настройка: о чем речь? (3) Впрочем, стандартный инструмент удобнее:
- 57. Настройка: о чем речь? (3) Игровому коду эта информация должна быть
- 58. Настройка: типичные схемы Пары «имя» – «значение» Предельная гибкость, хрупкость и
- 59. Настройка: сериализация Сериализация/десериализация Описание библиотек типов Инструменты для редактирования Сборщик, выполняющий
- 60. Настройка: подводные камни Обратная совместимость и расширяемость схемы Эффективное представление в
- 61. Настройка: обратная совместимость Следует отличать «значения по умолчанию» от введенных значений
- 62. Настройка: применение шаблонов Явное описание структуры компонента Указываются типы и значения
- 63. Настройка: применение шаблонов (2) Конкретный экземпляр компонента «наследуется» от шаблона и
- 64. Настройка: применение шаблонов (3) Можно использовать промежуточные шаблоны (единица крупных замен
- 65. Настройка: библиотека типов Чтение всех «корневых» шаблонов (их изменение, как правило,
- 66. Настройка: библиотека типов (2) Пример сгенерированного C++ объявления: struct PLANE_GUN
- 67. Настройка: редактирование Расширяемый набор управляющих элементов для платформы разработчика (PC, Win32)
- 68. Настройка: сборщик Читает все шаблоны и компоненты из промежуточных форматов и
- 69. Настройка: сборщик (2) Сериализует данные в финальный, зависящий от target платформы,
- 70. Настройка: детали Для плоского и относительно-адресуемого представления сложных типов используются те
- 71. Настройка: детали (2) Результирующий (автоматически сгенерированный и библиотечный) код непереносим, а
- 72. Case 2: результаты Высокая производительность Минимальные требования к ресурсам Эффективная работа
- 73. Case 2: заключение Обобщенные форматы (XML…) используются для хранения и редактирования
- 74. Заключение Мы рассмотрели приемы сохранения гибкости и расширяемости системы в условиях
- 75. Дальнейшие шаги Без сомнения, подобный подход может быть применен ко многим
- 76. Вопросы? mailto:[email protected] http://aruslan.nm.ru Мой e-mail и домашняя страничка http://www.jaleco.com Компания, в
- 77. Скачать презентацию












































































Слайды и текст этой презентации
Скачать презентацию на тему Архитектурные особенности систем разработки консольных и многоплатформенных игр можно ниже:
Похожие презентации