Game Engine
A game engine is a software framework used in game development. It may or may not include dedicated tools such as an editor.
Important parts of a common game engine include
- Editor
- Renderer
- Audio engine
- Physics engine
- Scripting System
- Resource Manager
- Networking
- Support for exporting to various target platforms
- Support for importing commonly used file formats (
gltf,png,wav, etc.) - …
List of popular game engines
- Unreal Engine: High-fidelity 3D engine with C++ as its language
- Unity: 2D/3D Game engine using C# as its scripting language.
- Godot: FOSS game engine using custom scripting language (GDScript)
Comparison of popular engines
| Godot (GDScript) | Godot (C#) | Godot (GDExtension) | Unreal Engine | Unity | Custom | |
|---|---|---|---|---|---|---|
| Language | GDScript | C# | C/C++, Rust, … (Bindings) | C++ / Blueprints | C# | Any |
| Typing | Dynamic | Static | Static | Static | Static | Static |
| Debugger | Integrated | External (DAP) | External (DAP?) | Visual Studio (?) | External (?) | Any |
| Compile Times | <5s | <2s | ||||
| Startup Times | 1s | >1s | <1s | 0s | ||
| Performance | ||||||
| Hot-Reload | Yes | No (?) | No | Yes | Yes | Yes |
| Export Targets | ||||||
| Windows | Yes | Yes | Yes | Yes | Yes | Yes |
| MacOS | Yes | Yes | Yes | Yes | Yes | Yes |
| Linux | Yes | Yes | Yes | Yes | Yes | Yes |
| Android | Yes | ? | ? | Yes | Yes | ? |
| iOS | Yes | ? | ? | Yes | Yes | ? |
| Web | Yes | No | Yes | No | Yes | Yes |
| Console | SDK req. | SDK req. | SDK req. | Yes | Yes | SDK req. |
| Editors | ||||||
| Windows | Yes | Yes | Yes | Yes | Yes | Yes |
| Linux | Yes | Yes | Yes | Yes (*) | Yes (*) | Yes |
| Renderer | ||||||
| Vulkan | Yes | Yes | Yes | .. | … | Yes |
| OpenGL | Yes | |||||
| … | ||||||
| Open-Source | Yes | Yes (*) | Yes | Yes | No | - |
| License | MIT | MIT | MIT | EULA | - | - |
| Cost | Free | Free | Free | 5% after $1mil | $399/y after $100k | Free |
Resources
- Game Engine Architecture (Jason Gregory, 2008)