KlayGE is a cross-platform, open-source game engine with a plugin-based architecture, written in C++ and aimed at developers who need a framework that makes game development, testing, and porting as simple as possible across desktop, mobile, and store platforms.
What it is
KlayGE is a game engine started in 2003 and distributed under the GPL-2.0 license, with its source hosted on GitHub and a current release identified as v4.17.0. Its architecture is explicitly plugin-based, and its stated goal is “to arm your engine with cutting-edge technology.” The project topics place it in the C++ graphics and game-development ecosystem: they name Direct3D 11, Direct3D 12, OpenGL, OpenGL ES, OpenAL, Python, 3D engine functionality, and game-engine functionality.
The concrete problem KlayGE addresses is the need for a reusable framework for game development, testing, and porting. In a C++ project it occupies the engine and framework layer, replacing a one-off, project-specific framework assembled for those tasks rather than acting as a single-purpose rendering library. It supports development on Windows desktop, macOS, and Linux without limitation, and it can be deployed to Windows desktop, Windows Store, Android, Linux, macOS, and iOS. Because some runtime platforms do not support all plugins, plugin selection and platform verification are part of the porting workflow.
Key capabilities
- A plugin-based engine architecture, with plugin availability varying by runtime platform; the README notes that some runtime platforms do not support all plugins.
- Direct3D 11 and Direct3D 12 are named in the project topics as graphics technologies.
- OpenGL and OpenGL ES are named in the project topics as graphics technologies.
- OpenAL is listed among the project topics for audio.
- A build workflow built around Python 3.6+, CMake 3.16+, and the
Build.py script, which builds the whole code base.
- Deployment targets covering Windows desktop, Windows Store, Android, Linux, macOS, and iOS.
Who uses it and how
- Developers working on Windows desktop, macOS, or Linux can use those systems as development hosts; the README describes development on them as possible with no limitation.
- Teams targeting Windows desktop, Windows Store, Android, Linux, macOS, or iOS can deploy KlayGE to those runtimes, but they must account for differences in plugin support between platforms.
- Projects that can comply with GPL-2.0 can use and access the source, provided that any project using KlayGE is released under the GPL 2.0 license.
- Contributors submit bug reports and feature requests through the GitHub issue tracker and follow the documented “Workflow of Contributing Code” before sending a patch or pull request.
- Build engineers prepare Python 3.6+ and CMake 3.16+, then run
Build.py to build the code base.
Getting started
Install Python 3.6+ and CMake 3.16+, then run Build.py to build the whole code base; the README points to the Installation wiki page for details.
How it compares
No paid products or comparable tools are named in the supplied facts, so there is no basis for a feature-by-feature, licensing, or cost comparison. Within this registry, KlayGE stands alone as a plugin-based, cross-platform C++ game engine.
When to use it — and when not to
Use KlayGE when a team wants a source-built C++ engine framework spanning desktop and mobile targets and can accept the GPL-2.0 requirement that projects using it also be released under GPL 2.0. The integrator must provide the build environment—Python 3.6+, CMake 3.16+, and Build.py—and must verify plugin coverage on each runtime platform, since some platforms do not support all plugins. Teams that need to keep a game proprietary, or that need identical plugin support on every target without platform-specific checks, should not choose it; external libraries also carry their own license terms in LICENSE-External.
project readme (upstream, from github) — read inline
KlayGE

KlayGE is a cross-platform open source game engine with plugin-based architecture. It's started since 2003. The explicit goal of KlayGE is: to arm your engine with cutting-edge technology. It provides a framework to make game development, testing, porting as simple as possible.
Getting started
Before compiling KlayGE, Python 3.6+ and CMake 3.16+ must be installed first. Then you can run Build.py to build the whole code base. For details, please see Installation.
Platforms
KlayGE can be developed on those platforms, with no limitation.
- Windows desktop
- macOS
- Linux
KlayGE can be deployed and run on those runtime platforms. Some of them doesn't supports all plugins. Details in Platforms
- Windows desktop
- Windows store
- Android
- Linux
- macOS
- iOS
Contribute
As an open source project, KlayGE benefits greatly from both the volunteer work of helpful developers and good bug reports made by users.
Bug Reports & Feature Requests
If you've noticed a bug or have an idea that you'd like to see come real, why not work on it? Bug reports and feature requests are typically submitted to the issue tracker.
Engineering Workflow
If you want contribute some code, please check Workflow of Contributing Code before submitting a patch or pull request.
Links
License
KlayGE's default license is the GNU General Public License 2.0 (See LICENSE). In other words, anyone can use it and access to its source code, as long as the project which uses KlayGE must be released under GPL 2.0 license.
KlayGE dependents on several external libraries. They are distributed under their own terms. See LICENSE-External.