2015-01-15 08:59:03 +08:00
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE - RUN doctoc TO UPDATE -->
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
2016-05-10 10:34:16 +08:00
- [Cocos2d-x 3.11 Release Notes ](#cocos2d-x-311-release-notes )
2015-01-15 08:59:03 +08:00
- [Misc Information ](#misc-information )
- [Requirements ](#requirements )
- [Runtime Requirements ](#runtime-requirements )
- [Compiler Requirements ](#compiler-requirements )
- [How to run tests ](#how-to-run-tests )
2015-07-01 18:44:15 +08:00
- [Cocos Console ](#cocos-console )
2015-01-15 08:59:03 +08:00
- [Mac OSX & iOS ](#mac-osx-&-ios )
- [Android ](#android )
- [Windows ](#windows )
- [Linux ](#linux )
- [How to start a new game ](#how-to-start-a-new-game )
2016-05-10 10:34:16 +08:00
- [v3.11 ](#v311 )
- [Highlights features ](#highlights-features )
- [The main features in detail of Cocos2d-x v3.11 ](#the-main-features-in-detail-of-cocos2d-x-v311 )
- [New memory model in JSB ](#new-memory-model-in-jsb )
- [OpenSSL ](#openssl )
- [Cocos2d-x JSB program debugging ](#cocos2d-x-jsb-program-debugging )
2016-05-16 14:01:55 +08:00
- [New WebGL renderer ](#new-webgl-renderer )
2015-08-24 09:40:59 +08:00
- [Other changes ](#other-changes )
2015-01-15 08:59:03 +08:00
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
2016-04-27 15:01:02 +08:00
# Cocos2d-x 3.11 Release Notes #
2015-07-01 18:44:15 +08:00
2014-01-07 08:23:06 +08:00
# Misc Information
2015-03-13 17:18:29 +08:00
* [Full Changelog ](https://github.com/cocos2d/cocos2d-x/blob/v3/CHANGELOG )
2014-01-07 08:23:06 +08:00
# Requirements
## Runtime Requirements
* Android 2.3 or newer
* iOS 5.0 or newer
* OS X 10.7 or newer
* Windows 7 or newer
2015-04-29 13:39:04 +08:00
* Windows Phone 8.1
2015-08-24 09:40:59 +08:00
* Windows 10 UWP
2014-07-06 20:53:17 +08:00
* Linux Ubuntu 14.04 or newer
2015-07-16 16:53:43 +08:00
* Mordern browsers and IE 9+ (On mobile platforms, only iOS and Android 5 activated WebGL support)
2014-01-07 08:23:06 +08:00
## Compiler Requirements
2014-07-16 11:26:21 +08:00
* Xcode 5.1 or newer for iOS or Mac
2014-07-06 20:53:17 +08:00
* gcc 4.9 or newer for Linux
2014-11-29 13:20:21 +08:00
* ndk-r10c for Android
2015-07-15 14:11:59 +08:00
* Visual Studio 2013 or newer for Windows (win32)
2015-08-12 13:02:35 +08:00
* Visual Studio 2013 update4 or newer for Windows 8.1 universal Apps
2016-04-29 03:17:55 +08:00
* Visual Studio 2015 or newer and Windows 10.0 (build 10074 or higher) for Windows 10.0 UWP Apps
2014-01-07 08:23:06 +08:00
2014-04-21 14:50:27 +08:00
## How to run tests
2014-03-04 18:15:30 +08:00
2015-07-01 18:44:15 +08:00
### Cocos Console
You can use [Cocos Console ](www.cocos2d-x.org/wiki/Cocos2d-console ) command line tool to run the test cases on almost all supported platforms.
In console application:
```
// Enter cpp test folder
2015-07-14 08:44:44 +08:00
cd tests/cpp-tests
2015-07-01 18:44:15 +08:00
// Or enter js test folder
2015-07-14 08:44:44 +08:00
cd tests/js-tests
2015-07-01 18:44:15 +08:00
// 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 example, if you want to run cpp test in release mode on Android, you can use the following command:
```
cocos run -p android -m release
```
2014-03-04 18:15:30 +08:00
### Mac OSX & iOS
2016-04-29 03:17:55 +08:00
You can run the samples by:
2014-03-04 18:15:30 +08:00
2016-04-29 03:17:55 +08:00
* Open __cocos2d-x/build__ folder, open __cocos2d_test.xcodeproj__
* Select `cpp-tests` , `lua-tests` , `js-tests` for __iOS__ or __OS X__ target in scheme toolbar
* Click __run__ button
2014-03-04 18:15:30 +08:00
### Android
2016-04-29 03:17:55 +08:00
You can run the samples by either using the command-line or Eclipse:
2014-03-04 18:15:30 +08:00
2014-03-07 08:37:33 +08:00
**Using command line:**
2016-04-29 03:17:55 +08:00
Perform the following steps:
2014-03-04 18:15:30 +08:00
2015-01-06 09:55:44 +08:00
$ cd cocos2d-x
$ ./setup.py
$ cd build
$ ./android-build.py cpp-empty-test -p 10
$ adb install cocos2d-x/tests/cpp-empty-test/proj.android/bin/CppEmptyTest-debug.apk
2015-01-15 06:51:42 +08:00
2014-03-04 18:15:30 +08:00
Then click item on Android device to run tests. Available value of `-p` is the API level, cocos2d-x supports from level 10.
2014-03-07 08:37:33 +08:00
**Using Eclipse:**
2016-04-29 03:17:55 +08:00
Perform the following steps:
2014-03-04 18:15:30 +08:00
2015-01-06 09:55:44 +08:00
$ cd cocos2d-x
$ ./setup.py
$ cd build
$ ./android-build.py cpp-empty-test -p 10
2015-01-15 06:51:42 +08:00
2016-04-29 03:17:55 +08:00
Next:
2014-03-04 18:15:30 +08:00
2016-04-29 03:17:55 +08:00
* Import cocos2d-x Android project into Eclipse, the path used to import is __cocos/2d/platform/android__
* Import `cpp-empty-test` Android project into Eclipse, the path used to import is __tests/cpp-empty-test/proj.android__
2014-03-14 15:01:11 +08:00
* Build `cpp-empty-test` Android project and run
2014-03-04 18:15:30 +08:00
### Windows
2016-04-29 03:17:55 +08:00
You can run the samples by:
2014-03-04 18:15:30 +08:00
2016-04-29 03:17:55 +08:00
* For win32 project, enter __cocos2d-x/build__ , and open __cocos2d-win32.sln__
* For win 8.1 project, enter __cocos2d-x/build__ , and open __cocos2d-win8.1-universal.sln__
* For win 10 project, enter __cocos2d-x/build__ , and open __cocos2d-win10.sln__
2015-07-01 18:44:15 +08:00
* Select running target
2014-03-04 18:15:30 +08:00
* Click run button
### Linux
2016-04-29 03:17:55 +08:00
You can run the samples by:
2014-03-04 18:15:30 +08:00
2015-01-06 09:55:44 +08:00
$ cd cocos2d-x/build
$ ./install-deps-linux.sh
$ cd ../..
2015-01-15 06:51:42 +08:00
2016-04-29 03:17:55 +08:00
Next:
2014-03-04 18:15:30 +08:00
2015-01-06 09:55:44 +08:00
$ mkdir build
$ cd build
$ cmake ../cocos2d-x
$ make -j4
2015-01-15 06:51:42 +08:00
2016-04-29 03:17:55 +08:00
Then run:
2014-03-04 18:15:30 +08:00
2015-01-06 09:55:44 +08:00
$ cd bin/cpp-empty-test
$ ./cpp-empty-test
2015-01-15 06:51:42 +08:00
2014-03-06 14:44:33 +08:00
## How to start a new game
2016-04-29 03:17:55 +08:00
Use the __cocos__ console app to create a new game:
2014-12-31 18:15:27 +08:00
2015-04-01 16:40:40 +08:00
```
2015-08-24 09:40:59 +08:00
cocos new -l cpp|js|lua MyNewGame
2015-04-01 16:40:40 +08:00
```
2015-03-13 15:08:09 +08:00
2016-04-27 15:01:02 +08:00
# v3.11
2015-04-22 14:59:22 +08:00
2016-04-27 15:01:02 +08:00
## Highlights features
2015-08-24 09:40:59 +08:00
2016-04-27 15:01:02 +08:00
* upgrade Chipmunk to v7.0.1
* use new memory model in JSB, don't have to invoke `retain/release` in JS, it is disabled by default
2016-05-11 05:38:56 +08:00
* upgrade Curl to v7.48
2016-04-27 15:01:02 +08:00
* upgrade OpenSSL to 1.0.2g
2016-05-04 11:54:38 +08:00
* can use VSCode and new Firefox to debug cocos2d-x JSB programs
2016-05-16 14:01:55 +08:00
* refactor WebGL renderer
2015-11-06 18:38:09 +08:00
2016-04-27 15:01:02 +08:00
## The main features in detail of Cocos2d-x v3.11
2015-11-06 18:38:09 +08:00
2016-04-27 15:01:02 +08:00
### New memory model in JSB
2015-11-06 18:38:09 +08:00
2016-04-27 15:01:02 +08:00
With new memory model, you don't have to care about object lifecycle. Which means you don't have to invoke `retain/release` in JS any more.
2015-11-06 18:38:09 +08:00
2016-05-04 11:54:38 +08:00
Though we have finished many tests about this new memory model, we can't make sure it is too perfect to enable it by default. But you are appreciated if you can enable it to have a try. If you want to enable it, you should change the value of `CC_ENABLE_GC_FOR_NATIVE_OBJECTS` to 1 in `base/ccConfig.h` like this:
2015-11-06 18:38:09 +08:00
2016-05-04 11:54:38 +08:00
```c++
#ifdef CC_ENABLE_SCRIPT_BINDING
#ifndef CC_ENABLE_GC_FOR_NATIVE_OBJECTS
#define CC_ENABLE_GC_FOR_NATIVE_OBJECTS 1 // change to 1
#endif
#endif
2016-04-27 15:01:02 +08:00
```
2015-11-06 18:38:09 +08:00
2016-04-27 15:01:02 +08:00
### OpenSSL
2016-05-04 11:54:38 +08:00
Cocos2d-x has upgraded __OpenSSL__ to version __1.0.2g__ .
2015-11-06 18:38:09 +08:00
2016-05-04 11:54:38 +08:00
Beginning __July 11, 2016__ , Google Play will block publishing of any new apps or updates that use older versions of __OpenSSL__ . It is important that you update the use of __OpenSSL__ in your projects. More detail information can refer to [this ticket ](http://discuss.cocos2d-x.org/t/openssl-problem-again/28270 ).
2015-11-06 18:38:09 +08:00
2016-05-04 11:54:38 +08:00
If you use v2.x or use older versions of v3.x, you can just update __CURL__ and __OpenSSL__ .
2016-04-29 09:46:53 +08:00
To do this:
* modify __Cocos2d-x root/external/config.json__ to update the dependency version. For v3.x the dependency version is `v3-deps-92` , and for v2.x it is `v2-deps-5`
* execute the __download-deps.py__ script in your __Cocos2d-x root__ .
2016-04-29 08:15:41 +08:00
```sh
(jtsm @ 15 ~) $ cd cocos2d-x
(jtsm @ 15 ~/cocos2d-x) $ ./download-deps.py
=======================================================
==> Prepare to download external libraries!
==> Ready to download 'v3-deps-92.zip' from 'https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/archive/v3-deps-92.zip'
==> WARNING: Couldnt grab the file size from remote, use 'zip_file_size' section in '/Users/jtsm/Chukong-Inc/cocos2d-x/external/config.json'
==> Start to download, please wait ...
==> Downloading finished!
==> Extracting files, please wait ...
==> Extraction done! ==> Copying files...
==> Cleaning...
```
Feel free to post on our < a href = "http://discuss.cocos2d-x.org" > forums< / a > if you run into difficulty.
2015-11-06 18:38:09 +08:00
2016-05-04 11:54:38 +08:00
### Cocos2d-x JSB program debugging
In previous version, can not use Firefox 30+ to debug cocos2d-x JSB programs. This limit is fixed since v3.11. And web console feature is added too. [This documentation ](http://www.cocos2d-x.org/wiki/Javascript_Remote_Debugging ) shows how to use Firefox to debug cocos2d-x JSB programs(this is a little difference from current usage).
Of course you can use [VSCode ](https://code.visualstudio.com/ ) to debug cocos2d-x JSB programs too. You can read about how to use VSCode to debug cocos2d-x JSB programs [here ](http://discuss.cocos2d-x.org/t/use-vscode-to-debug-cocos2d-x-jsb-programs/27588 ).
2016-05-16 14:01:55 +08:00
### New WebGL renderer
In v3.11, we have refactored the WebGL renderer in web engine, here is the detailed changes:
1. Activate WebGL on Android by default.
2. Add sprite auto batching in WebGL.
3. Shared rendering buffer for Sprites.
Compare with old version, the draw calls in your game should be significantly reduced if the textures is well managed. This improves also the CPU usage and memory usage. The above is just a first step of WebGL renderer upgrade, we will continue to investigate in this direction in the future versions.
2016-04-27 15:01:02 +08:00
## Other changes
2015-12-31 15:07:48 +08:00
You can also take a look at the [full changelog ](https://github.com/cocos2d/cocos2d-x/blob/v3/CHANGELOG ).