Game Development
Game Engines: Unity, Unreal, Godot
Цели урока
- Understand the architectural differences between Unity (GameObject+Component), Unreal (Actor+Component), and Godot (Node tree)
- Navigate the licensing models of all three engines
- Apply engine selection criteria to specific project types
- Know where each engine is actually used in the industry
Предварительные знания
2005: three Danish developers build an engine for Mac because writing games from scratch is unbearable. 2008: they add iPhone support - and accidentally invent the mobile gaming industry. By 2024, more than half of everything running on the world's phones was created with their tool. Choosing the right engine today determines which community, tooling, and licensing constraints will shape work for years.
- **Unity:** Hollow Knight, Cuphead, Among Us, Pokemon GO, Beat Saber - from indie to mobile blockbusters
- **Unreal:** Fortnite, Final Fantasy VII Remake, The Matrix Awakens - cutting-edge real-time graphics
- **Godot:** Cassette Beasts, thousands of game jam projects - the open-source revolution after Unity Runtime Fee
Three Engines: A Parallel History
Unity was founded in 2005 by Nicholas Francis, Joachim Ante, and David Helgason - three Danes who wanted to make game development accessible. The breakthrough was iPhone support in 2008. Unreal Engine was created by Tim Sweeney in 1998 for the shooter Unreal - used internally at Epic Games until it was licensed to third-party studios in 2004. Godot is a different story: started by Juan Linietsky and Ariel Manzur in Argentina in 2007, open-sourced under MIT in 2014. Three engines represent three business models: a corporation (Unity), an ecosystem (Epic/Unreal), and a community-driven project (Godot).
Unity
**50% of mobile games and 60% of AR/VR applications run on Unity.** Hollow Knight, Among Us, Pokemon GO - all Unity. The engine won the mass market not through graphics, but through accessibility: C# as the primary language, an Asset Store full of ready-made solutions, and documentation for every edge case.
Unity's architecture is built around **GameObject + Component**. Every object in a scene is a GameObject, with components attached: Transform (position), MeshRenderer (display), Collider (physics), and custom MonoBehaviour scripts. No GameObject without Transform - a fundamental design constraint.
Unity DOTS (Data-Oriented Technology Stack) is a new subsystem with true ECS. A 10-100x performance boost for large numbers of objects via Burst compiler and Jobs system. But the programming style is radically different: struct-based, no inheritance, explicit scheduling. Two engines inside one - the choice must be deliberate.
Strengths: mature 2D pipeline, Asset Store with thousands of ready-made solutions, huge community. Weaknesses: default graphics lag behind Unreal, historical GC in C# caused hitches - though il2cpp and incremental GC have significantly improved this.
What is the primary programming language in Unity?
Unreal Engine
**Fortnite generates billions of dollars per year - and runs on Unreal Engine.** Epic opened the engine's source code not out of altruism: more developers knowing Unreal means more games released through the Epic Games Store. A business strategy became an industry technical standard.
Unreal offers two languages: **C++** for performance-critical code and **Blueprints** - a visual scripting system (node graph). Blueprints let designers create gameplay without writing code, which accelerates prototyping. The typical pipeline: Blueprints for prototyping, C++ for optimizing hot paths.
Unreal's license: free until USD 1M in revenue, then 5% royalty. Developers publishing through the Epic Games Store pay 0% royalty. The engine's source code is available for reading and modification (not open-source by license, but accessible).
Unreal 5 (2022+) raised the bar: **Nanite** enables models with billions of polygons without LOD (the system automatically manages detail level), **Lumen** delivers real-time dynamic global illumination without baked lightmaps, and **World Partition** automatically streams open worlds. The cost: high system requirements and long C++ compile times.
Strengths: the best out-of-the-box graphics, mature AAA pipeline, Blueprints for rapid prototyping. Weaknesses: long C++ compile times (hot reload is unstable), high barrier to entry, heavy for mobile platforms.
What are Blueprints in Unreal Engine?
Godot Engine
**September 2023: Unity announces a Runtime Fee - charge per game install.** Within 48 hours Godot downloads increase tenfold. Among studios announcing migrations: Mega Crit (Slay the Spire), Re-Logic (Terraria), Innersloth (Among Us). Fear of vendor lock-in became real migrations.
The primary language is **GDScript**, designed specifically for Godot. Syntax resembles Python but is optimized for game development: optional static typing, built-in node integration. C#, C++ (via GDExtension), and visual scripting are also supported.
Godot's architecture is a **node tree**. Every object is a typed node (Sprite2D, CollisionShape2D, AudioStreamPlayer). Nodes are grouped into scenes, and scenes can be nested. A scene can be reused as a node - close to React components, but for games.
Godot 4.0+ introduced a Vulkan renderer, an improved 3D engine, and GDExtension for C++ plugins. Distributon size is around 40 MB (Unity installer ~2 GB, Unreal ~40 GB). For a game jam, this is critical: download and start in 5 minutes.
Strengths: MIT license, lightweight, excellent 2D pipeline, built-in animation editor and UI tools. Weaknesses: 3D lags behind Unity/Unreal, small asset marketplace, less corporate backing and ready-made integrations.
What license does Godot Engine use?
Engine Comparison
There is no "best" engine - only the best engine for a specific task. Astroneer and Rocket League are built on Unreal, though both could have used Unity. Hollow Knight is built on Unity, though today the team would likely choose Godot. The decision is made in the context of team, budget, and target platform.
| Parameter | Unity | Unreal | Godot |
|---|---|---|---|
| Language | C# | C++ / Blueprints | GDScript / C# / C++ |
| License | Free (conditions apply) | 5% after USD 1M revenue | MIT (fully open) |
| 2D | Good | Possible, but not the focus | Excellent |
| 3D | Good | Best in the industry | Basic, improving |
| Mobile | Industry standard | Heavy for mobile | Good, lightweight |
| Learning curve | Moderate | Steep | Gentle |
| Asset Store | Huge | Marketplace (large) | Small, growing |
| Distribution size | ~2 GB | ~40 GB | ~40 MB |
**For mobile and 2D games** - Unity or Godot. Unity offers a mature pipeline and Asset Store; Godot offers simplicity and freedom from royalties. **For AAA and photorealistic graphics** - Unreal. **For indie and learning** - Godot. **For AR/VR** - Unity (broad device support: Quest, HoloLens, ARKit, ARCore).
Skills transfer across engines. Understanding game loops, ECS, shaders, physics, and AI is universal. A specific API takes weeks to learn; fundamental concepts take months - and pay dividends everywhere.
The 2024-2026 trend: Godot's rise and the emergence of new engines (Bevy in Rust, Stride in C#). Open-source engines are gaining momentum, while major engines compete on AI integration: asset generation, NPC dialogue via LLMs, procedural content.
Unreal Engine is only for AAA projects
Indie developers successfully use Unreal for stylized and small-scale projects. Examples: Astroneer, Octopath Traveler, Rocket League.
Unreal is free until USD 1M in revenue, has Blueprints for rapid prototyping, and robust tooling at any scale. The 'AAA-only' stereotype is based on Epic's marketing, not reality.
Which engine is the best fit for a 2D indie game with zero budget?
Key Takeaways
- **Unity** - C#, leader in mobile and AR/VR, massive Asset Store, moderate learning curve
- **Unreal** - C++/Blueprints, the best 3D graphics (Nanite, Lumen), steep learning curve
- **Godot** - GDScript, MIT license, 40 MB, best 2D of the three, ideal for indie and learning
- **The choice depends on the project**, while fundamental knowledge (game loop, ECS) transfers across engines
Related Topics
The choice of engine determines the tools, but doesn't change the core concepts:
- Introduction to Game Development — Game loop, ECS, input - concepts implemented in each of the three engines
- 2D Rendering — Sprites, tilemaps, animations - the next step after choosing an engine
Вопросы для размышления
- How did the Unity Runtime Fee controversy affect the industry? Should studios bet on open-source engines?
- Starting a new project today - which engine would the decision land on and why?
- Blueprints in Unreal vs GDScript in Godot - which approach to 'accessible programming' is more effective?
Связанные уроки
- gd-01 — Game loop and ECS from lesson one are the foundation for understanding engine architecture
- gd-03 — 2D rendering is the natural next step after choosing an engine
- cg-01 — Computer graphics explains what happens under the hood of Nanite and Lumen
- se-01 — Software patterns - ECS, Component, Observer - apply directly to engine architecture
- arvr-01 — AR/VR development is built on Unity as the platform standard
- mob-01 — Mobile game development: Unity is the de facto standard for iOS/Android
- arch-04-cpu