`

Flash网络游戏开发入门经验共享

阅读更多

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的区别。

    就简单说这么多了,真要展开了讲,能写一本书了。这里只是给大家说说个人走过的路,不一定全对,只是希望帮助大家少走一些弯路。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/blacksource/archive/2009/02/16/3894392.aspx

分享到:
评论

相关推荐

    Flash网络游戏开发入门经验共享.pdf

    Flash网络游戏开发入门经验共享.pdf

    Flash网络游戏开发入门经验共享.doc

    关于Flash webGame 开发的入门经验,希望对需要的朋友有帮助! 如果有其他问题,可以直接找我,QQ779109006!

    flex手机项目开发分享

    flex手机项目开发分享 1.Flash Flex AIR移动开发入门经典——适用于Android、iOS和BlackBerry 2.flex4.5forIphoneAndAndroid 3.使用Flex4.5开发Android应用程序

    基于Java-Applet的小游戏,模仿《大鱼吃小鱼》的网页Flash小游戏制作.zip

    用java写的项目,免费分享给大家,比较适合新手入门学习,欢迎下载使用。用java写的项目,免费分享给大家,比较适合新手入门学习,欢迎下载使用。用java写的项目,免费分享给大家,比较适合新手入门学习,欢迎下载...

    华清远见嵌入式linux应用程序开发技术详解下载(内部资料).rar

    华清远见嵌入式linux应用程序开发技术详解(内部资料) 第1章 Linux快速入门   1.1 嵌入式Linux基础  ... 12.2 Qt/Embedded开发入门  12.3 实验内容——使用Qt编写“Hello,World”程序   本章小结 

    Flash Media Server 3 英文教程

    在学习fms3和有一点flash cs3和as3.0的经验,任何人都可以快速进入。你将学习怎么样安装FMS3,用Apache web 服务器一起组织你的开发环境,在进入为什么和怎么样前,使用控制管理器: 用H.26和VP6格式录制和播放流...

    嵌入式Linux应用程序开发标准教程(第2版全)

    12.2 Qt/Embedded开发入门 12.2.1 Qt/Embedded介绍 12.2.2 Qt/Embedded信号和插槽机制 12.2.3 搭建Qt/Embedded开发环境 12.2.4 Qt/Embedded窗口部件 12.2.5 Qt/Embedded图形界面编程 12.2.6 Qt/Embedded对话框设计 ...

    vc++ 开发实例源码包

    ----------VC应用开发 [Visual.C..编程技巧精选500例]源代码. 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件...

    FLEX企业应用开发实战.part1

    第1章 Flex企业应用开发入门  1.1 B/S企业应用开发者的噩梦  1.2 噩梦结束,新时代来临  1.3 Flex概述  1.4 Flash Player的工作模型  1.4.1 Flash Player的帧执行模型  1.4.2 Flash Player渲染模型  ...

    计算机图形学项目-创作一个Flash动画.zip

    计算机图形学项目-创作一个Flash动画.zip计算机图形学项目-创作一个Flash动画.zip计算机图形学项目-创作一个Flash动画.zip计算机图形学项目-创作一个Flash动画.zip计算机图形学项目-创作一个Flash动画.zip计算机图形...

    FLEX企业应用开发实战.part2

    第1章 Flex企业应用开发入门  1.1 B/S企业应用开发者的噩梦  1.2 噩梦结束,新时代来临  1.3 Flex概述  1.4 Flash Player的工作模型  1.4.1 Flash Player的帧执行模型  1.4.2 Flash Player渲染模型  ...

    嵌入式Linux应用程序开发详解

    12.2 Qt/Embedded开发入门 402 12.2.1 Qt/Embedded介绍 402 12.2.2 Qt/Embedded信号和插槽机制 405 12.2.3 搭建Qt/Embedded开发环境 409 12.2.4 Qt/Embedded窗口部件 410 12.2.5 Qt/Embedded图形...

    特权同学的 深入浅出玩转fpga 深入浅出fpga 图书配套光盘免积分,1分下载后评价便可返还

    特权同学深入浅出fpga学习资料光盘分享吴航厚.7z 深入浅出fpga的书本的光盘资料分享,7z高压版,完整资料分享。 图书目录 第一部分 基础普及 笔记1 初识FPGA 笔记2 应用领域 笔记3 开发流程 第二部分 设计技巧 笔记...

    ActionScript开发技术大全

    第9篇FlashAIR入门 第28章创建与部署AIR应用 584 28.1AdobeAIR运行时安装与配置 584 28.2使用FlashCS3IDE创建和部署AIR应用 585 28.2.1安装FlashCS3IDEupdate9.0.3 585 28.2.2创建和部署AIR应用 585 28.3使用Flex...

    OpenMeetings的网络视频会议系统的研究_彭凌华.pdf

    该文介绍了基于开源框架OpenMeetings的网络视频会议系统的环境介绍以及总体设计 该系统支持音频视频能共享每个 与会者的桌面 它还包含一个白板通过白板可以导入各种格式的图片并进行演示 系统架构主要是服务器端...

    Vue2+Vue3前端框架全套视频.txt

    教程共计8G Web前端开发工程师,主要职责是利用...完成客户端程序(也就是浏览器端)的开发,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果, 进行丰富互联网的Web开发,致力于通过技术改善用户体验。

    asp.net知识库

    ASP.NET 2.0 正式版中无刷新页面的开发(示例代码的补充) ASP.NET2.0中themes、Skins轻松实现网站换肤! ASP.NET 2.0 中的代码隐藏和编译 ASP.NET 2.0 Language Swithcer and Theme Swicher 多语言转换和多样式主题...

Global site tag (gtag.js) - Google Analytics