浅谈即时战略游戏J2ME中应用

战略

--------------------------------------------------------------------------------
《星际》、《魔兽》、《文明》……这些都是PC游戏玩家们耳熟能详的名字,可以说以这些游戏为代表的战略游戏是PC游戏的典型代表,战略游戏的玩家也是众多PC游戏类型里忠诚度最高的玩家。战略游戏分为回合制和即时战略两类,两种战略游戏都有数量众多玩家,而后者更因为紧张激烈的游戏性逐渐压倒了回合制战略游戏,近几年来,一直在战略游戏中占统治地位。

在“J2ME平台上开发网络即时战略游戏”,这个话题在现今大多数J2ME 开发者听来无异于天方夜谭。即时战略游戏名字的“即时”两个字决定了复杂的运算和数据交互、稳定快速的网络连接要求、庞大的资源和绘制任务,我们都知道J2ME设备的资源和性能都极为有限,现有GPRS网络业不尽如人意……这些似乎都成为了在J2ME上开发网络即时战略游戏不可逾越困难。

困难实实在在的挡在我们面前,但中国三亿手机用户中蕴藏的庞大的潜在即时战略玩家促使我们去克服这些困难,只要还有一点可能,我们也要去寻找一条跨过这些障碍的道路。怎么样才能在手机上实现网络即时战略游戏呢?

从性能和用户量考虑,我们选择诺基亚的60系列作为初期的开发平台。
我们不考虑采用HTTP协议,虽然它是J2ME设备中普遍采用的协议,但其相对SOCKET的低效性和本身是无连接协议决定了它不适合即时战略这种游戏形式。从上表可以看出建立连接的时间要高出连接后的数据传送时间许多,HTTP协议需要花费许多额外开销在建立连接上;HTTP平均的数据传送时间也要比SOCKET高许多。我们测试了大部分的60机型(7650, 3650, 3660, 6600, N-GAGE, N-GAGE QD),所有测试的机型均支持socket。

从上表可以看出,socket连接数据往返一次的平均时间在1 ~ 2秒间,这对回合制的战略游戏或许足够,但对即时战略游戏来说还是太长了。有什么办法能大幅压缩数据传送的时间呢?

我们可以从server和数据包协议考虑。

以上测试的服务器是用Serverlet写的,而serverlet是构建在Web server上的,那么这个数据里包含的服务器反应和处理的时间就不容忽略了,为了获得更快的响应和处理速度,我们必须重新设计和构建游戏的专用Server。传送的数据包大小也是影响速度的一个关键。平时大家开发J2ME的网络应用,习惯于用文本流来传送数据,因为大多数应用Server端都是基于Web Server,而且采用文本表示信息非常直观,也便于Server处理,但对于J2ME平台和gprs网络来说,没有经过压缩的文本还是浪费了一些。

简单考虑一下游戏服务器:一台主机应该能支撑一百到两百名玩家同时在线;为了便于配置,Server应用应该是跨平台的,而客户端也是J2ME的,因此Server的开发环境java当是首选;采用Java 1.4后新增的Java 异步通信功能,性能上也能达到我们的要求。

因为Server必须我们自己写,所以没有必要使用文本编码协议,代之以字节流编码。简单估算一下,表示相同的信息,采用文本和字节编码方式数据大小的比例大于4:1,而且数据本来以数字为主,省去了文本转换的一大笔开销。更小的数据相应的也带来了更快的速度,另外,也为用户节省了大笔昂贵的GPRS流量开支。

采取以上的措施后,我们再次测试了数据传送的响应时间,平均小于1秒!也许在很多人看来,这个时间还是太长,达不到实时的要求,但应该知道,绝对的实时是不可能实现的,只要在策划和开发中采用一些合理的策略,这小于1秒的延迟完全可以很好的掩盖。

典型的PC即时战略游戏如《星际》,在局域网对战时实际上并不需要服务器的,对战中的一台或多台客户机充当了服务器的角色,即使是上战网,战网服务器完成的也只是社区管理的工作。在手机上实现不能采取这种结构:首先,通过GPRS网络,两部手机无法直接连接(不排除蓝牙或红外的互连,这不在我们的讨论范围内),只能通过服务器中转;另外,手机的运算能力有限,为了游戏能良好的运行,必须把很多的运算转移到资源相对更丰富的Server端,这和一般的CS结构中,尽量让Client分担Server的工作以使得Server能支撑更多的Client的做法背道而驰,也体现了J2ME网络应用的特殊性吧:)

再简单说一下整个系统的架构:

服务器按功能分为连接服务器、大厅服务器、游戏逻辑服务器、用户管理服务器和日志服务器五种。视用户的数量,如果数量很小,所有的服务器都可以置于一台主机中;随着用户量增多,各服务器可以移动到不同的主机中,通过调整各服务器主机的数量达到均衡负载。

时间: 2024-08-03 08:51:17

浅谈即时战略游戏J2ME中应用的相关文章

即时战略游戏《操控战争2》限免中

