「引」 http://bbs.9ria.com/thread-5098-1-8.html
Flash网络游戏开发入门经验共享
大约1年前(07年3月),有了想使用Flash做网页游戏的冲动。于是研究了AS2,经过了解,感觉AS2做网页游戏还是有不少欠缺的。这时又得知了AS3,如获至宝。对于有Java开发经验的程序员,尤其是开发过Java客户端的程序员,AS3真是太合适做游戏开发了。
后来公司也上了Flash MMORPG的项目,于是就开始学习AS3的语法和库,学习Flex工具。有了Java的经验,这些就很快了。
作为Flash网页游戏,不单单是炫酷效果的展示,用户的交互和逻辑也很多,因此好的游戏一定离不开AS3代码的。 磨刀不误砍柴工,我建议大家在真的动手开发项目之前,把该看的文档都看一遍,顺便写一些测试代码加深理解。建议的文档和理由如下:
《Adobe Flex Help》。这个就是Flex自带的帮助了,看了这个,就知道如何使用AS3来创建,编写,编译,调试,发布应用程序。使用AS3,哪些东西能做,哪些东西不能做;哪些东西可以直接用现成的,哪些东西需要自己来开发。有些人习惯遇到文字再查帮助,或者GOOGLE,或者到论坛提问。其实提问也是有学问的,你能把问题描述的越准确,就能越快的得到准确的答案。
《ActionScript 3.0 Cookbook》和《Essential ActionScript 3.0》,AS3的基本语法,常用功能,一些作者的心得。看了这些,很多问题就可以不求人了。看书的时候,那些立刻需要使用的,最好记下来;那些暂时用不到的,知道用的时候去哪里找答案就可以了。
下面具体说说以我认为开发Flash网络游戏需要掌握的技术吧。
1.显示
一个游戏离不开显示,AS3已经为开发者提供了一个比较完整的2D显示引擎了。学习这个部分,学习显示列表,学习DisplayObject和DisplayObjectContainer的区别,学习Shape, Sprite, MovieClip, Bitmap这些基本可显示对象的区别。
2.鼠标输入
交互就离不开用户输入的处理,鼠标是游戏中最常用的输入设备。需要知道只有继承自InteractiveObject的对象才能接收鼠标消息。还要学习如何使用鼠标拖拽,如何判定鼠标消息产生的目标,如何启用,禁用鼠标消息。鼠标坐标的全局和局部的转换。
3.键盘输入
键盘除了标准UI组件内部会用到,游戏的快捷键等功能也需要用到。
4.位图
作为游戏开发,可能不是所有的美术素材都是在开发阶段就固定的,或多或少需要在游戏过程中对图形进行一些变换处理。因此需要熟练掌握Bitmap和BitmapData对象。
5.层
作为MMORPG游戏,不同可视对象之间是有层次关系的。不同层的关系是固定的,比如地面层,人物层,UI层。同一层上的物体重叠时,需要通过修改在显示列表中的相对位置来调整上下关系。
6.UI组件
按钮,输入框,文本框,下拉框,列表,表格。这些在游戏中都少不了。为了游戏画面的美观和风格一致,通常都需要修改标准组件的皮肤,才能应用到游戏中。
7.资源加载
大家都知道,传统客户端MMORPG游戏,动辄几百M上G的尺寸,大部分都是媒体资源,我们不可能把这些资源都打到一个SWF文件中,因此需要根据资源的重要程度来决定加载策略。最常用最基本的,程序启动时加载;其他的,可以在游戏过程中动态加载。
8.事件机制
作为新人,或多或少都会用到addEventListener方法。作为大型系统开发者,一定要知道这个方法背后的IEventDispatcher接口和EventDipatcher类。使用事件机制进行开发,一方面为了降低代码之间的耦合,另外也是方便了多人协作开发。
9.远程通讯
作为MMORPG的通讯方案,需要考虑效率和安全性。由于服务器端我们很熟悉Java的Socket开发,而且看到了AS3的Socket类,于是毫不犹豫的选择了使用私有协议的通讯方式。作为MMORPG,基于HTTP的协议效率肯定比直接基于TCP的二进制协议低。另外,基于HTTP方式,不太适用于服务器向客户端推消息的情景。AS3的其它通讯方式我了解的不太清楚,不知道是否有在灵活性,安全性,性能方面超越Socket方案的。
10.性能优化
作为商业游戏,需要考虑到玩家环境的千差万别,因此系统的很多效果都需要有参数可以控制,使得程序能流畅的运行于玩家的机器上。作为Flash网游,需要考虑客户端的内存占用和CPU使用,需要考虑服务器的流量和客户端到服务器的带宽。
11.多线程
首先,Flash没有多线程,是一个单线程,如果有时候需要实现类似开一个线程进行耗时的复杂计算时,可以将这个计算封装成一个类,提供一个step方法,每掉用一次step,执行若干步计算,手工为代码分配时间片。用这种方法来模拟多线程。
12.高级知识(js/jsfl/swf格式/加扰/虚拟机运行机制)
作为一款产品,在开发过程中还有很多细节需要考虑。
比如使用ExternalInterface与JS通讯。Web游戏,离不开网页的,偶尔还是会与网页有些交互的。
使用JSFL批量生成或者处理Fla项目文件。游戏中大量的资源的格式是类似的,如果完全由人工,需要大量重复劳动。幸好Flash提供了JSFL的扩展,帮我们节约了大量的人工。
对SWF格式的理解。有些工作,由于JSFL的可编程性比较差,无法完美实现,我们还编写程序直接对SWF文件进行操作。曾经有一个需求,需要四个人花一周时间才能搞定,而且还很容易出错,后来写了JSFL脚本,外加编程直接处理SWF,每次进行类似的工作,只需要一个人几分钟人工,程序跑1个小时就搞定了。
商业产品发布时,还是要代码加扰的。现在反编译先锋Sothink4/ASV6已经问世,但是AS3加扰的工作还远远落后于反编译的步伐。我们这些Flash开发人员很着急呀。
13.算法
算法对于游戏开发还是很有用的。有时候是效率的提升,有时可能是01的区别。
就简单说这么多了,真要展开了讲,能写一本书了。这里只是给大家说说个人走过的路,不一定全对,只是希望帮助大家少走一些弯路。
分享到:
相关推荐
Flash 网络游戏开发入门经验共享 本文档是基于 Flash 网络游戏开发的经验分享,涵盖了 Flash 网络游戏开发的基本技术和要点。作者从自己的经验出发,分享了使用 Flash 开发网络游戏的整个过程,从了解 AS2 到转向 ...
【Flash网络游戏开发入门经验】 Flash网络游戏开发是一种将互动性、娱乐性和技术性融合的艺术形式。在本文中,我们将深入探讨使用ActionScript 3.0 (AS3)进行Flash webGame开发的基本步骤和关键技术。 首先,AS3...
Flash网络游戏开发是一项涉及多方面技术的综合性工作,尤其对于初学者来说,掌握好基础知识是至关重要的。以下将详细介绍Flash网络游戏开发所需掌握的关键知识点: 1. **ActionScript 3.0 (AS3) 语言**:AS3 是开发...
在本文中,我们将深入探讨Flash Media Server (FMS)的开发入门与配置,这是一款由Adobe公司提供的强大的实时多媒体流媒体服务器,主要用于处理和分发基于Flash的视频、音频内容。FMS为开发者提供了丰富的功能,包括...
《Flash ActionScript 3.0从入门到精通》是一本旨在帮助初学者快速掌握ActionScript 3.0编程技能的教程。ActionScript是Adobe Flash平台的核心脚本语言,用于创建交互式内容、动画以及富互联网应用程序(RIA)。...
### FlashMediaServer配置与开发入门知识点详解 #### 1. FlashMediaServer的发展与功能 **发展历史**: FlashMediaServer(FMS),最初由Macromedia公司于2002年末以Flash Communication Server MX(FCS)的形式...
### Flash Media Server (FMS) 入门教程详解 #### 一、Flash Media Server简介 Flash Media Server(简称FMS)是Adobe Systems公司推出的一款专为流媒体传输设计的服务器软件。它支持实时数据和流媒体传输,广泛...
Red5是基于Java开发的,能够实现与Adobe的FMS(Flash Media Server)相似的功能,包括实时流媒体传输、录制播放视频、共享对象以及远程调用等。通过Red5,开发者可以构建诸如视频播放网站、远程教育平台、视频会议...
Flash作为一种曾经流行的多媒体平台,被广泛应用于创建动态网站、交互式应用程序和在线游戏。它允许开发者通过ActionScript编程语言来实现丰富的用户体验。 【描述】:“国外Flash源码免费共享!”说明这些源码是...
文档中提及的TTGame(TT概念游戏)是一家专注于Flash网络游戏开发的公司,提供了Flash Media Server 2.0的中文翻译版帮助文档,这无疑降低了中国开发者入门的门槛。同时,TTGame还开放了技术交流平台,鼓励Flash爱好...
这个基础入门教程,特别是对于那些从Flash转向ASP的初学者来说,将提供必要的指导来理解和掌握ASP的核心概念。 首先,我们要理解的是IIS(Internet Information Services),这是微软提供的一个强大的Web服务器软件...
对于想要入门Flash的初学者来说,拥有一套全面的视频学习资料至关重要。本资源包“Flash学习视频资料”正是为这样的需求而准备,包含了丰富的教学内容和配套PPT,旨在帮助用户快速掌握Flash的基础操作和应用技巧。 ...
根据给定文件内容,以下是关于Contiki...以上知识点总结了Contiki入门手册中提及的关键信息,帮助初学者快速了解Contiki操作系统的核心概念、开发环境、编程模型以及如何使用Contiki进行嵌入式和无线传感器网络开发。
- **Firefox的Macromedia Flash插件**:安装Flash插件以播放Flash动画和视频。 - **Mozilla Firefox上的Java插件**:安装Java插件以运行网页中的Java小应用程序。 - **NVU Web编辑系统**:使用NVU进行网页设计和...
由于其开源性质,用户可以根据需求对源代码进行定制,降低了开发成本,尤其适合于视频播放网站、远程教育、视频会议、聊天程序和网络游戏等应用场景。 安装Red5非常简单,首先需要在java.sun.com下载并安装JDK6,...
开发人员可以利用Adobe Media Server 5 构建自定义的视频播放器,确保跨设备的一致用户体验,同时利用服务器提供的API进行数据共享、服务器插件、日志记录和监控。 6. **术语表和在线资源** 文档中的术语表有助于...