Cocos is a flexible game engine that supports 2D and 3D games. Cocos has a few iterations of its game engine, including Cocos Creator and Cocos2d-x. Cocos Creator is the successor to Cocos2d-x, but a few developers still prefer to use Cocos2d-x. Cocos is open-source, meaning that developers are able to modify the engine freely. Teams have complete freedom and flexibility to change the engine to make it work a certain way. This makes Cocos different from other licensed game engines, such as Unity and Unreal Engine, which only allow developers to use plug-ins to add functionality but not directly change the engine itself.

Choosing a game engine to make a game isn’t simple, since there are so many options out there. To find out whether Cocos is the right game engine for the team’s next project, read on to learn more about Cocos, the types of games it excels at making, how Cocos Creator is different from Cocos2d-x, the different platforms that Cocos2d-x supports, the programming language that Cocos2d-x uses, and whether Cocos2d-x is a good game engine.
What is the Cocos game engine?
Cocos is an open-source game engine for 2D and 3D video games that supports several platforms and is free to use. Cocos focuses on lightweight 2D and 3D games, meaning that content-heavy AAA games such as Red Dead Redemption 2 or the Assassin’s Creed franchise are too bloated for the engine to realistically handle. Cocos was founded by Xiamen Yaji in 2011 and has been used by over 1.7 million developers across the gaming industry, including other industries such as marketing, automotive, and education.
Cocos being open-source and free to use makes it an attractive choice for game studios that don’t have a huge budget to spend on an engine. As an MIT-licensed open-source engine, developers have the right to use, copy, modify, publish, merge, and distribute the software without getting into trouble. The developer’s flexibility is limited with non-open-source game engines.

Cocos focuses on making lightweight 2D and 3D games, while supporting cross-platform capabilities. Developers are able to make smaller games with Cocos engine and still have the ability to release their game on iOS, Android, Windows, macOS, and certain consoles. Below are five games made with Cocos.
- BurgerDrive
- Cyberpunk
- Eternal Emblem
- Mom’s Kitchen: Cooking Games
- Slash the Hordes

Cocos is a free graphics engine for game development due to its use of a MIT open-source license. With the license, Cocos does not collect any royalties from the game made with the engine. Instead, Cocos makes its money from VIP support, purchases made from the Cocos store, special collaborations with other companies, and HMI creation. VIP support is an additional service that developers are able to pay for to receive quick one-on-one help with Cocos, while the Cocos store is an asset store where developers purchase art, plug-ins, and other assets to assist with their development. Other development costs that don’t directly come from the engine, such as employee expenses, remain an active part of a developer’s budget.
What is the difference between Cocos2d and Cocos Creator?
The difference between Cocos2D and Cocos Creator is the language used, whether it comes with an editor, the type of workflow they use, and their architecture. Cocos2d-x is an older version of the Cocos engine software, which primarily supported 2D game creation, with limited 3D use. Cocos Creator is the latest iteration of the engine software, which provides a wider berth of support for both 2D and 3D games. A table describing the main differences between the Cocos2d-x and Cocos Creator of the engines is below.
| Cocos2d-x | Cocos Creator |
|---|---|
| Uses C++ as core language with JavaScript and Lua bindings | TypeScript and JavaScript with C++ backend |
| No built-in editor, code-based | Full visual editor for scenes and UI creation |
| Code-driven workflow with data in scripts | Data-driven, with scenes as serialized assets |
| Node-based architecture and render tree-focused | Component-based logic nodes |
The primary difference between Cocos2d-x and Cocos Creator is that Cocos2d-x is centered on using C++ as its main language, with optional bindings written in either Javascript or Lua. Cocos2d-x uses JavaScript and Lua for optional bindings because it claims there’s a direct benefit to memory management and performance for multiplayer systems. Cocos Creator uses TypeScript, which is basically a typed superset of JavaScript, to handle the main game code. It uses TypeScript to allow for rapid prototyping within its visual editor.

A main difference between Cocos2d-x and Cocos Creator is its editor. Cocos Creator has a built-in editor that allows developers to construct a scene directly within it, including the ability to drag and drop assets and code right into the visual editor. Cocos2d-x lacks a visual editor on its own. Instead, developers have to use additional software, CocosBuilder, to visually build with the engine in a similar way to Cocos Creator.
What platforms does Cocos2d support?
Cocos2D supports platforms such as iOS, Android, Tizen, Windows, macOS, Linux, HTML5 browsers, and limited VR. Cocos2d-x focuses on robust mobile platforms and browser games, although it has been used to make small games for Steam and consoles. One of the hallmarks of Cocos is that it allows developers to post their games across multiple platforms, instead of having to choose between building the game for a mobile audience or a console/PC audience.
Cocos2d-x supports mobile platforms because of how it prioritizes lightweight games. Mobile platforms are resource-constrained, meaning that they don’t have as much memory or graphical integrity to support large-scale and content-heavy games. Cocos2d-x supports mobile platforms by using APIs that help mobile platforms access large assets while still maintaining performance. Along with iOS and Android devices, Cocos2d-x even supports certain Samsung wearables and TVs thanks to its integration with Tizen SDK.

