Flash页游未来新技术:Adobe Alchemy

### Flash页游未来新技术:Adobe Alchemy #### Adobe Alchemy 的推出目的与背景 Adobe Alchemy 是一项由 Adobe 公司推出的创新技术,旨在解决网页游戏开发者面临的性能瓶颈问题,并帮助他们利用现有的 C/C++ 代码资源。据 Adobe 统计,C/C++ 代码量达到了惊人的 60 亿行,而 JavaScript 仅有 14 亿行。这意味着有大量的成熟且高性能的 C/C++ 库可供重用。通过 Alchemy,开发者可以将这些库直接转化为 Flash 中可使用的代码,极大地提升了 Flash 游戏的性能表现,使得网页游戏的性能接近甚至达到主机游戏的水平。 #### 成功案例 - **Unreal Engine 3**:这款著名的游戏引擎包含大约 110 万行 C/C++ 代码,是目前授权给游戏开发商使用最广泛的引擎之一。 - **PhysX 及 Bullet 物理引擎**:这两款物理引擎均基于 C/C++ 代码编写。其中,Bullet 物理引擎开源,用于处理碰撞检测和刚体运动,已被广泛应用于游戏、电影和应用软件中,如《玩具总动员 3》、《赛车总动员 2》等电影以及 Blender、Lightwave 等软件。 #### Adobe Alchemy 技术详解 - **性能提升**:Adobe Alchemy 能够实现约 80% 的原生 C/C++ 代码执行效率,为 ActionScript 3 (AS3) 开发者提供了获取 C/C++ 代码的强大功能和高效执行能力的机会。 - **全面支持**:Alchemy 支持包括模板、异常、运行时类型信息 (RTTI) 和标准模板库 (STL) 在内的各种高级 C/C++ 功能,确保了代码的完整性和健壮性。 - **跨平台兼容**:Alchemy 编译后的代码可以在移动设备和 PC 上无缝运行,大大简化了跨平台开发流程。 - **调试支持**:Alchemy 提供基于 GDB 的调试工具,支持设置断点、单步调试、数据注入和修改等功能,还支持远程调试和与 CDTC/++ 开发环境的兼容性。 #### Alchemy Memory Opcodes Alchemy 引入了一种新的内存操作码机制,允许直接访问 ApplicationDomain 的内存区域,从而提高了性能。例如,可以通过 `ApplicationDomain.currentDomain.domainMemory.readInt()` 直接读取内存中的数据。这种机制通过将 C/C++ 代码转换为 AS3 代码并在 Flash Player 10.x+ 中执行,实现了指令长度的显著缩短,进而提升了性能。 #### 工具支持 - **工具扩展**:Adobe Alchemy 通过对 LLVM 编译架构进行扩展来支持 C/C++ 代码到 AS3/ABC 代码的转换。此外,还增加了对 AS3 汇编的支持以及 ABC/SWF/SWC 文件的链接支持。 - **兼容性**:Alchemy 使用 GCC 作为编译器,因此许多现有的 C/C++ 库只需要进行简单的 ./configure 配置调整即可编译使用。例如,Unreal Engine 3 大约 1.1 百万行代码在经过 Alchemy 编译后,转换成了 6.7 百万行 AS3 代码,生成了 51MB 的 ActionScript ByteCode (ABC) 文件。 #### 编译架构 Adobe Alchemy 的编译架构基于 LLVM,这是一个开源项目,支持 x86 和 ARM 架构。该架构不仅被 Adobe Alchemy 所采用,也被用于将 Flash 打包至 iOS 平台的过程。以下是一个简化的编译流程图: 1. **源代码 (.as) 输入**:ActionScript 源代码通过 ASC/Falcon 进行预处理。 2. **Gcc 前端**:GCC 前端将 C/C++ 源代码转换为中间表示 (Intermediate Representation, IR)。 3. **优化器**:对 IR 进行优化。 4. **降低**:将优化后的 IR 降低为机器代码。 5. **链接**:最终生成 SWF 或 SWC 文件,供 Flash 运行时加载和执行。 Adobe Alchemy 为 Flash 游戏开发者提供了一个强大的工具链,不仅可以提高游戏性能,还能充分利用现有的 C/C++ 代码资源,使得网页游戏的开发更加高效、灵活。























剩余12页未读,继续阅读

- safdsafdsgsdgasfg2013-04-20说实话没什么作用。。真的没必要下载
- jinzhuoyao2013-09-01没有实际详细资料

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 综合布线系统工程的投标.doc
- 数据结构(C语言版)-期末复习汇总.doc
- (精品)继续教育专业技术人员网络安全建设和网络社会治理答案.doc
- 电子商务专业实习报告.docx
- (源码)基于LoRa通信协议的公共交通监控系统.zip
- 用条码标签打印软件打印实时日期.pdf
- 用友电子商务解决方案BC商城标准版-V2.ppt
- 微博营销-新型网络营销工具.pptx
- 计算机科学导论第一章绪论演稿.ppt
- (源码)基于Kosagi Novena母板的电路板设计项目.zip
- (源码)基于C语言的可变参数调用库系统.zip
- (源码)基于Python的分类模型项目.zip
- 借助百度AI 实现文字识别,语音识别,图像识别等等
- (源码)基于微信小程序的闪视数据可视化系统.zip
- (源码)基于ROS 2框架的机器人手臂遥控系统.zip
- (源码)基于Arduino IDE的水质监测系统.zip


