1 / 21

Технологии создания многоплатформенного игрового движка

Технологии создания многоплатформенного игрового движка. Максим Строев. Темы обсуждения. Классификация платформ Обзор средств разработки Обзор аппаратных особенностей Особенности представления графических и звуковых данных. Темы обсуждения. Поддержка компиляторами стандарта С++

faye
Télécharger la présentation

Технологии создания многоплатформенного игрового движка

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Технологии создания многоплатформенного игрового движка Максим Строев

  2. Темы обсуждения • Классификация платформ • Обзор средств разработки • Обзор аппаратных особенностей • Особенности представления графических и звуковых данных КРИ 2004

  3. Темы обсуждения • Поддержка компиляторами стандарта С++ • Правила кодирования • Статический и динамический полиморфизм • Применение механизма свойств (traits) при создании многоплатформенных библиотек КРИ 2004

  4. Классификация платформ Игровые платформы • PC, Playstation, Xbox, GameCube и т.д. • Наличие мощных аппаратных графических и звуковых подсистем • Наличие специализированного API для создания игр КРИ 2004

  5. Классификация платформ Универсальные платформы • PDA (PocketPC, Palm) • Отсутствие API для создание игр • Сложность реализации высококачественного вывода графики и звука КРИ 2004

  6. Обзор средств разработки GCC/EGCS • Стандартизированность использования • Богатый вспомогательный инструментарий • Хорошая поддержка С/С++ (исключение: EGCS) • Бесплатность и открытость развития • Плохое тестирование и слабые оптимизационные возможности для «непопулярных» платформ КРИ 2004

  7. Обзор средств разработки RedHat GNUPro Developer Tools • Стабильность разработки и тестирования • Стандартизованность использования • Богатый вспомогательный инструментарий • Поддержка большого количества embedded систем • Высокая стоимость тех. поддержки RedHat и обновлений КРИ 2004

  8. Обзор средств разработки Metrowerks CodeWarrior Development Studio • Хорошая поддержка С/С++ • Специфическая среда разработки • Коммерческий КРИ 2004

  9. Обзор средств разработки Microsoft eMbedded Visual C++ • Плохая поддержка языка С++ • Специфическая среда разработки (но: поддержка makefile) КРИ 2004

  10. Обзор аппаратных особенностей Что следует учитывать при разработке? • Endianess (big-endian, little-endian) • Запись бинарных данных в одном endian, чтение на платформе с другим КРИ 2004

  11. Обзор аппаратных особенностей Что следует учитывать при разработке? • Endianess (big-endian, little-endian) • Запись бинарных данных в одном endian, чтение на платформе с другим • Разрядность фундаментальных типов данных С++ КРИ 2004

  12. Обзор аппаратных особенностей Что следует учитывать при разработке? • Endianess (big-endian, little-endian) • Запись бинарных данных в одном endian, чтение на платформе с другим • Разрядность фундаментальных типов данных С++ • Выравнивание (alignment) • Требования и рекомендации • Natural alignment requirements КРИ 2004

  13. Особенности представления графических и звуковых данных Представление: • внутренние • внешнее Внутренние представление: • «рефлексивное» представление • внешнее описание прозрачности КРИ 2004

  14. Статический и динамический полиморфизм Динамический полиморфизм • Механизмы наследования и виртуальных функций • Тип выражения определяется во время исполнения КРИ 2004

  15. Статический и динамический полиморфизм Статический полиморфизм • Параметризация одного типа другим • Реализуется на этапе компиляции • Специализация шаблонов Почему важен? На этапе компиляции известны типы реализаций для целевой платформы. КРИ 2004

  16. Механизм свойств (traits) Свойства (traits) являются множеством связанных типов и функций для применения данных типов. Как это работает? КРИ 2004

  17. Механизм свойств (traits) Использование типов-тэгов для определения платформы. КРИ 2004

  18. Механизм свойств (traits) Реализация класса Mutex для нескольких платформ c применением динамического полиморфизма. КРИ 2004

  19. Механизм свойств (traits) Недостатки: • Необходимость «фабрики реализаций» • Потеря оптимизации из-за наличия виртуальных вызовов • Ограничение предоставляемых возможностей объявленным интерфейсом • Отсутствие необходимости в динамическом полиморфизме Реализация класса Mutex для нескольких платформ c применением динамического полиморфизма. КРИ 2004

  20. Механизм свойств (traits) Реализация класса Mutex для нескольких платформ c применением статического полиморфизма. КРИ 2004

  21. Реализация класса Mutex для нескольких платформ c применением статического полиморфизма. Механизм свойств (traits) КРИ 2004

More Related