<操控战争2>是来自开发商Elite Games Ltd的一款 即时战略游戏,游戏中玩家要做的就是占领所有出兵点,达到消灭 敌人的目地.只要点按一个出兵点后滑动至想要士兵到达的出兵点即可,他们在路上碰到敌人时会自动攻击.<操控战争2>游戏截图游戏中根据玩家占领的出兵点不同,派出来的士兵也有不同变化,比如变身为灵活性强可以空袭的火箭兵.在过关后还会有奖章供玩家升级强化士兵各方面能力.<操控战争2>游戏截图<操控战争2>游戏截图游戏画面有点怕他碰这种剪影风格的即

Zero-K一个即时战略游戏

Zero-K原名Complete Annihilation 1 Faction,改自Complete Annihilation(简称CA).基本能验证Spring的能力,不断更新中--使用Zero-K Downloader.这是一个即时战略游戏. 特点: 起始有四种不同的指挥官可选 从10个工厂中选择一个开始(第一个免费) 全3D战场,每次单位开火都计算弹道以避免碰撞: 单位都有用处: 单位都有分类: 物理判断:单位有重量.行动方式.高度:武器有力度,范围,所以单位可以被击飞 单位可以跳跃: 设

Evolution RTS使用Spring引擎的即时战略游戏

Evolution RTS简称evo,是使用Spring引擎的即时战略游戏,引擎之外一切授权为Attribution-Noncommercial-No Derivative Works 3.0 Unported,除了分享不可作其他用途.http://www.aliyun.com/zixun/aggregation/12029.html">开发速度相当快,大约2天更新一次. evo是一个需要大规模资源.部队调动管理(宏观操作)和指挥作战(微操作)结合的游戏.它吸取的经验来自红色警戒.横扫千军

NetPanzer一款多人在线即时战略游戏

NetPanzer是1998年捷克一个游戏小组Pyrosoft创造的多人在线即时战略游戏,忽视资源管理,注重快速下达作战指令,1999年之后停止开发,2002年释放成为http://www.aliyun.com/zixun/aggregation/29607.html">自由软件.此后又移植到其他平台.最新的NetPanzer 0.8.3在2010年2月放出.发布有LIN/WIN和MAC两种二进制包版本. 游戏中,玩家控制一支部队征战,夺取工厂,生产单位,进攻对手.而且可以随时加入到游戏中

多人在线即时战略游戏《末日大战》发布

<末日大战(Apoc Wars)>是一款移动平台上比较少见的 即时战略游戏,游戏战场设在荒凉的末日世界,人类为争夺最后的能量,继而拉开一场末日战争.末日大战(Apoc Wars)末日大战(Apoc Wars)<末日大战>特别之处在于游戏的多人模式的策略性,在系统自动配对并展开攻击的多人模式中,玩家可以自动控制各种士兵移动.攻击.撤退,甚至施展各种战术.对应的,玩家在防守准备时,亦更具策略性.末日大战(Apoc Wars)末日大战(Apoc Wars)游戏可以免费下载,需要注意的是要

Warzone 2100以科技背景的即时战略游戏

Warzone 2100为科技背景即时战略游戏,作为首例全3D外加17813.html">可定制单位的即时战略游戏而闻名.它与1999年发售,2004年GPL发放,2008年全部以开源协议放出. 持续开发中,http://www.aliyun.com/zixun/aggregation/11307.html">官方网站(http://wz2100.net/)相当活跃,国际化进程显著,中文翻译基本齐备. 游戏方式:全3D,可以拉近改变视角观察战局. 单人模式:发展基地,建立油

文睿研究:即时战略游戏的潜在用户规模

即时战略游戏在单机游戏(包含局域网对战)时代一直是最重要的电脑游戏类型之一,而在网络条件下,这一游戏类型始终没有成长为能与RPG游戏相提并论的一支力量.3月29日网易运营的<星际争霸2>开始在国内公测,而<星际争霸>是即时战略游戏中最具代表性的产品之一.<星际争霸2>在国内的推出又一次引发了我们对网络即时战略游戏(以下简称网战游戏)市场前景的思考.网战游戏的潜在用户能有多少? 由于网战游戏市场刚刚起步,对其市场前景的判断主要将基于对当前主要游戏类型用户需求的分析.我们根

浅谈TeeChart组件在ASP中的应用

chart 浅谈TeeChart组件在ASP中的应用 由于TeeChart VCL 版本广泛应用于多种开发环境并得到很好的认可,西班牙Steema Software SL公司于1997年10月又开发了TeeChart Pro ActiveX.对于B/S的开发模式无疑是一个好消息,由于它只需安装在服务器端,客户端无需安装其他软件,只要使用通用浏览器即可显示统计图形,因此一面市更是又一次得到极大的欢迎. 下面我们结合ASP技术介绍一下TeeChart Pro V5 ActiveX组件常用属性及应用.

浅谈java 执行jar包中的main方法_java

浅谈java 执行jar包中的main方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 main 方法,那么如何运行指定的 main 方法呢? 用下面的命令试试看: java -classpath ****.jar ****.****.className [args] "****.****"表示"包名": "className"表示&