Содержание
- 2. ПЛАН ЛЕКЦИИ Программная организация игр Особенности C++ при разработке игр Ваши вопросы и дискуссия
- 3. ИГРА – ЭТО ПРОГРАММА Процесс Одна или несколько нитей исполнения (threads) Язык программирования Native-язык (C/C++) Managed-язык
- 4. ОРГАНИЗАЦИЯ ИГРЫ Инициализация программы Загрузка ресурсов Пока играем Обновление кадра Рендеринг Выгрузка ресурсов Инициализация программы (создание
- 5. C++ VS C#/JAVA/OBJC Нативный код или управляемый? Наличие библиотек на нужном языке Доступ к низкоуровневым частям
- 6. ОСОБЕННОСТИ C++ Наследование Шаблоны Выделение памяти Обработка ошибок Стандартная библиотека Паттерны проектирования
- 7. НАСЛЕДОВАНИЕ Используем интерфейсы при множественном наследовании PROFIT: не используем dynamic_cast и RTTI
- 8. НАСЛЕДОВАНИЕ Не создаем лишние сущности и глубокие иерархии PROFIT: значительное упрощение кода
- 9. НАСЛЕДОВАНИЕ Тотальный полиморфизм – это ПЛОХО! «А вдруг от класса, который я пишу, в будущем захотят
- 10. ШАБЛОНЫ «Шаблоны – это круто!» «Я читал книжку Андрея Александреску» «Я разобрался с boost» «Я люблю
- 11. ШАБЛОНЫ Джентельменский подход к использованию: Пишем шаблонные классы там, где это нужно, а не там, где
- 12. ШАБЛОНЫ Где полезно использовать Математические алгоритмы и структуры данных Реализация паттернов проектирования Собственные контейнеры
- 13. ВЫДЕЛЕНИЕ ПАМЯТИ Стараемся не выделять динамическую память внутри игрового цикла Используем предвыделение памяти Используем передачу аргументов
- 14. ОБРАБОТКА ОШИБОК Коды ошибок вместо исключений! Используем логирование Используем ASSERT’ы Собираем статистику
- 15. СТАНДАРТНАЯ БИБЛИОТЕКА Три «кита»: vector, list и map В стандарте С++11: Умные указатели (shared_ptr, weak_ptr и
- 16. ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ Синглтон Абстрактная фабрика Фасад Наблюдатель Итератор
- 17. ВЫВОДЫ 1 2 3 C++ успешно используется и будет продолжать использоваться при разработке игр В C++
- 19. Скачать презентацию