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)