★ 118,782C++MITupdated Oct 2026
best for developers who want full editor tooling without Unity's licensing
Godot's scene system — everything as a node tree, composition built in — clicks faster than Unity's GameObject/Component split once you've built a few scenes. GDExtension lets you write native C++ or Rust against a stable ABI without recompiling the engine itself, which is the kind of architectural detail that separates a mature project from a weekend one. MIT license, no royalties, no per-seat fees: you keep the whole pipeline.
3D is the part still catching up. Global illumination through LightmapGI works, but the bake times and quality ceiling push anything serious toward Unity or Unreal instead. C# support ships as a separate editor build with flaky hot reload, so most people end up writing GDScript for the fast parts and reaching for GDExtension for the slow ones. Console releases go through certified third-party contractors — workable, but not the one-click export the rest of the engine promises.
Our full take →GitHub ↗
★ 25,463JavaApache-2.0updated Oct 2026
best for Java developers who want direct control over rendering without an editor
LibGDX hands you a backend abstraction — LWJGL3, Android, iOS, headless, GWT — proven across hundreds of shipped games rather than a handful of showcase demos. Apache 2.0 with no runtime fees is a real difference from Unity, and the third-party ecosystem (Ashley for ECS, Tiled support, particle editors) fills in what the core library leaves out.
There's no scene editor here at all; everything is code, which rules it out for anyone who wants to iterate visually the way Godot or Cocos allow. iOS support leans on RoboVM, a third-party AOT compiler whose maintenance has gone quiet for stretches — a riskier dependency than anything in Godot's stack. The API itself reads dated next to newer engines: manual sprite batching, no built-in ECS, and the HTML5 path through GWT feels like a holdover from an earlier web.
Our full take →GitHub ↗
★ 26,204TypeScriptApache-2.0updated Oct 2026
best for 3D in the browser, especially projects that need WebGPU now
Babylon.js runs WebGPU and WebGL side by side, maintaining GLSL and WGSL shader paths in parallel — most of the field is still catching up to that. Microsoft backs it directly, so it isn't going anywhere, and the online playground full of runnable examples makes prototyping faster than it is in Phaser or libGDX, where you're building your own test harness. Navigation mesh baking runs on a worker thread and is solid enough to ship with, unusual for something bundled into a web engine rather than added on top.
Tree-shaking helps, but the core package is still heavy, and keeping bundle size down takes real discipline about which modules you import. The audio system is mid-migration — an old API and a new AudioV2 one both exist in the source, so you inherit someone else's unfinished decision. Past the playground's happy path, documentation thins out fast; custom render pipelines and material plugins usually mean reading source instead of docs.
Our full take →GitHub ↗
★ 9,872C++NOASSERTIONupdated Oct 2026
best for teams shipping mobile games into China or WeChat mini-games
Cocos' GFX layer compiles the same shader code to Vulkan, Metal, WebGL2 and WebGPU automatically, which removes a category of per-platform work that libGDX and Phaser leave to you. Mini-game support for WeChat, TikTok and Facebook Instant Games comes from people who ship on those platforms themselves, not bolted on as an afterthought, and the Marionette animation system — pose graphs, blend trees — matches what Unity ships rather than offering a scaled-down version of it.
The trade-off is that Cocos Engine isn't meant to run outside Cocos Creator; there's no dropping this into your own build pipeline the way you can with libGDX or Bevy. Documentation gets thin fast once you're past the basics, and most of the deeper community knowledge lives in Chinese-language forums rather than English docs or Stack Overflow. The mixed C++/TypeScript architecture also means a native crash doesn't hand you a stack trace that makes sense from the scripting side.
Our full take →GitHub ↗
★ 40,524JavaScriptMITupdated Aug 2026
best for 2D browser games, especially ones targeting Discord Activities or Playables
Version 4 rewrote the renderer from scratch — proper WebGL state management, index buffers for quads, smarter texture batching — rather than just bumping a number. SpriteGPULayer and TilemapGPULayer push sprite and tile data into static GPU buffers and draw it in one call, the right way to handle large sprite counts and something neither libGDX nor Babylon.js offers out of the box for 2D specifically. The full build, physics and tilemaps and tweens included, still comes in around 345KB gzipped.
Anyone carrying a v3 codebase is looking at real rework: the renderer, tint system, masks and several core classes all broke in the move to v4. Physics has always been the weak spot — Matter.js is wrapped rather than integrated, and Arcade physics is fast but hits a wall fast on anything more complex than platformer collisions. The example library, over 2000 strong, is still mostly v3-era, so a lot of what you find while learning doesn't match the engine you're running now.
Our full take →GitHub ↗
★ 6,407C++NOASSERTIONupdated Oct 2026
best for small studios wanting a free, production-proven engine with wide platform reach
Defold has shipped real, commercial titles rather than just demos, and its build system cross-compiles to iOS, Android, consoles, HTML5 and desktop with dedicated docs for each target — a wider matrix than Cocos or libGDX attempt. The CI setup, with separate pipelines for engine nightlies, editor builds and external dependencies like ASTC and Dawn, shows the kind of engineering discipline a complex C++/Java/Clojure toolchain needs to stay stable.
That same split — C++ engine, Java/Clojure editor, Lua scripting — means contributing anything beyond a small patch takes understanding three unrelated languages, a much higher bar than Godot's GDScript or Bevy's single-language Rust codebase. Console support referenced in the description is gated behind private, licensed builds, so the public repo isn't the whole story if that's what you need. Getting a build running at all means working through several long READMEs across build_tools, ci and external before anything compiles.
Our full take →GitHub ↗
★ 27,789JavaScriptNOASSERTIONupdated Oct 2026
best for people who want to ship a real game without writing code
GDevelop's event sheets aren't a toy demo — there are shipped games on Steam, mobile stores and itch.io built entirely on them, more than most no-code tools can claim. Underneath, it's a real pipeline: PixiJS for 2D, Three.js for 3D, Box2D and Jolt compiled to WASM for physics, all driven through one event model instead of three separate libraries bolted together. MIT covers the engine, IDE and extensions, so a published game carries no licensing strings the way a Unity export might.
The event sheets hit a ceiling once game logic gets complicated — past a certain point you're fighting drag-and-drop instead of writing the logic, and unlike Bevy or libGDX there's no clean way to drop into code and keep going. The project spans four different stacks — C++ core, TypeScript engine, JS/WASM bindings, an Electron IDE — so anyone wanting to contribute beyond an extension is in for a longer ramp than Godot or Phaser. The name and logo are explicitly carved out of the MIT license as the maintainer's property, worth knowing if a fork or rebrand is ever on the table.
Our full take →GitHub ↗
★ 49,174RustApache-2.0updated Oct 2026
best for Rust developers who want compiler-enforced safety and don't mind a moving target
Systems in Bevy are plain functions, queries are type-safe, and the compiler enforces data-race freedom instead of leaving it to convention the way libGDX or Cocos do — the cleanest ECS design in this group. The plugin system lets you split a game into crates and compose them without fighting the engine, and the 300-plus example library is the most thorough way to learn any engine here, covering compute shaders and animation graphs most competitors don't document at all.
Moving fast shows up in breaking API changes roughly every three months, and community plugins routinely lag behind releases — budget for hitting an unmaintained crate along the way. The UI system is still the weak point: flexbox-only layout, no retained-mode widgets, so anything past a debug HUD means waiting on Bevy's in-progress overhaul or reaching for bevy_egui. Compile times are rough enough, even with the fast-compile setup, that a clean build on a mid-range machine takes minutes and breaks the iteration flow Godot or Phaser give you for free.
Our full take →GitHub ↗
// questions people ask
Before you choose
Do any of these compete with Unity or Unreal for full 3D production?
Godot is the closest in ambition, but its global illumination and lighting pipeline still trail Unity and Unreal in bake time and quality. Bevy is aimed at that scope long-term but doesn't have the tooling maturity yet for a full production pipeline.
Which engine is best for a browser game?
Phaser for 2D and Babylon.js for 3D — both ship straight to the browser with no plugin or export step in between. Babylon.js also runs on WebGPU alongside WebGL, which Phaser doesn't offer.
What if I don't want to write code at all?
Only GDevelop has a proven no-code path to a shipped game, using event sheets instead of a scripting language. It has a ceiling on complex logic, but real games on Steam and mobile stores have been built entirely that way.
Which one should I use for mobile games aimed at China or WeChat mini-games?
Cocos is built for that specifically — its mini-game support for WeChat, TikTok and Facebook Instant Games is maintained by people shipping there, not an afterthought. The trade-off is a smaller English-language community and documentation that thins out past the basics.
If the goal is just a real 2D or 3D game without fighting the tooling, start with Godot and move to something narrower — Phaser, Bevy, GDevelop — once the platform and workflow are clear.