Технологии создания многоплатформенного игрового дви...
Download
1 / 21

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


  • 129 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Технологии создания многоплатформенного игрового движка' - faye


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

Максим Строев


Темы обсуждения многоплатформенного игрового движка

  • Классификация платформ

  • Обзор средств разработки

  • Обзор аппаратных особенностей

  • Особенности представления графических и звуковых данных

КРИ 2004


Темы обсуждения многоплатформенного игрового движка

  • Поддержка компиляторами стандарта С++

  • Правила кодирования

  • Статический и динамический полиморфизм

  • Применение механизма свойств (traits) при создании многоплатформенных библиотек

КРИ 2004


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

Игровые платформы

  • PC, Playstation, Xbox, GameCube и т.д.

  • Наличие мощных аппаратных графических и звуковых подсистем

  • Наличие специализированного API для создания игр

КРИ 2004


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

Универсальные платформы

  • PDA (PocketPC, Palm)

  • Отсутствие API для создание игр

  • Сложность реализации высококачественного вывода графики и звука

КРИ 2004


Обзор средств разработки многоплатформенного игрового движка

GCC/EGCS

  • Стандартизированность использования

  • Богатый вспомогательный инструментарий

  • Хорошая поддержка С/С++ (исключение: EGCS)

  • Бесплатность и открытость развития

  • Плохое тестирование и слабые оптимизационные возможности для «непопулярных» платформ

КРИ 2004


Обзор средств разработки многоплатформенного игрового движка

RedHat GNUPro Developer Tools

  • Стабильность разработки и тестирования

  • Стандартизованность использования

  • Богатый вспомогательный инструментарий

  • Поддержка большого количества embedded систем

  • Высокая стоимость тех. поддержки RedHat и обновлений

КРИ 2004


Обзор средств разработки многоплатформенного игрового движка

Metrowerks CodeWarrior Development Studio

  • Хорошая поддержка С/С++

  • Специфическая среда разработки

  • Коммерческий

КРИ 2004


Обзор средств разработки многоплатформенного игрового движка

Microsoft eMbedded Visual C++

  • Плохая поддержка языка С++

  • Специфическая среда разработки (но: поддержка makefile)

КРИ 2004


Обзор аппаратных особенностей многоплатформенного игрового движка

Что следует учитывать при разработке?

  • Endianess (big-endian, little-endian)

    • Запись бинарных данных в одном endian, чтение на платформе с другим

КРИ 2004


Обзор аппаратных особенностей многоплатформенного игрового движка

Что следует учитывать при разработке?

  • Endianess (big-endian, little-endian)

    • Запись бинарных данных в одном endian, чтение на платформе с другим

  • Разрядность фундаментальных типов данных С++

КРИ 2004


Обзор аппаратных особенностей многоплатформенного игрового движка

Что следует учитывать при разработке?

  • Endianess (big-endian, little-endian)

    • Запись бинарных данных в одном endian, чтение на платформе с другим

  • Разрядность фундаментальных типов данных С++

  • Выравнивание (alignment)

    • Требования и рекомендации

    • Natural alignment requirements

КРИ 2004


Особенности представления графических и звуковых данных

Представление:

  • внутренние

  • внешнее

    Внутренние представление:

  • «рефлексивное» представление

  • внешнее описание прозрачности

КРИ 2004


Статический и динамический полиморфизм

Динамический полиморфизм

  • Механизмы наследования и виртуальных функций

  • Тип выражения определяется во время исполнения

КРИ 2004


Статический и динамический полиморфизм

Статический полиморфизм

  • Параметризация одного типа другим

  • Реализуется на этапе компиляции

  • Специализация шаблонов

    Почему важен?

    На этапе компиляции известны типы реализаций для целевой платформы.

КРИ 2004


Traits
Механизм свойств ( полиморфизмtraits)

Свойства (traits) являются множеством связанных типов и функций для применения данных типов.

Как это работает?

КРИ 2004


Traits1
Механизм свойств ( полиморфизмtraits)

Использование типов-тэгов для определения платформы.

КРИ 2004


Traits2
Механизм свойств ( полиморфизмtraits)

Реализация класса Mutex для нескольких платформ c применением динамического полиморфизма.

КРИ 2004


Traits3
Механизм свойств ( полиморфизмtraits)

Недостатки:

  • Необходимость «фабрики реализаций»

  • Потеря оптимизации из-за наличия виртуальных вызовов

  • Ограничение предоставляемых возможностей объявленным интерфейсом

  • Отсутствие необходимости в динамическом полиморфизме

Реализация класса Mutex для нескольких платформ c применением динамического полиморфизма.

КРИ 2004


Traits4
Механизм свойств ( полиморфизмtraits)

Реализация класса Mutex для нескольких платформ c применением статического полиморфизма.

КРИ 2004


Traits5

Реализация класса полиморфизмMutex для нескольких платформ c применением статического полиморфизма.

Механизм свойств (traits)

КРИ 2004


ad