手机游戏发展的几个瓶颈性问题
2018-11-20陈宇
摘 要:通过对相关书籍的研读,从几个方面来阐述手机游戏的游戏机制和手机作为游戏载体的瓶颈性问题,同时总结手机游戏在游戏性的表现方面的发展前景,以期对自己的教学研究有所帮助。
关键词:手机;游戏;响应时间;瓶颈
现在全球超过五十亿部移动电话正在被使用,并且这个数目还在逐渐增加。每个发达国家,拥有手机的人数比拥有计算机的人数更多。潜在的市场比其它任何平台,比如Playstation和GameBoy都要大。
GameBoy比任何其他控制台游戏卖出的多的一个原因就是:便携性。人们可以随时随地玩他们选择的游戏。与现在的游戏控制台或者个人电脑相比,手机可能不是一个好的游戏设备,但是人们基本上是随时随刻都把它们带在身边。在他们离开家的时候或者想玩的时候,给开发者应该为他们提供好玩的游戏。因为移动电话是网络设备,所以可以实现多人游戏,虽然有某些限制因素。
载体的缺点也有不少。你面对的是小型的屏幕。不同的手机的屏幕大小是不同的。虽然各个厂商已经标准化它们产品的屏幕尺寸以避免分割市场,但是开发者仍然需要为不同的电话优化他们的游戏--你肯定想使用特定的手机上所有可用的屏幕空间。
可中断性是关键。当用户接听电话的时候,手机都会中断进行中的游戏。游戏程序必须能够暂停并且继续,而且不会造成游戏问题,并且不会造成内存溢出。这需要在编程的时候多注意。
所以,我们开发过程应该避其短处 取其长处。游戏有惊人的可塑性。你需要了解它的性能和局限,努力把它的性能发挥到极限,同时回避或者解决它的局限性。
我们可以从我们的移动游戏的性能和局限性的讨论中得出什么结论呢?
1、短的游戏时间。人们迟早要打电话或者接电话,并且他们不想把所有的电量都用来玩游戏。理想的情况是每一回合游戏应该保持在五个分钟或更短时间之内。这不意味着一个完整的游戏必须在五分钟之内结束--而是你应该允许游戏者中断、保存和继续游戏。
2、玩家有自己的时间表,而不是必须遵循你的时间表。让人们在想要玩游戏的时候玩,不要强迫他们等待,也不要要求他们在任何时间都在游戏中。
3、避免等待时间。这对单人游戏来说很容易实现。在多人游戏中,你就需要解决等待时间的问题了。
4、使用网络。网络不一定对于每个移动游戏都是必需的,但是那种与人竞争的感觉,即使只有一个排行榜,也能吸引更多的游戏者。要记住,手机实际上是一种社会性设备,添加某种社会性因素到你的游戏中会使它更加受欢迎。
处理等待时间该如何处理呢?移动游戏如何解决无线网络的高等待时间呢?
1、单人游戏。游戏者的游戏不需要用到网络,除非是把高分传送到排行榜中,或允许游戏者浏览排行榜。这种网络通讯对于游戏影响不大,几秒钟的延迟不会引起用户的反感。实质上,在大多数的单人游戏中并没有这个问题。
2、"多玩家"单人游戏。在一个"多玩家"单人游戏中,游戏者感觉他们是在玩一个多人游戏,但是事实上,每个人只是面對相同的游戏,在游戏或者回合结束时比较分数。当一个游戏者加入游戏时,他告诉其他游戏者他的ID号,然后开始玩单人游戏。服务器要么给每个游戏者发送一个包含相同消息的游戏状态文件,要么发送一个来自构造启动游戏状态的客户软件的代码。每个游戏者玩游戏,设法取得最高的得分。当一个游戏者结束游戏后,他的客户端程序把他的得分提交到服务器。当所有的游戏者都完成游戏后(或者超过某个时间以后),服务器告诉每个游戏者谁取得了最高分,以及每个游戏者取得的分数。
3、基于回合的游戏。在一个基于回合的游戏中,游戏者进入他们的回合,并在接收结果之前需要等待一段时间。几秒钟的延迟是可以容忍的。
有两种基于回合的游戏:
轮流游戏。在一个轮流游戏中,每个游戏者按次序进入回合。像象棋、红心大战这样的经典游戏就是很好的例子。这种游戏的缺点就是游戏者在重新进入回合之前无事可做。虽然经典游戏在因特网上有很多玩家,但这多多少少有点无趣。因此,限制轮流游戏的游戏者数是个非常好的主意,这样延迟就不会变得非常长。两到四个游戏者是比较理想的情况。
同时动作游戏。在一个同时动作游戏中,每个游戏者独立于其它游戏者计划他自己的行动。当一个游戏者就绪时,他发送指令到服务器。服务器等到从所有的游戏者那里都接到指令,然后分解回合,再把结果发送到所有的游戏者那里。
"即时动作"游戏。在一个"即时动作"游戏中,游戏可能会持续很长时间(几天、几个星期、几个月甚至到永远)。游戏者可以在任何时候进入游戏,执行游戏中的动作。在一些游戏中,他们可能只能与其他的同时进入游戏的用户交互;在其它的游戏中,他们也许能与任何其他游戏者交互,即使这些游戏者已经下线。
把等待时间分布到游戏中。让游戏者接受高等待时间的另一种简单方法就是把等待时间分布到游戏本身中。例如,大部分星际飞船战斗游戏让人都感觉到象是二次大战时的空战,战船在你身边呼啸而过,向你开炮。然而,在手机上要实现这种火爆的场面好像困难很大。我们可以换一种思路,我们可以把星际战舰类游戏做成一个类似第一次世界大战海战的游戏,星际飞船慢慢地移动,彼此之间一发一发的发射炮弹,导弹缓慢的移动奔向它们的目标。你可以使用这种方法来隐藏几秒钟的等待时间。肯定还有更多的解决长等待时间的方法。这是一个值得花时间去思考解决的问题。
参考文献
[1]张为民.计算机软件产品开发文件编制指南.大连:大连理工大学出版社.2008.
[2]唐任仲.工程应用软件开发技术.北京:化学工业出版社.2009.
[3]周之英.现代软件工程.北京:人民邮电出版社.2007.
[4]孙鑫.JAVA WEB 开发详解.电子工业出版社.2006.
[5]李怀明.JAVA中文版详解.北京:清华大学出版社.2009.
作者简介
陈宇(1983.11--),男,汉族,河北保定人,讲师,硕士,主要从事游戏软件编程教学.
(作者单位:河北软件职业技术学院)