Merge pull request #16018 from minggo/update-release-note

update release note
This commit is contained in:
minggo 2016-07-01 17:22:20 +08:00 committed by GitHub
commit d63802e718
2 changed files with 54 additions and 50 deletions

View File

@ -21,7 +21,7 @@
- [Tizen support](#tizen-support)
- [improve Android performance](#improve-android-performance)
- [improve web engine performance in WebGL mode](#improve-web-engine-performance-in-webgl-mode)
- [use clang on Android](#use-clang-on-android)
- [Use clang on Android](#use-clang-on-android)
- [Other changes](#other-changes)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
@ -154,7 +154,7 @@ cocos new -l cpp|js|lua MyNewGame
## Highlights
* add VR support
* add VR support in experimental
* add Tizen support
* improve Android performance issue
* improve web engine performance in WebGL mode

View File

@ -1,72 +1,76 @@
# v3.11
<!-- 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)*
- [v3.12](#v312)
- [新特性](#%E6%96%B0%E7%89%B9%E6%80%A7)
- [主要特性的详细介绍](#%E4%B8%BB%E8%A6%81%E7%89%B9%E6%80%A7%E7%9A%84%E8%AF%A6%E7%BB%86%E4%BB%8B%E7%BB%8D)
- [VR支持](#vr%E6%94%AF%E6%8C%81)
- [Tizen支持](#tizen%E6%94%AF%E6%8C%81)
- [提高Android渲染效率](#%E6%8F%90%E9%AB%98android%E6%B8%B2%E6%9F%93%E6%95%88%E7%8E%87)
- [提升Cocos2d-html5引擎WebGL模式下的性能](#%E6%8F%90%E5%8D%87cocos2d-html5%E5%BC%95%E6%93%8Ewebgl%E6%A8%A1%E5%BC%8F%E4%B8%8B%E7%9A%84%E6%80%A7%E8%83%BD)
- [Android使用clang编译器](#android%E4%BD%BF%E7%94%A8clang%E7%BC%96%E8%AF%91%E5%99%A8)
- [其他改动](#%E5%85%B6%E4%BB%96%E6%94%B9%E5%8A%A8)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# v3.12
## 新特性
* Chipmunk升级到v7.0.1
* JSB使用新的内存模型在JS脚本不需要关心对象的生命周期该特性默认关闭
* CURL升级到v7.48
* OpenSSL升级到v1.0.2g
* 可以使用VSCode或者新版本的Firefox调试JSB程序
* 全面升级 WebGL 渲染器
* 支持VR目前还处于测试阶段
* 支持Tizen平台
* 提升引擎在Android平台的渲染效率
* 提升Cocos2d-html5 WebGL模式的性能
* 支持Android的OBB扩展格式
* Android平台使用clang编译
## 主要特性的详细介绍
### JSB的新内存模型
### VR支持
使用新的内存模型后开发者不需要关心对象的声明周期。这就意味着不需要在JS代码里手动调用`retain/release`函数。
该版本添加了VR支持不过还处于测试阶段。目前支持的设备有__Google Cardboard____Oculus Rift____Samsung Gear__和__Deepoon E2__。关于如何使用、测试VR功能请参考[Programming Guide](http://cocos2d-x.org/docs/static-pages/programmers-guide.html)
不过该内存模型默认是关闭的。虽然我们已经做了很多的测试,目前没有发现任何问题,但是保险起见,你需要手动开启该功能,开启的方法是在`base/ccConfig.h`里把`CC_ENABLE_GC_FOR_NATIVE`的值改为1
### Tizen支持
该版本添加了Tizen平台的支持。支持的TizenSDK版本是__2.4__。开发Tizen平台应用时需要使用Tizen平台有自己的IDE和模拟器。请参考[这篇文档](http://cocos2d-x.org/docs/installation/Tizen/)了解如何搭建Tizen应用开发环境。
### 提高Android渲染效率
这里要多谢社区的开发者帮忙在各种Android设备上测试、验证性能问题。这个问题的原因是因为引擎默认创建了一个比较大的map buffer实际需要传到该map buffer的数据并没有那么多。但是在有些Android设备不管实际数据大小是多少每次都传输和map buffer大小一样多的数据。
通过代码解释如下:
```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
// 初始化map buffer
glBindBuffer(GL_ARRAY_BUFFER, BUFFER_ID);
glBufferData(GL_ARRAY_BUFFER, 65536, xxx , GL_DYNAMIC_DRAW);
```
### OpenSSL
Cocos2d-x已经把__OpenSSL__升级到__1.0.2.g__。
具体使用map buffer的代码是
从__2016年7月11__日开始Google Play将不再接受使用低版本的__OpenSSL__的新应用程序或者应用程序更新。更新程序中使用的__OpenSSL__版本变得十分重要。更详细的信息可以参考[这个帖子](http://discuss.cocos2d-x.org/t/openssl-problem-again/28270)。
如果你使用的是v2.x或者低版本的v3.x引擎那么你可以只更新__CURL__和__OpenSSL__具体步骤如下
* 修改__Cocos2d-x root/external/config.json__文件中的`version`字段。如果是v3.x的话那么`version`字段的值改为`v3-dpes-92`如果是v2.x的话那么值是`v2-deps-5`
* 在Cocos2d-x根目录下执行__download-deps.py__脚本
```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...
```c++
// 实际使用map buffer
glBindBuffer(GL_ARRAY_BUFFER, BUFFER_ID);
// 虽然只需要传输100个元素但是在某些Android机器上仍然传输65536个元素
glBufferData(GL_ARRAY_BUFFER, 100, xxx , GL_DYNAMIC_DRAW);
```
有任何问题可以在引擎的[中文论坛](http://forum.cocos.com/)上发帖反馈。
### Cocos2d-x JSB程序调试
详细的讨论可以参考[这个github issue](https://github.com/cocos2d/cocos2d-x/issues/15652)。
v3.11版本之前不能使用Firefox 30+版本来调试cocos2d-x JSB程序。这个版本修复了该问题同时支持了web console功能。如果你不了解如何使用Firefox调试cocos2d-x JSB程序可以参考[这篇文档](This documentation](http://www.cocos2d-x.org/wiki/Javascript_Remote_Debugging)。
### 提升Cocos2d-html5引擎WebGL模式下的性能
当然你也可以使用[VSCode](https://code.visualstudio.com/)来调试,具体的使用方法参考[这篇文档](http://discuss.cocos2d-x.org/t/use-vscode-to-debug-cocos2d-x-jsb-programs/27588)
该版本大幅提升了Cocos2d-html5引擎在WebGL模式下的性能。引擎的渲染性能、CPU使用量和内存大小都有提升。
### 全面升级 WebGL 渲染器
![rendering peformance](https://raw.githubusercontent.com/minggo/Pictures/master/web-performance-improve/adverage-time-per-frame.png)
在v3.11中为了提升性能我们重构了WebGL渲染器下面是几项重要的改进
![cpu-usage](https://raw.githubusercontent.com/minggo/Pictures/master/web-performance-improve/cpu-usage.png)
1. 在 Android 浏览器上默认开启 WebGL支持的话
2. WebGL 模式下自动批处理 Sprite
3. Sprite 共享全局的渲染数据缓存,并减少 GL 函数调用
![memory-usage](https://raw.githubusercontent.com/minggo/Pictures/master/web-performance-improve/memory-usage.png)
在这些优化后与旧版本相比合并贴图后的游戏中draw call数量将得到显著的降低。不仅如此v3.11中的CPU使用率和内存使用也都得到了降低。在我们的bunnymark测试中v3.11相比之前的版本有4倍以上的渲染性能提升。当然这是我们对WebGL渲染器做的第一步升级在后续版本中WebGL渲染器还将得到持续优化。
### Android使用clang编译器
[从NDK r11开始Google弃用了gcc](https://developer.android.com/ndk/downloads/revision_history.html)所以cocos2d-x也切换到clang编译器。如果可能的话一般都建议使用最新版本的NDK。
## 其他改动
更完整的改动列表可以阅读[full changelog](https://github.com/cocos2d/cocos2d-x/blob/v3/CHANGELOG)。