`

使用Adobe Flex 3开发大型多人在线游戏

    博客分类:
  • Flex
阅读更多

大型多人在线游戏 (MMO) 技术已经涉足到各种软件形式中了. 当我们还在思考MMO, 多人游戏已经使很多玩家能够实时连接进行合作与竞争。( 见图表1). 魔兽世界在通过DVD-ROM  订阅的MMO 游戏行业中处在黄金标准的位置,但是,通过Abobe-flash 平台,我们可以利用魔兽的一小部分时间和预算来发展一个自由来玩的通过浏览器的类似于WAKFU Small world MMO 游戏。

 

Some leading MMO games

Figure 1. Some leading MMO games.



在这篇文章中, 我旨在比你想象的少的时间内告诉你制作一个完整的( 并且简单的) 大型在线游戏的经验。同样,我会给你一些示例代码以使你能掌握这种高水平的思想。这些例子仅限于FLEX3 的浏览器版,但是其中好多的信息都是与其他技术的应用程序开发者相关的。包括Adobe Flash CS4 以及Flex 3 AIR 桌面应用程序。

我希望这些能给大型在线游戏 的入门者做一个介绍,同时,也让高手们获得一些知识。

 

 

什么是MMO?

在超过十年的时间里,大型多人在线技术已经成为了桌面PC 游戏发展中的主流。 在最近几年中,我们发现它在浏览器端也很流行。一个MMO 应用程序是一种这样的软件,它能实时连接很多人,同时,一个人的操作动作会马上影响到其他的人。就像在聊天窒里,当你打出一则消息时,接受者会马上看到这则消息一样。当你攻击一个敌人的时候,这个敌人会被打,或者挡住攻击并且反攻。在MMO 最普通的形式中,一个MMO 应用程序是基于团队,同时看重个人体验与人机交互的应用程序。MMO 有好多种:角色扮演游戏 (MMORPGs), 实时战略游戏(MMORTS), 第一人称射击游戏 (MMOFPS), 基于浏览器的大型在线游戏 (BBMMOGs) 以及其他更多。

MMORPG 是非常流行的,或者仿真游戏。一个仿真实世界的游戏是通过互联网接口联接很多人制作出仿真世界的游戏。仿真游戏通常具有六个特点:

  • 共享空间: 这是个可以允许多人同时参加的世界。
  • 图形用户界面: 这个世界描绘出真实的空间距离, 从二维的图片转变成三维的环境。
  • 实时: 相互操作都是实时发生的。
  • 相互影响: 这个世界允许用户更改、发展、建造、或者提交自定义的内容。
  • 一直运行: 无论单个用户是否登录,都不会影响到整个程序的运行。
  • 社会化的/ 团体化的: 这个世界允许并且鼓励各种社团形式,如团队、行会、俱乐部、集团、同居、邻居等等。

随着计算机硬件性能与技术的快速发展,MMO 游戏已从桌面程序发展到网络程序。这篇文章的重点在后者。

 

MMO 游戏是商业性的

MMO 游戏非常流行。随着越来越多的游戏玩家通过宽带来上网,越来越来的因特网用户开始尝试MMO 游戏,使用人数正快速的增加。吸引人的WEB20 以及RIA 特性使这些游戏在游戏玩家中快速的流行起来。用户在空闲时间中都沉浸在这些游戏中,哪里有用户,哪里就有商机。但是传统的商业游戏沉浸于在购买时加入一系列的费用。MMO 游戏则是要交付不断增加的用于发展与维护的费用,并且由于在线玩的原因会带来其他的商业机会。游戏开发者与发行者将通过多种方式从成功的MMO 游戏中获利。发行者通常会选择以下几条:

  • 订阅: 用户每月资付一定钱以能够继续玩,这是桌面发展中的获利方式,并且曾经一度成为最流行的获利方式。
  • 广告: 在基于浏览器的游戏中,我们可以发现,游戏发行商会在游戏场景上方放置一个banner 广 告,这些广告链接到普通网页,有些广告会被融入到游戏场景中。举个例子,你在游戏中的角色会被一个高速公路广告牌指引,而这个广告牌上显示的将会是真实的 广告信息。除了这种方式,也可能是下面的两种方式:用户游戏是不需要预选支付费用的。这使观众面得到最大化。由于因特网与Mmo 游戏固有的连通性,新广告可以在游戏体验中轮换(出现),而且韵律可以决定每一个广告可以吸引多少眼球。
  • 虚拟物品的销售: 虽然玩游戏可能不要钱,但是用户可以通过付现金购买虚拟装备来增加角色的属性或者提高游戏的优势。
  • 虚拟货币的销售: While game play may be free, users pay real-world cash to credit their account with virtual currency. The currency is then used to perform game transactions for things like advancing their character growth or purchasing virtual items.
  • Sponsorships: Real-world companies who wish to have their brands integrated into the game pay the publishers. An example is a clothing company who wishes to include virtual clothes in the virtual world.

Surely, as the audience for MMO gaming expands, advertisers will become increasingly creative with how they monetize the games in this industry.

 

策划制作一个MMO 游戏

在规划的互动项目时,重要的是要有令人信服的创造性以及使用匹配的适当技术实现您的想法以及满足您的目标受众。在下面的章节中, 我将提供整体的MMO 制作的意见以及可用技术的讨论。

RIP game logo

2. RIP 游戏LOGO.

举个例子, 让我们假设我们的目标市场是8-10 岁大的男孩与女孩,次目标市场是具有童心的成年人。我制作一个叫做RIP 的简单的,完整的FLEX 游戏以供我们来讨论一下。它根本不是一个完整的工程,但它的用处是为了让我们交流一下MMO 游戏策划与开发的思想。

 

角色与故事

除了挑战与美丽的画面来吸引用户,增加角色的难度是保持MMO 游戏长期有人玩的一个关键。人物和故事是留住你的用户群的两个关键因素。

这里有一些提示关于设计MMO 游戏时要考虑的:

  • 独一无二: 你认为伤害你的市场可能会节省您的品牌差异。如果您选择以超人的主题,因为流行的市场调研告诉您,您的用户群喜欢这样的主题,你同时要做好有半打竞争对手也想到了同样的方式的准备。
  • 让你的角色成长: 想想RPG 游戏。里面的角色有许多特性(如强度,健康,速度和情报) ,这些都随着经验的增加以及学习新的能力而增加。
  • 让你的游戏情节成长: 请记住,如果您希望您的MMO 游戏产生持久的寿命。就要把您的内容设计的更像是正在进行的电视节目而不是一个孤独的卖座电影情节。您的开始部分一定要设置很多的铺垫,一定要打下好的基础。

对于RIP 协议,我使用一个友好的鬼主题(见图3 ) 。当我创建的,我无法找到一个友好的以鬼为主题的MMO 游 戏。所以这是独一无二的。鬼魂可以有许多人的特性以及也可能产生一些超能力。这就使角色的特性可以增长。当我想到一个鬼的世界,我想几件事情:新的鬼会定 时出现,一个梦幻般的世界上任何事都是可能的,天堂与地狱的主题中角色可以死一遍又一遍。这些想法应该促进一个长期,丰富的故事情节。

Character art

Figure 3. 角色样子.

随着人物和故事情节的确定,您可以让作家和艺术家开始调查所需要的技术。

 

客户端与服务器端技术

MMO 游戏技术,主要有两个方面要考虑:客户端和服务器端。您已完成的项目结合了这两种技术。客户端技术(即Adobe Flash PlayerAIR ,等等)将做一切工作量大的事情- 它负责前台表现以及鼠标和键盘的输入。服务器端的技术负责在每个客户端之间进行通信。

从大处到细节,技术上有许多问题都要考虑。例如,什么类型的计算机不能使用您的产品? MacPC 或两者都可以?它是桌面应用程序还是运行在Web 浏览器?它将是一个三维的或二维的?它要运行在怎样的软件平台上?

If you are interested in creating casual online multi-player games without the headache of hosting your own servers, consider checking out the Adobe Flash Collaboration Service . 对于这项工作,并与经济的考虑,我们使用的Adobe Flash 平台开发并使用2D 技术将此游戏部署在网络浏览器。我们使用了Adobe FlexBuilder 作为我们的开发环境。我们结合客户端和服务器的技术,在客户端使用Flash Player 和在服务器端使用ElectroServer 4 。与我们的客户端选择的Flash Player ,我选择使用了一个现成的服务器技术,其中包括一个ActionScript 3 特定的辅助性文件,因为这将有助于加快发展的速度。除了ElectroServer 4 ,一些重要的服务器端的选择,支持ActionScript 3 还包括Adobe Flash Media Interactive Server 3.5 SmartFoxServer 1.6 。如果你有兴趣创造休闲多玩家游戏并不用为托管自己的服务器头痛时,可以考虑Adobe Flash Collaboration Service

我选择ElectroServer 4 ,主要是因为它是稳定,易于开发,免费(最多20 个用户) 。这意味着你可以开始一个新项目或测试而不用付费。此外, ElectroServer 4 具有可扩展性,帮助文档丰富,并得到广泛支持。

您可能还问我为什么选择二维而不是三维。虽然最新的Flash Player 10 中有一些令人兴奋的3D 能力,这是仅限于移动二维物体在三维空间或使用软件提供的解决方案(其中提供比硬件提供的解决方案还慢的动画) ,如Papervision3D 。我很期待Flash Player3D 的未来 ,但是据我的经验, Flash 平台目前不是强大的3D 需求的最好的选择。

 

开发

现在,我已决定好了友好鬼主题故事和人物,Flash Player 作为客户端,并且ElectroServer 4 作为服务器端,我准备开始开Flex Builder 中进行开发。对于用户界面,我们将界面分块,以满足特定用户的需求(见图4 ) 。每个地区获取用户输入,并作出对应反应:

  • 连接: 允许用户登录和登出程序.
  • 用户列表: 显示目前在线的所有用户。
  • 聊天记录: 显示游戏的聊天记录.
  • 聊天输入口: 允许用户向游戏中的当前用户发送一则消息.
  • 游戏界面: 显示了游戏世界,由背景艺术和用户角色组成。用户通过控件角色的位置来控制角色进行移动。

Rough layout of components

Figure 4. 粗略布局的组成部分。

 

创建组件

我们将按照图4 来创造Flex 组件。对于每一个组成部分,我们必须考虑到用户的需要,来决定UI 元素,以满足这些需要,并充分利用Flex 中的MXML 来轻松地创建布局。在Flex 开发过程中, 这是最基本的,所以让我们来看看一个简单的例子。

如同任何短信应用,聊天输入在应用程序的布局的底部(见图5 ) ,用户可以输入文字信息,并将其提交到聊天记录中以供其他用户看到。在参与者之间这是主要的通信方式。

Chat Input component before final artwork

Figure 5. 聊天输入部分

TextInput Button 组件放在一个Panel 组件中, ID 属性是用来给主程序中相关功能控件进行编号,当用户点击chatSend_button 实例,在chat_textinput 实例中的任何文字,将传递给其他玩家。在下一节中,我们将看到这个信息是如何传递给服务器。

Chat Input component’s MXML

Figure 6. 聊天输入口的MXML.

 

客户端- 服务器端 代码

我们继续建立我们的组成部分放下一些客户端与服务器之间的通讯。开发多人游戏与开发单机游戏的根本差别在,当用户交互而产生的任何东西都不应该在屏幕上进行修改。所有的游戏客户端(游戏运行的某个特定的玩家) ,包括提供了输入口的玩家,应当等待回信当服务器说“玩家1 已经发出了一个聊天信息” ,例如, 当玩家1 的客户端发送请求到服务器,服务器发送响应给每一位客户。只有到那时,屏幕才作出更新。当然,玩家1 的客户端必须随时准备处理回应,并且当客户端发送请求时, 其可以随时随刻的更新。玩家1 使用Client (A) 发出一个聊天信息请求和处理响应(见图7 ) 。发出的信息包含足够的信息以供所有客户作出适当的反应。在这种情况作出的反应很简单地放入到聊天记录中以供所有用户可见。

Client-to-server-to-client(s) message flow

Figure 7. 客户端- 服务器端- 客户端信息流

在这个游戏中,有5 个类型的请求/ 响应配对(见图8 ) 。所有与服务器端的交互是通过一个叫作称为ElectroServerActionScript 3 对象来实现的。当程序加载连接服务器与加入到房间中时,该组合被显示。所有文字聊天和所有玩家的操作动作(如位置的变化,进攻,防守,等等)用这种方式进行发送。

PublicMessageRequest 仅发送文字,它通常是作为一个聊天信息。但不仅仅是文字是可能的。一个消息也可以发送一个EsObject 对象。这是一个通用的ActionScript 3 对象。开发包装EsObject 的有用特性- 例如,玩家在游戏中移动的新的XY 的位置。更复杂的游戏功能较重使用EsObjects 并且封装更多的数据。创造复杂的游戏而不通过EsObjects 传送太多的数据是一种艺术。发送较小的信息将有助于游戏反应速度。最后配对显示如何断开客户端从服务器室当用户结束他或她的游戏。

Request/Response pairs for RIP

Figure 8. RIP 的请求/ 响应对.

 

技能, 皮肤以及样式

因为AdobeCreative Suite 4 产品之间的合作,整合写好的控件到Flex 项目是很简单。这是使用FLEX 一个主要好处。如果仔细规划高效率的工作流程,开发人员和设计人员,可以对项目以最少的冲突。

对于RIP ,我开始铺设应用程序的MXML 而平面设计师编写CSS 来定义颜色和字体。我继续编写角色的移动和交互而艺术设计师用Flash 制作背景和角色。我们三人几乎没有中断工作,因为RIP 参考可见的元素进行开发。

Flex Builder 中主要有两种类型的视觉效果:造型和外观。在程序中,造型决定基本色泽和文本显示属性。出色的(但还远远没有完成)的CSS 兼容性的Flex 允许一个CSS 文本文件来定义样式属性。艺术团队编辑和保存每个样式的变化。一个例子是panels 的背景颜色梯度和各种字体的处理(见图9 ) 。

应用程序中包括皮肤制定与动画的设计。在RIP 中,应用程序中嵌入一个包含资源的SWF 文件。界面小组利用Adobe Flash CS4 专业版重新发布此SWF 以更新每个皮肤。每一次的Flex 项目是重新编译,发布的游戏以程序上与创造性上作出修改。一个皮肤制作的例子就是RIP LOGO 或鬼魂的动画角色设计(见图9 ) 。

Finished game with complete styles and skins

Figure 9. 完成游戏的风格和完整的皮肤。

现 在我们有了一个坚实的,抛光建立的游戏,我们都愿意尝试一下。虽然尚未针对许多用户优化,游戏应处理几十个屏幕。加入有趣的是容易的。单击连接并且一个独 特的彩色鬼魂显示在屏幕上。输入文字信息进行交流,然后点击游戏中的任何地方,来控件你的游戏角色。更大的游戏可以扩大到包括化身属性,如经验和速度,以 完成任务,库存物品收集,和更多的世界来探索。

 

下一步

除了发展自己的游戏,有两个重要的辅助因素:在线整合您的应用程序并规划项目的维护工作。

整合

你的开发周期即将走到尽头时,您需要在线整合您的应用程序。在开发过程中,你可以在您的桌面上运行的一个ElectroServer 实例,并直接与出版的SWF 文件交互。只需打开两个或两个以上的游戏SWF 文件在您的桌面上,以测试多个用户。这个工作流程可以快速发展。

一旦你已经准备好您的应用程序的在线测试,请执行下列步骤:

  1. Web 服务器上安装和运行的一个ElectroServer 实例。
  2. 您的游戏配置要求在线实例,而非您的桌面实例。
  3. 浏览网页,其中包含您的SWF 文件,并开始播放。打开两个或两个以上的窗口,以该网页来自同一台式电脑或台式机,以测试不同的多个用户。

请记住,对大多数商业应用,你还需要某种玩家匹配系统- 通常称为lobby , 这样,用户就可以找到朋友,并开始游戏。您可以建立一个lobby 到您的游戏或使用外部的。您可以使用一个精心设计的外部lobby 作为入口成多个MMO 游戏,所以当你部署多人游戏你不需要重新发明车轮。

维护

除了典型的应用系统维修,包括错误修正和功能要求, MMO 游戏需要更多的行动,不断推出服务后。重要的是要考虑推出网络游戏项目作为一个完整的游戏所需要的。许多商业模式的网络游戏应用受益于前面提到的长期用户。

用户全神贯注维持数月或数年,需要坚实的社会管理和定期的内容更新。大部分用户将享受来自与其他玩家互动。新玩家加入后引起的社会动态与戏剧性发展将捕获用户的注意力。这是网络游戏类型的游戏开发 商一个最大的优势。然而,有很大的竞争来自其他的MMO 游戏,以及用户与用户共享,可享受其他许多游戏。为了使您的游戏令人兴奋并保持新鲜,并确保您的用户继续参与,建立一个维持战略去产生更多的角色,游戏关卡,和情节随着时间的推移。由于开发商往往不充分认识维护要求,因此没有和预算范围内保持均衡,保养不善是导致MMO 游戏死亡的最大原因。

 

结尾

MMO 游戏结合最好的Web 2.0RIA 方法为用户提供经验。它们可以成为令人兴奋的项目开发和有利可图的事业的游戏出版商。

建立成功的MMO 游戏需要认真规划,包括开发角色和故事应该是独一无二的,并允许发展,建设一个有吸引力的视觉设计,并选择适当的客户端和服务器的技术力量去实现构想。

开发包括用户界面设计,客户端服务器通信,游戏逻辑,艺术和皮肤。我们相信的Flex Builder 是一个理想的客户端的技术的选择,因为它灵活的开发环境。再加上Adobe 公司的Creative Suite 4 Flex Builder 将使你从一开始就顺利地构建您的团队协作。

如果您计划真正特别的东西,制定严密,并保持您的项目启动后运行很久,你就会使用Flex 3 创造一个成功的MMO 游戏。

 

致谢

我特别感谢作出贡献的艺术家。Warren Lee 创造了风格和游戏艺术和Bill CoonsBillCoons.com 制作了皮肤与界面图形设计。

分享到:
评论

相关推荐

    使用FLEX3开发大型多人在线游戏

    ### 使用FLEX3开发大型多人在线游戏 #### MMO游戏概述及发展历程 大型多人在线游戏(Massively Multiplayer Online Games, MMO)自问世以来便以其独特的魅力吸引了众多玩家。这类游戏通过网络将世界各地的玩家聚集...

    免费多人视频会议功能加强版本(Fms3和Flex开发(附源码))

    标题中的“免费多人视频会议功能加强版本(Fms3和Flex开发(附源码))”指的是一个基于Fms3(Flash Media Server 3)和Flex技术开发的多人视频会议系统,该系统不仅提供基本的视频交流功能,还进行了性能优化和功能增强...

    flex-mmorpg-server.rar_flex_mmorpg

    Flex MMOG(大型多人在线角色扮演游戏)服务器是基于Adobe Flex技术构建的游戏服务器,它允许开发者创建丰富的、交互性强的在线游戏环境。本资源"flex-mmorpg-server.rar_flex_mmorpg"包含了这样一个服务器端的代码...

    flex游戏开发

    对于MMORPG(大型多人在线角色扮演游戏)等需要实时网络通信的游戏类型,Flex通过Java Socket或AS3 Socket提供了强大的网络通信能力。通过建立Socket连接,游戏客户端可以与服务器进行数据交换,实现多人在线对战等...

    flex mmorpg 地图编辑器demo

    首先,我们要明确的是,"Flex"是一种基于ActionScript 3的开源框架,用于构建富互联网应用程序(RIA),特别是与Adobe Flash Player或Adobe AIR一起使用的应用。在本Demo中,Flex被用来构建用户界面,提供强大的图形...

    flex flash实现mmorpg包裹DEMO

    在游戏开发中,尤其是在大型多人在线角色扮演游戏(MMORPG)中,背包系统是一个不可或缺的重要组成部分。它允许玩家存储、管理、装备和交易各种游戏内的物品。本篇文章将深入探讨如何利用Adobe Flex和Flash技术,...

    flex debug调试变量输出工具

    特别是在处理大型项目或者多人协作的环境中,这样的调试工具能显著提升开发团队的工作效率。 总的来说,Flex Debug调试变量输出工具是Flex开发者的得力助手,它简化了变量调试的过程,使得问题定位变得更加简单直接...

    Flex/Flash实现的地图编辑器源码

    本文将深入探讨一款基于Flex和Flash技术实现的地图编辑器,该编辑器特别适用于构建MMORPG(大型多人在线角色扮演游戏)中的地图。 Flex是Adobe公司推出的一种开源框架,用于构建富互联网应用程序(RIA),其主要...

    Flex代码格式化工具

    4. **兼容性(Compatibility)**:该工具支持FlexBuilder和Eclipse环境,这意味着无论你是使用Adobe的官方IDE还是基于Eclipse的自定义开发环境,都能享受到代码格式化的便利。 5. **版本更新(Version Updates)**...

    FirstPBEGame

    PBE是游戏行业中常见的术语,特别是对于电子竞技或大型多人在线游戏(MMO),如《英雄联盟》等。 【文件列表】中的几个文件名提供了关于项目结构和开发工具的信息: 1. `.actionScriptProperties` - 这个文件通常...

    Alternativa3D-master 8.32

    6. **网络功能**:框架可能内置了网络通信模块,使得多人在线游戏成为可能,支持玩家间的数据交换和同步。 7. **资源管理**:高效的资源管理系统对于大型3D应用至关重要,Alternativa3D可能提供了一个这样的系统,...

    Flash Media Server 3.5 开发的20多个例子

    3. **Flex集成**:FMS与Adobe Flex框架的紧密集成,使得构建基于Flex的富互联网应用程序(RIA)更为便捷,提供了丰富的UI组件和数据绑定功能。 4. **内容保护**:引入了数字版权管理(DRM)技术,增强了内容的安全...

    flash+FMS斗地主源程序

    【标题】"flash+FMS斗地主源程序"是一个基于Adobe Flash技术和FMS(Flash Media Server)开发的在线多人斗地主游戏项目。这个源程序包括了游戏大厅、游戏房间和聊天功能,允许用户在每个房间内进行多达50桌的游戏...

    FMS中文文档(PDF版)

    客户端首先需要主动连接到服务器上的特定应用程序实例,例如在一个多人在线游戏中,每个房间就代表一个应用程序实例。多个实例可以并行运行,每个都有独特名称,提供独特的资源。多个客户端可以连接到同一实例或不同...

    CssForFlex概述

    而在Flex中,CSS for Flex则是专为Adobe Flex应用设计的一种样式系统,它允许开发者和设计师更有效地控制Flex组件的外观和布局。 **A. 什么是CSS for Flex?** CSS for Flex是CSS的一个子集,专门为Flex应用程序...

    smartfoxserver官方文档第一章翻译

    它使开发人员能够创建一个广泛的多人游戏体验,从简单的聊天和回合制游戏到大型网络游戏与集群。 SmartFoxServer 的主要特性包括: 1. 客户端 API:支持 Actionscript 1.0、2.0 和 3.0,以及其他客户端技术,如 ...

    red5 0.8 + 视频通话

    本项目结合了Red5 0.8与Adobe Flex 3.6技术,Flex是基于ActionScript 3的开发框架,主要用于构建富互联网应用程序(RIA),特别是在多媒体领域。 视频通话是现代通信技术的重要组成部分,通过网络实现实时的音视频...

    Flash Builder 4安装VSS插件

    Flash Builder 4是一款由Adobe推出的集成开发环境(IDE),主要用于创建Flex和ActionScript项目。而Visual SourceSafe(VSS)是微软提供的一种版本控制系统,用于跟踪代码更改历史和协同开发。在Flash Builder 4中...

Global site tag (gtag.js) - Google Analytics