Adobe FlasCC:从实验到游戏开发利器的技术蜕变

3星 · 超过75%的资源 需积分: 9 23 下载量 140 浏览量 更新于2024-07-26 1 收藏 984KB PDF 举报
FlasCC技术介绍 FlasCC是一种由Adobe Systems开发并专为将C/C++代码编译为Adobe Flash(现在称为ActionScript)而设计的工具。它起源于2008年的Adobe Max大会,当时Alchemy引起了广泛关注,实验室发布了早期的实验版本。FlasCC的初衷是为了克服Alchemy在移植高性能C/C++库(如lua和bullet)、经典游戏(如Doom)到Flash平台上的局限性,以及解决其长时间以来缺乏官方支持和频繁存在的bug问题。 在2012年,Adobe对FlasCC的战略进行了重大调整,将其重新命名为Flascc(发音与flask相似),并将它整合到其全面的游戏创作方案中,成为Flash运行时路线图的核心部分。Flascc作为Adobe Creative Cloud的一部分,开始提供免费使用,标志着Adobe对其的研发投入进入了一个新的迭代开发阶段。 Flascc技术的核心原理是基于LLVM编译器架构进行改造。LLVM(Low Level Virtual Machine)是一个开源的编译器基础设施,它允许对多种编程语言进行优化。Flascc在LLVM的传统编译器流程中进行了前端的修改,以适应ActionScript的语法和需求。而后端则是利用Adobe自己的ABC(ActionScript Bytecode Compiler)技术,将C/C++代码转换为可执行的Flash字节码(SWC格式)。 工作流程分为两种:一是将C/C++库通过Flascc编译为动态链接库,然后在Flash环境中通过外部调用来使用,这涉及到与LLVM、GCC(GNU Compiler Collection)的交互,经过优化器处理后再由Flascc代码生成器转化为SWC。二是直接将C/C++源代码编译成SWF文件,这种方式可以直接生成Flash应用程序,可以选择共享主线程执行,或者创建独立的子线程,以充分利用Flash的多线程特性。 值得注意的是,除了SWF文件,Flascc还支持将代码编译为Windows上的exe应用程序,这对于希望在多个平台上部署游戏或应用的开发者来说提供了更多的可能性。然而,尽管FlasCC带来了显著的进步,但它仍面临一些挑战,如调试困难,但Adobe的持续投入表明其正致力于改进这些方面,以提高开发者的工作效率和产品质量。FlasCC作为端游向页游转型的强大工具,正在逐步提升Flash平台在游戏开发领域的竞争力。