← Назад к курсу
Обзор игровых движков C++
1️⃣ Игровые движки C++ – платные и бесплатные
Кратко:
- Бесплатные (MIT/BSD/Apache): Godot, Cocos2d‑x, Urho3D, Panda 3D, Solar 2D, ezEngine, o3de, Nau Engine, Box2D (только физика).
- Free‑tier + роялти: Unreal Engine 4/5 – до $1 млн выручки бесплатно, потом 5 % роялти.
- Платные с роялти‑моделью: Unity Personal (до $100 к) и Unity Pro (подписка ≈ $199 / мес).
Источники:
- Игровые движки: лучшие и бесплатные …
- Кроссплатформенный игровой движок на C++
- Какие‑нибудь совершенно бесплатные игровые движки …
- Лучшие движки для создания игр. 7 бесплатных вариантов
- Подборка движков с поддержкой C++ …
2️⃣ Оптимизация игровых движков под жанры
Кратко:
- Рендеринг: минимизировать draw‑call, использовать batch‑операции, LOD.
- Физика: Box2D, встроенный physics‑engine CryEngine – упрощать коллизии, soft‑body для менее мощных устройств.
- AI/Глобальное состояние: для RPG – пул объектов, эффективные структуры данных.
- Скриптинг: Blueprint vs. C++ – C++‑модули дают большую гибкость, но Blueprint ускоряет прототипы.
Источники:
- Оптимизация игрового движка для высокой производительности
- Как вообще игры «оптимизируют»? – Reddit
- Какие базовые подходы используют разработчики игр … (YouTube‑short)
- Как оптимизируют графику в играх – Skillbox Media
- Делюсь своим опытом . Игровые движки. – Gamedev.RU
3️⃣ Примеры кода Unreal Engine C++
Кратко:
- Шаги: Add → New → C++ Class → Class Wizard → генерация проекта → компиляция в Visual Studio → запуск.
- Базовый «Hello World!»: актер с UStaticMeshComponent, вывод в консоль через UE_LOG.
- Интеграция с Blueprint: класс Blueprintable, функции UFUNCTION(BlueprintCallable).
Источники:
- Начало работы с Unreal Engine: Первый скрипт на C++
- Harrison1/unrealcpp – примеры C++‑проектов
- Написание кода в Unreal Engine для разработчиков Unity
- Туториал по Unreal Engine: C++ (Habr)
- С++ и блюпринты в Unreal Engine 5 (YouTube)
4️⃣ Примеры кода Godot C++ (GDExtension)
Кратко:
- GDExtension – официальный способ подключения C++ к Godot 4+.
- Шаблон: gdextension_example.h/cpp → ClassDB::bind_method, ADD_PROPERTY.
- Сборка: SConstruct → scons target=gdextension.
- Готовый репозиторий: godotengine/godot-cpp-template (GitHub).
Источники:
- GDExtension C++ example – Godot Docs
- GDNative пример на C++ – Godot Docs
- godotengine/godot-cpp-template (GitHub)
- GDNative C++ example – Godot Docs
- Как писать на C++ в Godot? – Хабр Q&A
(Совет: используйте GDExtension; GDNative считается устаревшим.)
5️⃣ CryEngine vs Unity (в том числе Unity Pro)
Кратко:
| Критерий | CryEngine | Unity (Personal / Pro) |
|---|---|---|
| Целевая аудитория | AAA‑проекты с «пиковой» графикой | Начинающие/средние студии, кроссплатформенные, мобильные |
| Графика | Физически‑правдоподобные материалы, Ray‑tracing‑like GI | PBR/HDRP в Unity; нуждается в ассет‑bundles для сравнения |
| Лицензия | Бесплатный SDK + роялти‑модель после $100 к | Personal – до $100 к выручки; Pro – подписка ≈ $199/мес |
| Удобство | Sandbox иногда «buggy», меньше сообщества | Интуитивный UI, огромный Asset Store, активные форумы |
| Ассет‑маркет | Ограничен | >30 000 пакетов (например, Mobile Tree Bundle) |
| Поддержка | Сложнее, нужны дополнительные сервисы | Personal – ограниченная; Pro – приоритетная поддержка, Cloud Build, Analytics |
Источники: