转:如何学习Starling框架
Starling是一个用AS3写的开源免费的框架。此框架主要来简化Adobe Flash平台的游戏制作。此文章,我会介绍下Starling,分享一些经验、教程以及新手需要的资源。
为什么选择Starling框架?
用Starling框架创建游戏有很多益处,下面是一些重要原因:
- · 免费
- · 开源:开发者们一起改进框架
- · 硬件加速:Starling是基于新的Adobe Flash Player Stage3D,它使用玩家设备的GPU硬件来渲染游戏。适合跨平台,一个版本可以在桌面、web、iOS以及Android上运行。
到哪里下载
Starling框架官方网站有最新版本的下载链接。这是任何基于Starling游戏的基础包。
如上所说,Starling是开源的,可以在GitHub获得。
分支包括如下:
- · AS3版本的框架全部源码
- · 演示项目可以用来研究如何编写Starling代码
- · 有模板项目可以指导你创建新项目
- · 有些单元测试是专门针对Starling框架测试的
- · 很多基于框架的功能可以帮你部署和测试
学前知识
如果你的AS3.0基础中等偏上,那就可以快速学好Starling框架。如果你想获取AS3.0方面的知识,我推荐你学习Colin Moock的《AS3.0必备》一书。

开始开发
新手视频教程(免费)
如果你第一次接触此框架,我建议你通过简单的项目开始,然后利用一个完整游戏开发来锻炼。可以在下面的视频系列里查看:
http://www.hsharma.com/tutorials/?series=starting-with-starling
通过此视频系列,你就可以学会创建一个叫《饥饿英雄》的游戏。
视频里讲解了关于Starling框架的很多话题:
- · 创建
- · 图片、纹理和按钮
- · Sprite 表单和动画
- · 使用事件和监听来导航
- · 视差滚动
- · 游戏状态、Sprite、碰撞检测、文本和字体、离子等
Starling指南
要深入了解整个框架的话,推荐你查看Thibault Imbert的《Starling指南》

