关于FlasCC(Adobe Flash C/C++ Compiler)

FlasCC是Adobe的Alchemy 2的商标名。 早在Alchemy 1.0的时代,Adobe就成功地实现了将纯C/C++编写的程序,编译为SWF和SWC。 而在Alchemy 1.0的时代,是要收费的。

到Alchemy 2.0的时候,Adobe正式推出,并成为了游戏开发工具包的主力成员。 第一次推行的时候,FlasCC是要收费的,按每个产品的Title进行利润抽成。 高达 9%. 这一举动将很多开发商挡在了门外。 因为作为了一个新兴的编译器,以及,编译导向为Adobe自己的平台。 更多开发商在这里停步了。因为特别是国外一些大作,其作品都是由很多大师级引擎拼装而成的。 比如UDK,ScaleForm,Havok等等。 它们中很多引擎已经是抽成模式了。 现在Adobe还要来抽成,还抽了9%。 这就有点过了。

Adobe得知这样下去,将会很艰难,于是改变战略,将FlasCC作为了免费工具。

而由于这一举动,使得早先就使用FlasCC的Unity3D引擎受到了损失。 因为Unity3D引擎之前用FlasCC是交了钱的。 现在又不交钱了,好像Adobe也没有要退钱的意思。 最后,最新版的Unity3D不再提供导出为SWF的功能。 官方给出的原因是说Adobe对Stage3D的发展方向不确定,于是不再打算支持。

而大名鼎鼎的UDK则一如既往,提供了一个网页版的示例DEMO。 目前就放在了FlasCC的推广页上。 可以直接传送,耐心等待一会儿就可以出现一个场景漫游的效果了。

http://www.unrealengine.com/flash/

UDK放出这个DEMO很久了,但是DEMO一直没有更新。 这应该是其它问题了。也不好猜测。

而FlasCC本身是很OK的,特别是到了目前FlasCC 1.0.1版本。 我通过对文档和例子的研究。大概发现FlasCC可以完成以下事情。

一、将先前的C++库直接编译为SWC,供AS3项目使用。 比如一些纯C++写的跨平台物理引擎(BOX2D,BULLET等等)

二、如果想提供一个真正的多线程环境,那可以使用C++编写基于POSIX标准的线程库,供SWC使用。

三、一些效率要求较高的地方,比如寻路,排序等,可以使用C++编写,导出为SWC,供AS3项目使用。

四、可以使用OPENGL编写图形引擎,编译为SWC,而采用AS3进行逻辑开发,做微端或者页游。 OPENGL很多人都熟悉,同时,GLSL比AGAL好写得多,并且C++编写的效率较高(要在LLVM上运行)。 结合二者的优点,可以让一个端游团队快速转向页游或者端游,如果效率优化足够,可以直接到达手游。

五、已经成熟的游戏,想改微端或者页游,可以更换其图形层(如果是D3D写的,如果是OPENGL,就容易多了)。再编译为AIR或者SWF就可以了。

posted @ 2013-05-12 23:24  麒麟子MrKylin  阅读(699)  评论(0编辑  收藏  举报