【参与讨论送台历】关于Cocos2d-x移除VS2012支持的意见收集

目前Cocos2d-x中有一个VS2012的解决方案:build/cocos2d-win32.vc2012.sln。因为VS2013可以打开VS2012的项目,所以Cocos2d-x同时支持VS2012和VS2013。当然Cocos2d-x希望可以尽可能地支持更多的VS版本,但是我们遇到了一个问题,[color=#ff0000]不同的VS版本并不能使用相同的预编译库[/color],具体来说是:

[list=1][li]1.基于VS2012 C++ runtime编译的预编译库在VS2013中无法链接[/li][li]2.基于VS2013 C++ runtime编译的预编译库在VS2012中无法链接[/li][/list]
这就是[color=#ff0000]为什么我们在引擎中使用了Box2D,Spine和其他库的源码[/color]。

如果我们想要使用Box2d和Spine的预编译版本,而且同时支持VS2012和VS2013。那么我们不得不提供所有预编译库的两个版本,然后从以下的两个选择中挑一个:

[list=1][li]1.运行时决定加载哪个版本的库[/li][li]2.为VS2013另外创建一个解决方案文件,叫build/cocos2d-win32.vc2013.sln,然后链接相应的库。这意味着,如果你使用VS2012,你应该打开build/cocos2d-win32.vc2012.sln,如果你使用VS2013,你应该打开build/cocos2d-win32.vc2013.sln。[/li][/list]
但是[color=#ff0000]我们觉得应该移除对VS2012的支持,而是仅仅支持VS2013[/color]。因为:

[list=1][li]1.VS2013 community版本是免费的。[/li][li]2.VS2013比VS2012对C++11的支持更好。[/li][li]3.我们可以节省更多的时间来维护VS的两个版本,这意味着我们有更多的资源可以做其他有意义的事(不用提供两个版本的库,不用做相关的测试,不用添加jenkins来支持更多的VS版本)[/li][li]4.这也会更加方便开发者贡献代码,比如添加/移除一个文件时,就不用修改多个项目设置。[/li][/list]
[color=#ff0000]英文论坛讨论传送门:http://discuss.cocos2d-x.org/t/how-about-remove-supporting-vs2012/19208[/color]

[color=#ff0000][/color]
[color=#ff0000]欢迎提出你们的宝贵意见。待引擎确定方案后从提出有效意见的童鞋中抽取两名,赠送CocoaChina2015精美台历一本~[/color]
[color=#ff0000][/color]
[color=#ff0000][attachment=84071]
[/color]

支持VS2013

大家有什么想法么?可以都提出来。

就自己编译呗,又花不了多少时间。
非的要提供静态库,我还是选2013。

支持VS2013!:2:

还没用过2013,目前虽然机器上装了2012,但是实际上我还是用2010在做开发。
PS,我用的是cocos2dx 2.x

既然没用过2012,那么我支持2013,以后使用3.x的时候直接上2013就是了:7:

那以后是不是也会因为vs2015而放弃vs2013的支持呢,感觉这样没用尽头啊,最好有专门的一套开发工具~:7:

你们那,不要老是这样。特别是stdio

与时俱进支持更新版本的VS自然是对的,但如果不在支持2012,恐怕会引发大规模用户更新工具,进而恐怕会改写已有作品,孰轻孰重还需要cocos的维护人员判断了。

同感:2:不过程序员最喜欢最终版了

楼上那位说的好啊.等VS2015出来的时候是不是又要放弃VS2013啊,这样太无语了.

支持 移除。。。。。。。。。。。。

— Begin quote from ____

引用第6楼LukyDS于2015-01-08 17:59发表的 :
那以后是不是也会因为vs2015而放弃vs2013的支持呢,感觉这样没用尽头啊,最好有专门的一套开发工具~:7: http://www.cocoachina.com/bbs/job.php?action=topost&tid=280787&pid=1217075

— End quote

专门的一套开发工具有什么建议?这个问题是VS版本间不兼容造成的。

— Begin quote from ____

引用第8楼80min于2015-01-08 19:48发表的 :
与时俱进支持更新版本的VS自然是对的,但如果不在支持2012,恐怕会引发大规模用户更新工具,进而恐怕会改写已有作品,孰轻孰重还需要cocos的维护人员判断了。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=280787&pid=1217154

— End quote

只有新版本才会移除。已经存在的游戏工程一般也不建议频繁升级引擎。

— Begin quote from ____

引用第10楼LoveDelphi于2015-01-09 00:13发表的 :
楼上那位说的好啊.等VS2015出来的时候是不是又要放弃VS2013啊,这样太无语了. http://www.cocoachina.com/bbs/job.php?action=topost&tid=280787&pid=1217256

— End quote

总的来说,引擎开发只会支持一个版本,否则给引擎的维护和开发带来不必要的成本。等2015出来,除非迫不得已,我们不会升级到2015。
当然如果2015兼容2013是最好的了,但是我们不会去味兼容而做过多的事情。

这种开发工具和引擎,自然是向更优化的方向发展的。总有不能兼容的时候。 如果害怕引擎更新使得原先的版本不兼容,就不要更新引擎,一样可以使用。况且引擎更新到3.X后,本身很多东西都有变化了,做了很多优化。自身的代码总是需要修改的。
我做手游项目,一般时间也不会超过两年。每个项目都是单独分开的,可能和很多公司情况不一样。基于我的项目情况,我非常支持只维护2013。

另外,我觉得VS开发工具,每次更新肯定都会有很多新特性,肯定会做很多优化。使用最新的VS版本,对于开发来说也是有好处的,程序员也得与时俱进啊,不能卡死在某个版本里面。

支持移除vs2012,反正我现在用Xcode:11:

建议暂时不要换,毕竟工作中都是2012的,建议在后一段时间再移除把

用premake5可以生成2012的项目吧,那就提供个premake脚本,让有需要的人使用吧,3方库提供下载什么的,或者就提供git submodule让大家去下载,不也可以么
2013不也是没有完整c++11支持么,表示主要关注的还是12和13间关于使用最新特性的问题,因为就项目来说只是换个工程好像没啥特别的东西

关于版本管理和测试。。不想多说,比如工具和版本库的对应关系,各种带明显bug更新什么的,测试不完全什么的
单元测试麻烦一定要做一下