Cocos2d-x is a suite of open-source, cross-platform, game-development tools used by millions of developers all over the world.
C++ JavaScript Lua C Objective-C++ Objective-C Other
Switch branches/tags
cocos2d-x-4.0alpha1 cocos2d-x-4.0alpha0 cocos2d-x-3.17 cocos2d-x-3.16 cocos2d-x-3.15.1 cocos2d-x-3.15 cocos2d-x-3.15rc0 cocos2d-x-3.14.1 cocos2d-x-3.14.1rc0 cocos2d-x-3.14 cocos2d-x-3.13.1 cocos2d-x-3.13 cocos2d-x-3.12 cocos2d-x-3.11.1 cocos2d-x-3.11 cocos2d-x-3.10 cocos2d-x-3.9 cocos2d-x-3.8.1 cocos2d-x-3.8 cocos2d-x-3.8rc0 cocos2d-x-3.8beta0 cocos2d-x-3.7.1 cocos2d-x-3.7 cocos2d-x-3.7rc1 cocos2d-x-3.7rc0 cocos2d-x-3.7beta0 cocos2d-x-3.6 cocos2d-x-3.6beta0 cocos2d-x-3.6alpha0 cocos2d-x-3.5 cocos2d-x-3.5rc0 cocos2d-x-3.5beta0 cocos2d-x-3.5-tizen cocos2d-x-3.4 cocos2d-x-3.4rc1 cocos2d-x-3.4rc0 cocos2d-x-3.4beta0 cocos2d-x-3.3 cocos2d-x-3.3rc2 cocos2d-x-3.3rc1 cocos2d-x-3.3rc0 cocos2d-x-3.3beta0 cocos2d-x-3.3alpha0 cocos2d-x-3.2 cocos2d-x-3.2rc0 cocos2d-x-3.2alpha0 cocos2d-x-3.1.1 cocos2d-x-3.1 cocos2d-x-3.1rc0 cocos2d-x-3.1alpha1 cocos2d-x-3.1alpha0 cocos2d-x-3.0 cocos2d-x-3.0rc2 cocos2d-x-3.0rc1 cocos2d-x-3.0rc0 cocos2d-x-3.0rc cocos2d-x-3.0beta2 cocos2d-x-3.0beta cocos2d-x-3.0alpha1 cocos2d-x-3.0alpha0 cocos2d-x-3.0alpha0-pre cocos2d-x-2.2.6 cocos2d-x-2.2.5 cocos2d-x-2.2.4 cocos2d-x-2.2.3 cocos2d-x-2.2.2 cocos2d-x-2.2.1 cocos2d-x-2.2 cocos2d-x-2.1.5 cocos2d-x-2.1.4 cocos2d-2.1rc0-x-2.1.3 cocos2d-2.1rc0-x-2.1.2 cocos2d-2.1beta3-x-2.1.1 cocos2d-2.1beta3-x-2.1.0 cocos2d-2.0-x-2.0.4 cocos2d-2.0-x-2.0.3 cocos2d-2.0-x-2.0.2 cocos2d-2.0-rc2-x-2.0.1 cocos2d-2.0-rc0a-x-2.0 cocos2d-1.0.1-x-0.13.0-beta cocos2d-1.0.1-x-0.12.0 cocos2d-1.0.1-x-0.11.0 cocos2d-1.0.1-x-0.10.0 cocos2d-1.0.1-x-0.9.2 cocos2d-1.0.1-x-0.9.1 cocos2d-1.0.0-x-0.9.0 cocos2d-0.99.5-x-0.8.5 cocos2d-0.99.5-x-0.8.4 cocos2d-0.99.5-x-0.8.3 cocos2d-0.99.5-x-0.8.2 cocos2d-0.99.5-x-0.8.1 cocos2d-0.99.5-x-0.8.0 cocos2d-0.99.5-x-0.7.2 cocos2d-0.99.4-x-0.7.1 cocos2d-0.99.4-x-0.7.0
Nothing to show
Clone or download
Failed to load latest commit information.
build check test cases and fix small bugs before 3.17 release (#18786) Apr 25, 2018
cmake change PROP_BUILD_TYPE from ndk-build to CMake (#18953) Jul 22, 2018
cocos [ci skip][AUTO]: updating luabinding & jsbinding & cocos_file.json au… Aug 7, 2018
docs Fix iCCP profile using mogrify (#18908) Jun 29, 2018
extensions beauty cmake format, reduce duplicate defines (#18799) May 2, 2018
external V3 android cmake support, add mac/ios support (#18646) Feb 8, 2018
licenses Spine update (#18438) Nov 3, 2017
templates change PROP_BUILD_TYPE from ndk-build to CMake (#18953) Jul 22, 2018
tests refine EditBox: add support for pressed and disabled image (#18965) Aug 7, 2018
tools Switch appveyor/travis assembleRelease/assembleDebug (#18969) Jul 30, 2018
web @ e79acd0 update web Spine to 3.6.39 Apr 19, 2018
.appveyor.yml V3 appveyor android build release only (#18954) Jul 22, 2018
.gitattributes fix line end in windows Sep 20, 2013
.gitignore refactor cmake copy res, fix #18813 (#18816) May 17, 2018
.gitmodules remove plugin (#18429) Nov 1, 2017
.travis.yml ios and mac cmake travis configs (#18968) Jul 29, 2018
AUTHORS Update AUTHORS Jul 26, 2016
CHANGELOG Update CHANGELOG corrected little mistakes (#18841) May 22, 2018
CMakeLists.txt beauty cmake format, reduce duplicate defines (#18799) May 2, 2018 rename to Aug 28, 2015 sync 3.17 to v3 (#18837) May 21, 2018 do not use git command (#17679) Apr 10, 2017 Fix minor typo in issue_template (#16672) Oct 11, 2016 environment path variable can include blank space (#17919) Jun 12, 2017


Win32 Others
Build status Build Status

cocos2d-x is a multi-platform framework for building 2d games, interactive books, demos and other graphical applications. It is based on cocos2d-iphone, but instead of using Objective-C, it uses C++. It works on iOS, Android, OS X, Windows, Linux and Web platforms.

Cocos2d-x Framework Architecture:

cocos2d-x is:

  • Fast
  • Free
  • Easy to use
  • Community supported

Git user attention

  1. Clone the repo from GitHub.

      $ git clone
  2. After cloning the repo, please execute to download and install dependencies.

      $ cd cocos2d-x
      cocos2d-x $ python
  3. After running

      cocos2d-x $ git submodule update --init

Download stable versions

How to start a new game

  1. Download the code from cocos2d download site or clone this repo (instructions above)
  2. Run
  3. Run the cocos script


$ cd cocos2d-x
$ ./
$ cocos new MyGame -p com.your_company.mygame -l cpp -d NEW_PROJECTS_DIR

You can also create a JS project or Lua project with -l js or -l lua.

Build and run a new project for Android

Cocos2d-x supports Android Studio. Simple open the directory from within the Android Studio environment. More information can be found in our documentation.

Build and run a new project for iOS

$ cocos run -p ios

Build and run a new project for OSX

$ cocos run -p mac

Build and run a new project for Linux

If you never run cocos2d-x on Linux, you need to install all dependencies by the script in cocos2d/build/

$ cd cocos2d-x/build
$ ./


$ cocos run -p linux


$ bin/MyGame

Build and run new project for win32

$ cocos run -p win32

Build and run new project for web

Only JS project can be published to web platforms, so you will need to create a JS project first:

$ cocos new -l js WebGame

Then you can run your game in a web browser:

$ cocos run -p web

Or you can publish your game to publish/html5/ folder:

$ cocos run -p web -m release [--advanced]

Using CMake

Cocos2d-x supports CMake, a cross-platform build system. Example usage:

$ cd cocos2d-x
$ mkdir cmake-build && cd cmake-build
$ cmake ..

Documentations and samples

Main features

  • Scene management (workflow)
  • Transitions between scenes
  • Sprites and Sprite Sheets
  • Effects: Lens, Ripple, Waves, Liquid, etc.
  • Actions (behaviours):
    • Transformation Actions: Move, Rotate, Scale, Fade, Tint, etc.
    • Composable actions: Sequence, Spawn, Repeat, Reverse
    • Ease Actions: Exp, Sin, Cubic, Elastic, etc.
    • Misc actions: CallFunc, OrbitCamera, Follow, Tween
  • Basic menus and buttons
  • Integrated with physics engines: Box2d and Chipmunk
  • Particle system
  • Skeleton Animations: Spine and Armature support
  • Fonts:
    • Fast font rendering using Fixed and Variable width fonts
    • Support for .ttf fonts
  • Tile Map support: Orthogonal, Isometric and Hexagonal
  • Parallax scrolling
  • Motion Streak
  • Render To Texture
  • Touch/Accelerometer on mobile devices
  • Touch/Mouse/Keyboard on desktop
  • Sound Engine support (CocosDenshion library) based on OpenAL
  • Integrated Slow motion/Fast forward
  • Fast and compressed textures: PVR compressed and uncompressed textures, ETC1 compressed textures, and more
  • Resolution Independent
  • Language: C++, with Lua and JavaScript bindings
  • Open Source Commercial Friendly(MIT): Compatible with open and closed source projects
  • OpenGL ES 2.0 (mobile) / OpenGL 2.1 (desktop) based

Build Requirements

  • Mac OS X 10.7+, Xcode 8+
  • or Ubuntu 14.04+, CMake 3.1+
  • or Windows 7+, VS 2015
  • Python 2.7.5+(NOT Python 3)
  • NDK r16+ is required to build Android games
  • Android Studio 3.0.0+ to build Android games(tested with 3.0.0)
  • JRE or JDK 1.6+ is required for web publishing

Runtime Requirements

  • iOS 8.0+ for iPhone / iPad games
  • Android 3.0.0+ for Android
  • OS X v10.9+ for Mac games
  • Windows 7+ for Win games
  • Modern browsers and IE 9+ for web games

Running Tests

Select the test you want from Xcode Scheme chooser.

  • Cocos Console
// Enter cpp test folder
cd tests/cpp-tests
// Or enter js test folder
cd tests/js-tests
// Or enter lua test folder
cd tests/lua-tests

// Compile or run test case
cocos compile -p ios|mac|android|win32|win8_1|metro|web -m debug|release
cocos run -p ios|mac|android|win32|win8_1|metro|web -m debug|release
  • For OS X / iOS
$ cd cocos2d-x/build
$ open cocos2d_tests.xcodeproj
  • For Linux
$ cd cocos2d-x/build
$ ./
$ mkdir linux-build
$ cd linux-build
$ cmake ../..

Run Samples

$ bin/Debug/cpp-empty-test/cpp-empty-test
$ bin/Debug/lua-empty-test/lua-empty-test

You may meet building errors when building It is because directs to an error target, you should make it to direct to a correct one. only has to be run once.

  • For Windows

Open the cocos2d-x/build/cocos2d-win32.sln

  • For Android
$ cd cocos2d-x/build
$ python ./ cpp-empty-test -p 14
$ adb install ../tests/cpp-empty-test/

Then click item on Android device to run tests. Available value of -p is the API level, cocos2d-x supports from level 14.

Or you can import the project located at tests/cpp-empty-test/ using Android Studio 3.0.0+.

Learning Resources

Spreading the word!

You can help us spread the word about cocos2d-x! We would surely appreciate it!

See what we are planning!

You can see exactly what we are planning to do with the Cocos family of products.

Where to get help

Contributing to the Project

Cocos2d-x is licensed under the MIT License. We welcome participation!

Did you find a bug? Do you have feature request? Do you want to merge a feature?

Contact us