之后呢?
掌握基础的Starling框架知识后,我推荐你查看下面的内容:
增强的可视效果(例如离子系统)
在游戏中添加离子效果以及特殊的效果能增强玩家的游戏体验。对游戏开发者来说,Starling离子系统是一个很好地扩展。
MVC模式和高效编码
构建游戏的时候一个很重要的东西就是代码结构和素材组织。将代码分为模型、视图和控制器可以更好地管理项目,更快的修复bug并且能更好地实现。
高性能优化技巧
任何游戏都需要优化,不论你使用的是哪个语言或者框架。这样就能让你的游戏在最低配置上允许,绝不要忽视性能问题,尤其是在游戏开发中。
基于Starling游戏的UI组件
研究专门为Starling框架游戏构建的UI以及羽状图。使用AS3、Starling框架和Stage3D加速来构建UI组件,这样组件优化良好而且可以在各种分辨率情况下使用。
利用扩展来增强Starling框架
有很多针对Starling框架的成熟扩展,你会发现它们都很有用。一些优秀的开发者创建为了游戏开发创建了它们,它们使用扩展来构建和扩展自己的游戏。
游戏开发流程
现在你理解了框架的技巧,下面来看下如何高效、系统的构建游戏。这是最重要的一部分,因此需要不断练习和查看教程。
更多学习资源
这些关于Starling框架的链接提供了特殊方面的资源。
Starling手册
http://wiki.starling-framework.org/manual/start
这是新手用Starling框架开发游戏的必备。里面有从基础到高级的教程。
官方教程和代码示例
http://wiki.starling-framework.org/tutorials/start
这里有最好的视频和文章教程来开始学习。如果你之前对Starling没了解过,这是个不错的地方。
扩展
http://wiki.starling-framework.org/extensions/start
掌握基础后,你就可以构建游戏,而扩展是你需要的。这里你可以找到很多优秀开发者编写的不同库。它只是扩展了Starling框架的功能。
羽化
http://wiki.starling-framework.org/feathers/start
如果游戏没有用户界面,那就不算完成。构建一个主菜单,选项栏以及积分、关卡选择等都可以利用框架简单实现。
Starling API参考
http://doc.starling-framework.org/core/
不论你是新手、中级或者高级开发者,都需要有一个API参考。它提供最新的方法、类以及Starling框架的所有对象的属性。
http://forum.starling-framework.org/
开发过程中遇到过无法解决的问题吗?Starling框架社区是一个不错的地方获取帮助。有很多优秀的开发者都为社区论坛做贡献,大家互相帮助,游戏开发问题很快就可以解决。
GitHub上的Starling框架
https://github.com/PrimaryFeather/Starling-Framework
这是Starling框架的主要位置。如果你需要生成、添加或者只是查看更新,不要忘记它哦。
问题追踪器
https://github.com/PrimaryFeather/Starling-Framework/issues
如果没有测试人员或者真实用户,那没有哪个框架或者产品可以成功。如果你发现了Starling框架的bug或者问题,你可以通过追踪器提交bug。一起来让Starling框架越来越好吧!
开发经验
有些是Starling框架特殊方面的经验,大多数都适用于游戏开发。
适用多屏幕特性
由于Starling框架是基于Flash AS3.0的,因此不要忘记适用Starling框架的多屏幕特性。
有很多方式可以让游戏适应多平台或者多屏幕。要记得查看代码里的Demo和Scaffold项目哦。
从一开始就计划优化
优化是游戏开发中的一部分,不论哪种语言。记住Starling框架最重要的特性就是对多平台的支持。
一旦开始编码游戏,代码的复杂性就随着游戏开发不断增加。要保证自己不是在后期改变游戏架构,因此最好编码的时候就思考优化代码。
分离代码
将代码分为不同的部分:
- · 核心逻辑:包含不同游戏角色、物体移动的逻辑、添加分数、音效播放等。此部分的bug修复后就能保证所有平台游戏的bug都修复了。
- · 平台逻辑:针对平台的特殊代码,这里需要考虑iOS或者Android;平板或者手机或者Web,屏幕尺寸、分辨率和密度等。此部分代码处理特殊平台的代码,例如特效开启或者关闭时保证游戏稳定帧速播放的东西。
- · 交互逻辑:包含基于交互的逻辑,保证游戏运行平台的交互的执行,需要跟游戏里的核心逻辑进行交互。例如鼠标控制桌面和web,触碰控制手机和平板。
决定使用向量还是图形光栅
向量对内存消耗少。图形在运行时绘制到屏幕上,这样就可以减少内存中的图形数据。但是绘制需要大量消耗CPU。
位图或者图形光栅虽然吃内存。存储和绘制都吃内存,但是在绘制的时候相对就要消耗少点。
想要游戏在有限的CPU上运行的更快吗?使用位图吧。想要显示更加灵活的画就需要使用向量。这些都需要平衡处理。但是需要记住你的游戏耗费的处理器和内存。
需要的时候多使用Sprite Sheets
没必要在一个sprite sheet里将所有游戏图形都包含。如果需要的画,可以使用多个sprite sheet。但是需要记住,随着游戏占用文件尺寸的增加,对内存的消耗也增加哦。
考虑使用动态sprite sheet生成
你可以利用扩展来编写一个动态sprite sheet。利用之前生成的向量Flash动画并动态将它们转换为sprite sheets就可以节省大量的开发时间,同时也能减小文件尺寸。但是要保证不要做的太多,否则会影响运行时游戏消耗的内存的。
深入了解AS本地扩展
利用ANE来扩展游戏,用它可以包含平台相关的功能,例如应用里的购买、游戏里的广告以及社交功能。网上有很多免费和付费的ANE,多多查看它们吧。当然如果可以的话,你也可以自己写。
开发相关
在社区里要保持活跃。社区里有很多开发专家给社区做了大量贡献。因此要躲在Starling论坛发布自己的问题,如果需要的话不要忘记记录bug或者支持的票数。开发者的想法和需求是Starling框架不断增强的关键。
一点经验
有句话:重要的是技能而不是工具。Starling框架是一个优秀的开源API,可以用来为多平台和设备构建优秀的GPU加速游戏。然而你还是需要注意开发技巧、模式以及优化代码的方式,它们才会让你走的更远。此文中列出的所有经验对于其他语言和框架都是通用的。
因此不论你使用哪种语言、框架以及平台和工具来构建游戏,游戏开发的概念还是很重要的。
基于Starling框架开发的成功游戏
下面是一些成功的基于Starling框架开发的游戏。
愤怒的小鸟

空间逃离

红宝石爆炸

恐龙时刻

奥林匹斯河流

总结
现在所有的资源都集中到一个地方,学习Starling框架简直小菜一碟。
通过最简单游戏开发,完整的构建整个游戏。不要忘记发表评论并告诉我你创建的游戏哦。一旦发布游戏,我很高兴查看并评论的。
最后要说的,工具不是最重要的,而是技术。记住Starling框架只是一个工具或者开发游戏的媒介。平台、操作系统、设备、屏幕和框架、语言、工具等都是无数的。要自己不断积累能力构建游戏,然后才能成功。Starling框架是一个构建游戏的良好工具。谢谢!

浙公网安备 33010602011771号