Cocos2d-x provides support for desktop platforms, such as Windows, Linux and macOS devices thanks to its native C++ backends. Although the engine’s focus on mobile platforms is to save as much memory as possible while still providing a satisfying experience, Cocos2d-x prioritizes high-performance games for desktop platforms. One of the methods the engine uses to display high-end graphics while still managing performance is by leveraging Metal for graphics acceleration.
Along with mobile and desktop platforms, Cocos2d-x supports HTML5 browser games. The engine compiles its C++ codebase to JavaScript and WebAssembly through Emscripten. Cocos2d-x then uses a series of other APIs to boost its graphical performance on the browser. The engine supports Chrome 14+, Firefox 3.5+, Safari 5.0+, Edge, and their mobile counterparts.

Although limited, Cocos2d-x supports certain VR platforms. To make a VR game with Cocos2d-x, developers have to use certain plug-ins that support VR coding and publishing. The plug-ins are created by users rather than as a built-in feature of the engine. Samsung Note 4, 5, and Samsung S6 are possible integrations due to having dedicated plug-ins built by the community. Other community-created VR plug-ins for Cocos2d-x include Google Cardboard, Oculus Rift, and Gear VR.
What programming language does Cocos2d use?
Cocos2D uses C++ as its main programming language, with official bindings for JavaScript and Lua to script gameplay logic. Unlike Cocos Creator, which offers no-code tools thanks to its drag-and-drop visual editor, Cocos2d-x relies on traditional coding with a programming language. Developers who want to use Cocos2d-x for game development must be ready to learn how to write C++, JavaScript, and Lua.
C++ is the primary programming language used to code games in Cocos2d-x. C++ forms the foundation of the engine, allowing it to provide maximum performance when rendering assets, simulating physics, and triggering systems. C++ is an ideal programming language for projects that require heavy optimization, such as when making a multiplayer game.

JavaScript is an optional programming language used to make games in Cocos2d-x. JavaScript serves a specific purpose of scripting bindings. The benefit of using JavaScript for bindings is that it helps speed up development, since JavaScript is simpler to learn than C++, and it’s compatible with the web. When making a browser-based game, JavaScript provides more benefits, such as being able to transition seamlessly through Emscripten to run the game more efficiently on browsers. As someone who doesn’t have a lot of experience working with C++, I appreciate when engines such as Cocos2d-x offer additional programming languages that are more accessible to learn and use.
Lua is another optional programming language that developers are able to use to create games in Cocos2d-x. Much like JavaScript, Lua is used to make specific bindings. The benefit of using Lua to code specific elements in the game is that it has a tiny footprint, meaning that it doesn’t take a lot of memory. It adds minimal overhead, which is essential when making a mobile or browser-based game.

Is Cocos2d good?
Yes, Cocos2D is good when the goal is to create a specific 2D game project, but it has its drawbacks, such as a lack of active maintenance, a niche community, code-only workflow, and engine bugs. Cocos2d-x serves a particular purpose well, which is to make lightweight games for platforms that have little memory..
Cocos2d-x has several advantages: it’s friendly toward developers with low-spec desktops, supports mobile game development, and gives developers without a large budget the chance to make the game of their dreams. The engine requires low memory and is incredibly fast thanks to its focus on making lightweight and hyper-casual games. Beginner developers who don’t have a high-end PC benefit from using an engine that doesn’t overtax their desktop. Finally, Cocos2d-x is free and doesn’t collect royalties, allowing teams to keep most of the money their games make, and making the engine accessible to beginners or educators on a budget.

One of Cocos2d-x’s major flaws is its lack of active maintenance. Because the company behind Cocos is focusing on Cocos Creator instead of Cocos2d-x, Cocos2d-x doesn’t see as many updates. When bugs occur, developers are out of luck unless someone from the community remakes the engine with a patch and releases it publicly. Developers that want a regularly maintained and updated engine ought to use Cocos Creator instead.
Another problem that Cocos2d-x suffers from is its niche community. Cocos2d-x is popular with developers, but it still sees far less use than the big three game engines. The engine is considered niche, which means there isn’t as much content or new resources to help new developers learn how to use the engine. Cocos Creator, which is considered the successor to Cocos2d-x, is more popular and has more updated resources to help developers learn how to use it.

Cocos2d-x has a code-only workflow and lacks a built-in visual editor. Teams using Cocos2d-x for the first time face a potential slow development time as they learn how to use the engine. Not only does the team need to learn C++, but the lack of a visual editor means that prototyping and making fixes on the fly take longer. Cocos Creator outperforms it through the built-in visual editor and drag-and-drop interface that speeds up prototyping, coding, and debugging.
Cocos2d-x suffers from bugs, which doesn’t make it an ideal choice for developers. All game engines have bugs, but because Cocos2d-x isn’t receiving regular patches, its bugs persist. Many of its base features, such as shaders, audio, and platform integrations, remain bugged. These problems take away from active development time and require the developer to make manual fixes, which not every team knows how to do. Comparing this bug situation with other polished engines, such as Unity and Unreal Engine, Cocos2d-x doesn’t seem as though it’s the optimal choice.