游戏开发论坛

 找回密码
 立即注册
搜索
查看: 10792|回复: 8

手机游戏开发综述

[复制链接]

41

主题

181

帖子

461

积分

中级会员

Rank: 3Rank: 3

积分
461
QQ
发表于 2003-11-7 12:54:00 | 显示全部楼层 |阅读模式
一、背景介绍

  现在的移动电话是小型的计算机,它的处理能力与台式机的标准处理能力相比很有限,但是足够运行一个小型的游戏。

  现在的手机的一个特性就是它们还是网络计算机,能够高速发送和接收数字数据。 除了语音数据以外,它们还可以发送和接收其它类型的数据。所以类似《传奇》、《千年》这样的网络游戏也可以在手机上实现。

  当然就处理能力和性能而言,当前阶段的支持Java的手机很接近第二代控制台游戏机、80年代中期的家用电脑和早期的手持游戏机。内存通常很有限--一般128KB到500KB--虽然有些智能手机比如Nokia 3650有4 MB内存。与PC相比,它们的输入和显示功能也很有限;小屏幕(许多仍然是黑白屏幕),为电话拨号优化的小键盘并不针对文本输入,以及有限的声音处理能力。

  二、移动游戏是如何实现的

  目前在移动电话实现游戏的技术主要有以下几种:

  1、嵌入式游戏

  一些游戏在出厂前就固化在芯片中了,象Nokia的贪吃蛇就是一个最著名的例子。但由于用户不能自己安装新的游戏,所以它们逐渐变得不太流行了。

  2、短消息服务游戏

  短信息服务(SMS)被用来从一个手机向另一个手机发送简短的文字信息。用户一般为每条信息支付1毛钱的信息费。短消息服务游戏的玩法通常是发送一条信息到某个号码,这个号码对应游戏供应商的服务器,服务器接收这条消息,执行一些操作然后返回一条带有结果的消息到游戏者的手机中。短消息服务不是一个特别好的用于实现移动游戏的技术,因为它依靠用户输入文字,因此本质上它是一个命令行环境。而且它还很昂贵,即使和服务器只交换10次信息也要花费1块钱或者更多的钱。虽然多媒体消息服务( MMS)技术的推出使得基于消息的游戏更加具有吸引力,但是仍然不是一种重要的游戏环境,所以在此我们不会深入探讨它。

  3、浏览器游戏

  差不多1999年以后出厂的每台手机都有一个无线应用协议(WAP)浏览器。WAP本质上是一个静态浏览载体,非常像一个简化的Web,是为移动电话小型特征和低带宽而专门优化的。要玩WAP游戏的话,可以进入游戏供应商的URL(通常通过移动运营商门户网站的一个链接),下载并浏览一个或多个页面,选择一个菜单或者输入文字,提交数据到服务器,然后浏览更多的页面。WAP (1.x)版本使用独特的标记语言WML,允许用户下载多个页面,即卡片组。新版本的WAP(2.x)使用XHTML的一个子集,一次传递一个页面并且允许更好的控制显示格式。两种版本的WAP都提供一个比SMS更友好的界面,而且更加便宜,只要根据使用时间付费而不是根据信息数。但是它是一个静态的浏览载体;手机本身几乎不需要做任何处理过程,并且所有游戏必须通过网络,所有的操作都是在远程服务器上执行的。手机将继续带有WAP浏览器,而且开发者可能发现WAP有利于传送比游戏应用程序提供的更详细的帮助信息或者规则,因为大部分的游戏仍然受有限的内存制约。然而,WAP没能达到高使用率的目标(在欧洲和北美洲,只有6%的手机使用WAP),而且移动运营商和游戏开发者正在远离WAP技术。 我们也不会在这里探究任何WAP的细节。

  4、J2ME和其它的解释语言

  Java 2 Micro Edition (J2ME)是一种针对移动电话和PDA这样的小型设备的Java语言。大部分的手机厂商都迫切希望Java手机推广应用。上千万的Java手机已经到了消费者的手中。J2ME与台式机中的Java相比还是有很大的限制,但是它已经极大的提高了移动电话支持游戏的能力。它有比SMS或WAP更好控制的界面,允许使用子图形动画,并且可以通过无线网络连接到远程服务器。支持Java的手机的普及,所以它成为目前最好的移动游戏开发环境,我们在这里将详细研究J2ME游戏的开发。J2ME不是手机上配置的唯一的解释语言,但是它是一个许多厂商支持的行业标准。一些专用的解释语言也在某些区域有上佳的表现,如北美的Qualcomm的BREW ( Binary Runtime Environment for Wireless,用于无线应用程序的二进制运行环境)和一些韩国移动运营商支持的名为GVM的标准。在这个系列文章中,我们将要重点讨论使用J2ME开发移动游戏,并且将介绍在Nokia平台上开发移动游戏的方法。

  5、C++应用程序或其它编译语言

  另外一种开发方式是使用C++开发移动游戏,把程序编译为本机机器代码。编译语言程序一般说来提供更好的控制用户界面,以及与解释语言相比更快的速度。C++开发者可以定位于Series 60平台设备。此外,Microsoft的.Net CF也可以以编译的形式开发移动设备上的游戏,在以后的文章中我将介绍Pocket PC平台上游戏开发的方法。

41

主题

181

帖子

461

积分

中级会员

Rank: 3Rank: 3

积分
461
QQ
 楼主| 发表于 2003-11-7 12:57:00 | 显示全部楼层

继续~

三、移动游戏开发与传统游戏开发的区别

  移动游戏开发与传统游戏开发区别在许多方面:

  1、开发团队的大小

  传统的PC和控制台游戏一般需要12到30人的开发团队。因为大部分移动游戏规模比控制台游戏小,所以一般情况下只需要3到5人的团队开发,有的时候甚至设计者和编程者是同一个人。

  2、预算

  传统游戏的预算在一百万美元到五百万美元之间。大部分移动游戏的预算则通常少于一百万美元。实际上,移动电话有限的显示能力和对应用程序大小的限制使得不可能象传统游戏那样投入大量的财力物力。从某种意义上来说,这也算是一个优点。

  3、开发周期

  传统的游戏一般要开发两到三年。而大部分移动游戏几月之内就能开发完毕。换句话说,只要有一个小型开发团队和一个小的预算,你就可以开发并推广一个专业品质的移动游戏。因此,对于许多在传统游戏领域遇到挫折的开发者来说,移动游戏开发有很强的吸引力。

  4、网络设备

  移动游戏可能不同于我们之前看到的任何游戏:它受载体因素的限制,但是支持网络并且可多人游戏。用于PC的调制解调器也只是8年前才大范围应用;控制台游戏只不过现在才能上网。移动电话的特性决定它是一种网络设备。即使它们的处理能力使人想起以前的老式计算机技术,但是它们的网络性能却更加出众。

  5、开放标准

  控制台游戏开发需要从控制台游戏厂商取得授权和支持,需要支付给他们"平台使用费"。在无线应用程序世界(如同在PC游戏开发中一样),你可以免费的开发任何款式的游戏,而不要支付Nokia、Sun或其他平台提供商一分钱。此外,这些移动游戏开发平台标准可以向开发者发布、开放并可免费取得。

  6、部署

  传统的游戏主要是在软件市场上购买。而移动游戏主要是由用户从移动门户网站下载并安装。在有些情况下,它们是通过无线网络下载的。有些手机允许你下载一个应用程序到计算机中,然后通过数据线传送到手机中。

  因此,移动游戏的销售渠道是非常不同的。用户一般通过移动运营商的游戏菜单、手机厂商预装在手机中的游戏菜单或者无线应用程序门户网站上找到移动游戏。

  四、载体的优点

  1、庞大的潜在用户群

  现在全球超过十亿部移动电话正在被使用,并且这个数目正在逐渐增加。在除美国之外的每个发达国家,拥有手机的人数比拥有计算机的人数更多。虽然那些手机只有一小部份是支持Java的手机,但是这个数目正在快速地提高并且在几年内Java手机将要成为行业标准。移动游戏潜在的市场比其它任何平台,比如Playstation和GameBoy都要大。

  2、便携性

  GameBoy比任何其他控制台游戏卖出的多的一个原因就是:便携性。人们可以随时随地玩他们选择的游戏。与现在的游戏控制台或者个人电脑相比,手机可能不是一个好的游戏设备,但是人们基本上是随时随刻都把它们带在身边。在他们离开家的时候或者想玩的时候,给开发者应该为他们提供好玩的游戏。

  3、支持网络

  因为移动电话是网络设备,所以可以实现多人游戏,虽然有某些限制因素

五、载体的缺点

  1、屏幕小

  你面对的是小型的屏幕。虽然屏幕分辩率持续提高,并且彩屏即将成为标准,但是屏幕尺寸还是一直很小,因为没有人乐意拿着砖块一样大的手机。

  还有一个相关的问题:不同的手机的屏幕大小是不同的。比如说Nokia Series 60平台设备就提供了和Nokia 5100这样的Series 40设备不同的屏幕尺寸。虽然各个厂商已经标准化它们产品的屏幕尺寸以避免分割市场,但是开发者仍然需要为不同的电话优化他们的游戏--你肯定想使用特定的手机上所有可用的屏幕空间。

  2、有限的颜色和声音支持

  大部分使用者手中的手机仍然是黑白的,虽然现在出售的支持Java的手机大部分都是彩屏手机。在这些手机中12bit彩色非常流行。

  即使手机本来就有声音设备,但是应用程序播放声音的能力却非常有限。J2ME规范根本不需要硬件厂商支持声音,虽然基本的Java手机允许使用一些声音并且MIDI支持正在成为标准。通常,手机中只有一个语音或者一个声道可用。

  3、应用程序大小限制

  大部分的Java手机只有很少的内存空间用于运行MIDlet。此外,对MIDlet的大小始终有一个限制。实际的限制取决于手机设备和移动运营商的规定。

  在这样的限制条件下设计开发移动游戏固然是非常困难的,但是我们要知道,第一台家用电脑只有64 KB内存,但是仍然有人热衷于在其上开发游戏软件。在一些智能手机上内存的限制就少一些,比如Nokia 3650甚至可以运行几兆字节的应用程序。

  4、高等待时间

  等待时间----机器发出请求和接到响应之间所花费的时间----在计算机上是以微秒计算;在有线因特网上是以毫秒计算;而在无线网络则要以秒计算。

  等待时间是网络游戏中一直存在的一个问题,开发者们总是在努力消除它带来的问题。无线网络等待时间非常长,这就不可能有效的开发多人快速动作移动游戏。然而基于回合制的多人游戏是相当可行的,我们在后面的文章中将讨论如何使用各种方法来处理这个问题。

  虽然移动运营商总是在努力增加移动电话可用的带宽,但是他们却没有把降低等待时间当成首要解决的问题,因为它对于别的应用程序并不重要。

  还有一种特殊情况:使用蓝牙技术或其他无线局域网技术的手机可以和附近的蓝牙设备使用因特网等待时间(一般200-400毫秒)通讯。这样,使用像Nokia 3650这样的智能手机,你就可以和附近的移动用户一起玩多人快速动作游戏了。

  5、可中断性是关键

  当用户接听电话的时候,手机都会中断进行中的游戏。游戏程序必须能够暂停并且继续,而且不会造成游戏问题(例如,游戏者在打电话的时候老怪仍然在移动,打死玩家扮演的角色,导致输掉游戏)并且不会造成内存溢出。这需要在编程的时候多注意,Nokia提供了技术文档帮助J2ME和Symbian C++开发者了解并解决这个问题。

  6、正在发展的技术

  用于开发移动游戏的技术并不是针对游戏设计的,因此常常有特定的限制条件。例如,J2ME规范不需要支持透明度,这就使得子图形除了在空白的背景上以外,在任何背景上都会很难看。

  幸运的是,大部分设备厂商的Java手机都补充了J2ME,支持了透明度。为了充分利用J2ME的性能,你需要支持手机特定的API;为了得到最好的效果,就需要为一个游戏编写好几个版本。最近发行的MIDP 2.0规范解决了一些此类问题,但是对不兼容MIDP 2.0的手机是无效的。

六、避其短处 取其长处

  游戏有惊人的可塑性;它们可以使用从石器时代到现代高科技的每一种技术来实现。每当你使用你以前从来没有使用过的技术进行开发的时候,你需要了解它的性能和局限,努力把它的性能发挥到极限,同时回避或者解决它的局限性。

  我们可以从我们的移动游戏的性能和局限性的讨论中得出什么结论呢?

  1、短的游戏时间

  人们迟早要打电话或者接电话,并且他们不想把所有的电量都用来玩游戏。理想的情况是每一回合游戏应该保持在五个分钟或更短时间之内。这不意味着一个完整的游戏必须在五分钟之内结束--而是你应该允许游戏者中断、保存和继续游戏。

  2、玩家有自己的时间表,而不是必须遵循你的时间表

  让人们在想要玩游戏的时候玩,不要强迫他们等待(如果你可以避免),也不要要求他们在任何时间都在游戏中。

  3、避免等待时间

  这对单人游戏来说很容易实现。在多人游戏中,你就需要解决等待时间的问题了。(我们将在后面讨论这个问题。)

  4、使用网络

  网络不一定对于每个移动游戏都是必需的,但是那种与人竞争的感觉,即使只有一个排行榜,也能吸引更多的游戏者。要记住,手机实际上是一种社会性设备,添加某种社会性因素到你的游戏中会使它更加受欢迎。

  5、尽可能地让游戏保持小型

  记住一点,人们仍然热中于80年代的优秀的游戏。在某些方面,技术的限制强迫你把更多的注意力放到基本的游戏中去。

  当我们在后续文章中探讨开发的时候,我们将讨论一些技术问题。

  6、做好支持多种手机的准备

  至少,需要支持不同的屏幕尺寸,这对Nokia系列手机很容易做到。为Series 40开发一种版本,为Series 60开发另一种版本。多数情况下,你还要利用特定手机的性能和API,比如Nokia的用户界面和SMS API,你要为不具备相同特性的手机开发不同的版本。

  7、为国际化做好准备

  全世界都在使用移动电话,每一种语言都有自己的市场。在你开发的时候你就要做好计划,以便更利于本地化。

七、处理等待时间

  移动游戏如何解决无线网络的高等待时间呢?

  1、单人游戏

  游戏者的游戏不需要用到网络,除非是把高分传送到排行榜中,或允许游戏者浏览排行榜。这种网络通讯对于游戏影响不大,几秒钟的延迟不会引起用户的反感。

  实质上,在大多数的单人游戏中并没有这个问题。

  2、"多玩家"单人游戏

  在一个"多玩家"单人游戏中,游戏者感觉他们是在玩一个多人游戏,但是事实上,每个人只是面对相同的游戏,在游戏或者回合结束时比较分数。

  当一个游戏者加入游戏时,他告诉其他游戏者他的ID号,然后开始玩单人游戏。服务器要么给每个游戏者发送一个包含相同消息的游戏状态文件,要么发送一个来自构造启动游戏状态的客户软件的代码。每个游戏者玩游戏,设法取得最高的得分。当一个游戏者结束游戏后,他的客户端程序把他的得分提交到服务器。当所有的游戏者都完成游戏后(或者超过某个时间以后),服务器告诉每个游戏者谁取得了最高分,以及每个游戏者取得的分数。

  这种风格的游戏在因特网上相当成功;AOL最受欢迎的游戏Slingo就是一个很好的例子。

  因为只有在服务器开始或者结束游戏的时候才需要交换消息,所以等待时间只有在这些时候才成为一个问题。

  3、基于回合的游戏

  在一个基于回合的游戏中,游戏者进入他们的回合,并在接收结果之前需要等待一段时间。几秒钟的延迟是可以容忍的。

  有两种基于回合的游戏:

  3.1、轮流游戏

  在一个轮流游戏中,每个游戏者按次序进入回合。像象棋、红心大战这样的经典游戏就是很好的例子。
这种游戏的缺点就是游戏者在重新进入回合之前无事可做。虽然经典游戏在因特网上有很多玩家,但这多多少少有点无趣,。

  因此,限制轮流游戏的游戏者数是个非常好的主意,这样延迟就不会变得非常长。两到四个游戏者是比较理想的情况。

  3.2、同时动作游戏

  在一个同时动作游戏中,每个游戏者独立于其它游戏者计划他自己的行动。当一个游戏者就绪时,他发送指令到服务器。服务器等到从所有的游戏者那里都接到指令,然后分解回合,再把结果发送到所有的游戏者那里。

  4、"即时动作"游戏

  在一个"即时动作"游戏中,游戏可能会持续很长时间(几天、几个星期、几个月甚至到永远)。游戏者可以在任何时候进入游戏,执行游戏中的动作。在一些游戏中,他们可能只能与其他的同时进入游戏的用户交互;在其它的游戏中,他们也许能与任何其他游戏者交互,即使这些游戏者已经下线。

  6、把等待时间分布到游戏中

  让游戏者接受高等待时间的另一种简单方法就是把等待时间分布到游戏本身中。例如,大部分星际飞船战斗游戏让人都感觉到象是二次大战时的空战,战船在你身边呼啸而过,向你开炮。然而,在手机上要实现这种火爆的场面好像困难很大。我们可以换一种思路,我们可以把星际战舰类游戏做成一个类似第一次世界大战海战的游戏,星际飞船慢慢地移动,彼此之间一发一发的发射炮弹,导弹缓慢的移动奔向它们的目标。你可以使用这种方法来隐藏几秒钟的等待时间。肯定还有更多的解决长等待时间的方法。这是一个值得花时间去思考解决的问题。

  在后续的文章中,我们将深入的探讨移动游戏开发的技术。

41

主题

181

帖子

461

积分

中级会员

Rank: 3Rank: 3

积分
461
QQ
 楼主| 发表于 2003-11-7 12:59:00 | 显示全部楼层

移动动作游戏开发中的一些问题

现在,游戏开发领域已经出现了一线新的曙光--移动游戏开发时代已经到来了。在过去的两三年里,业界一直在讨论移动游戏市场,分析家们称移动游戏能够带来极高收益。大家都在热切期待移动游戏市场启动的信号。移动运营商投放的彩屏手机为开发者提供了一个用于开发游戏的理想平台,并且也为移动游戏软件出版商提供了合理的商业模式。这是一个双赢的局面。此外,传统的游戏公司,象SEGA和THQ也进入了这个领域,为这个领域的未来大幅发展提供了许多稳定人心的因素。

在移动游戏开发的第一阶段,并没有传统游戏的开发者参与。移动游戏时代是从WAP游戏开始的,主要是文字,并配有少量的图形。尽管市场上已经有几千万支持WAP的可上因特网的手机,但是纯文本的游戏显然并没有激发起手机用户的兴趣,造成消费者回避移动游戏。WAP游戏环境非常缓慢且笨拙,并且WAP游戏开发过程中没有使用Gameboy和控制台游戏开发者的丰富的资源。

美国的移动运营商很快地注意并分析了这些问题,他们从日本I-mode的巨大成功中获取了经验。I-mode到去年年底已经有3000万用户下载娱乐游戏,这占公司年收入的很大一部分。移动运营商推出了下一代移动电话,能够支持因特网功能。与老式的黑白文字手机相比,这些手机更加快并且功能更加强大,它们带有彩色的屏幕和因特网浏览功能,使用比大部分个人电脑拨号上网速度更快的连接速度。

虽然新手机还不是最理想的游戏平台,但它已经是个良好的开端。处理器、内存和色彩深度提供了游戏开发所需的因素。开发者正努力把其它游戏平台上的质量标准运用到这个平台上。当然了,一些问题仍然存在,然而这些问题终将被解决,就象PC平台游戏开发者使用不断改进的DirectX一样。

市场

在全世界,有许多手机的平台或者操作系统。在欧洲,最流行的是J2ME和Symbian;在亚洲和美国,J2ME和BREW则占据大部分市场。

本文讨论在这些新手机中开发Gameboy风格的动作游戏的一些高水平问题,集中在较重要的移动运营商支持的手机和平台上,象Nextel的Motorola i95cl,Sprint的Samsung A500和Verizon的Sharp Z-800。成功的开发者所开发的游戏必须支持最广泛的手机,只针对一种手机或者一个移动运营商来优化你的游戏是最愚蠢的行为。虽然高度优化的结果很好,但是这种努力却并不合算。

虽然现在许多厂商正在制定游戏开发的标准,但是用于大部分手机的有效的解决方案还要等一段时间才能出现。虽然这些手机有令人难以置信的处理器和高效的游戏API,但是开发丰富的吸引人的游戏还不是一件非常容易的事情。在过渡期间,开发者必须面对当前的事实。

Gameboy

在某些方面,新一代的手机与老式的Gameboy Color(GBC)很相似。其实我们可以把GBC看成是一种很重要的评估标准,大部分开发者都很熟悉它。新手机和GBC有许多共同的特征,像便携性、有限存储器、二维图形等等。这个极其成功的游戏平台是移动游戏最理想的模仿对象。移动游戏开发者可以从小屏幕GBC设备的游戏开发中获取思路,来进行创造性的界面设计并增强移动游戏的可玩性。而Gameboy和手机游戏市场并不完全重叠,全世界大约出售了1亿台这种游戏平台。

虽然现在的手机还不是游戏设备,但是它们已经是功能非常强大的设备了。处理器、存贮器和色彩深度已经大大超过了原来的Gameboy。然而移动电话还存在缺陷,比如显示速度、刷新频率、声音和输入远远不如Gameboy。

在某些方面,把移动电话和Gameboy做比较是不公平的。移动电话决不会是高度专业化的游戏设备。与个人计算机相似,移动电话是多功能设备,使用通用处理器和结构来支持像数字信号处理和模拟调制解调器这样耗费大量时间的处理过程。而另一方面,Gameboy是专门设计的一个游戏平台,从开发环境到硬件结构都只有一个目的,就是提供一个用于游戏的高速图形通道。然而,这并不意味手机厂商和移动运营商就有理由可以不去提高它们的游戏开发环境了。

移动开发

开发移动游戏与传统游戏的开发有很多不同,想开发有吸引力的移动游戏尤其困难。这比开发控制台游戏或PC游戏更困难,因为众多的设备具有不同的存贮器、声音和显示性能。除此之外,你还必须合理利用象BREW和J2ME这样不同的开发环境。

开发移动游戏需要一套与普通游戏不同的方法和思路。移动游戏的预算很小而且时间安排很短。这个平台有许多种硬件和软件的组合,并且在硬件厂商之间没有多少共同点。

第一、花费更多的时间用来设计。开发者都有想用最简捷经济的方式做事的倾向。然而,为了创作一个世界第一流水平的游戏,你就必须使用世界第一流水平的开发过程。应用控制台游戏、PC游戏或者Gameboy游戏中所使用的同样的开发过程。关键步骤是设计思路、试制、生产和产品质量检测。不幸的是,因为设备和移动运营商的多样性,开发者不得不花费更多的时间用于前期的计划。这就存在这一种风险,那就是一个设计可以用于一种设备,但是可能就不能用在另一种设备。

第二、象在PC中一样,为硬件的"最小公分母"(lowest common denominator)开发,这意味着你的代码不能对硬件和操作系统以及程序设计语言之间的交互抱过高幻想。

第三个、类似于硬件中的问题,开发两个API之间的基本功能。比较软件开发环境和围绕它们的不足进行针对性设计。开发者必须花费更多的时间了解这两个平台,但是最后的效果是很值得的。

操作环境的不兼容性

两个领导潮流的移动开发环境是J2ME和BREW。J2ME是获得美国大部分移动运营商支持的移动应用开发平台。然而北美洲最大的移动运营商Verizon和Alltel都支持Qualcomm开发的BREW应用程序接口,这使得BREW将成为北美未来必然的平台标准。

BREW更象一个操作系统,支持像C和C++这样的编程语言,考虑到了非常紧凑和高效的代码。 J2ME是一个解释语言,运行在有虚拟机的任何操作系统(包括BREW)上,通常运行速度很慢,而且在优化代码上有许多的困难。

在这两种开发环境中,开发者随意受着厂商的具体实现的摆布。例如,如果显示速度不是最需要考虑的问题的话,那么厂商可以支持J2ME和BREW的基本版本--这两个平台没有一个有直接访问屏幕的标准内置方法,这会使得程序不能支持快速的全屏幕绘图。

在过渡期间,为这两个环境开发游戏成为一种挑战。BREW应用程序接口处理方法与J2ME非常不同。跨平台开发是必由之路。显然,C++的代码和JAVA是不同的,但是这两个平台应该共享大部分的其它的东西,包括数据流设计、通用接口模型、美工、水平数据和声音资源等等。虽然折中方案不一定高效,但是它可以使你的后端开发过程更加高效。没有必要为一个游戏写两个版本,这是吃力不讨好的事情。

例如,BREW 1.0支持掩盖的位图传送(Masked-Blit),而J2ME MIDP 1.4不支持。而且,一些J2ME手机不支持声音。所以你的代码不应该使用掩盖的位图传送支持或者声音支持。比如说,如果你创建自定义位图字体,你可能认为你需要掩盖的位图传送。然而,你可以使用提前修正背景色来创建字体位图。这两个平台可以在载入一个文件的时候改变调色板,允许动态的调整字体背景色,但是文本必须出现在固定的背景上。

提示

1、 在BREW中使用C++(或其它的面向对象语言),能够很容易的支持J2ME,因为它是一种面向对象的语言。

2、 J2ME和BREW一般说来,任何使用Java写的代码都可以使用C++编写,并且可以更快更好。

3、 把所有的设备输出代码(声音、显示、输入)从你的游戏程序逻辑中分离出来。结构化游戏程序逻辑以便能够在J2ME和BREW之间移植。

显示速度

在移动游戏开发过程中,最大的问题是缺乏对显示速度的重视。虽然移动运营商已经选择了强大的处理器和彩色的显示屏,但是他们忽略了对于游戏来说至关重要的一个方面。

如果你看看位图传送的实现,你就会发现低速的显示和高速的处理器很不协调。现在的手机的最大帧速率大约是10fps,而Gameboy或控制台游戏则是30-60fps,这严重地限制了响应速度。

手机使用许多绘制程序,一些支持双缓冲技术,而另一些不支持。在某些情况下,可以更容易的直接绘制到屏幕上。直接绘制到屏幕有时比双缓冲更快。然而,使用低刷新速率在屏幕上绘制大的图象可能会引起闪烁。

你应该使用不同的绘制函数和不同尺寸的位图来一些构造绘制程序。这提供给手机快速绘屏以及最优化的方法。

提示

1、 使用位图传送和使用固有的绘制程序如矩形填充函数大致得出手机绘制速度。

2、 测试双缓冲和直接描画到屏幕上。

3、 确定一个高效的图形通道。

找出特定手机API或VM的实现上的瓶颈。你可能会发现一些简单的问题,比如调用位图传送函数的频度对帧速率的影响。

掩盖的位图传送(Masked-Blit)

在游戏平台上我们认为理所当然的一件事情就是使用透明背景创建子图形。这不是2D图形的新知识,所以我们假设你们对基本的知识有所了解。然而,如果你的平台不支持掩盖的位图传送,那么你有两种选择:忽略透明背景并且绘制矩形子图形或者创建一个粗略近似的子图形。

在一些游戏中,你可以不使用透明度,这种情况中,子图形很小并且背景是一种单调的暗色。虽然那严重地限制了游戏的种类,然而你的游戏可能会看上去灵活且平滑。

从另一方面来说,你可以把图像分割成小的矩形部分,然后重新在屏幕上的把这些矩形组合成一个子图形,通过这种办法,可以近似的透明位图传送。这不适用于带有许多曲线和角的复杂的子图形。而且,如果这个子图形由许多矩形组成,游戏的帧速率可能会较大地变慢,因为处理器需要为到屏幕上的每个位图传送额外消耗资源。

提示

1、 看看你是否可以修改你的设计来支持不带透明背景的子图形。

2、 把你的子图形分割成小的矩形并实时组合成子图形。你可能需要重新设计你的子图形来最小化矩形的数目。

如果你面对的设备API支持掩盖的位图传送,那么你就应该使用它。

不同的屏幕尺寸

图形是游戏的一个关键的方面,描画速度是一个重要的程序函数。不同于控制台游戏和PC游戏,移动设备没有标准的屏幕尺寸或者长宽比,这就导致了很多兼容性问题。开发者可以通过编写非常灵活的背景和前景描画程序来解决这个问题。关键是创建一个允许快速扩展或者缩小游戏视窗的架构,并且不使图像变形或者生成让人看上去觉得别扭的屏幕比例。

当然,你有很多方法来处理这个问题。最坏的情况就是你可以为每种手机的显示屏重新设计图形。或者,你还可以动态地调节你的游戏背景和其它图形。两种情况下,都没有在移动电话中定制平滑的动作游戏的方法。

提示

1、 使用象DrawRectangle和DrawCircle这样的固有描画函数创建尽可能多的可伸缩的图形。

2、 设计游戏,让位图图形可以伸展或者缩小15%-20%,而不会影响玩游戏。

3、 在可卷轴的游戏中,根据需要扩大或者缩小可玩的区域。

输入问题

输入要么成就要么毁掉一个游戏体验。游戏一般都需要快速响应的反馈。不然的话,你的游戏就会感觉有点迟钝。在过去,移动电话不需要能够快速响应的按键。拨电话号码没有那种需要。

现在,这就有了一些问题。第一,如果你的按键响应速度很慢,你的游戏反馈就会很慢,而且不幸的是没有解决办法来提高它的速度。第二,不太明显的是,你的帧速率,在Playstation和Sega土星上,15-20fps的3D游戏会使得控制感觉有点迟钝。在象BREW这样的单线程环境中,处理绘制屏幕、播放声音和计算图形的物理运动过程花费了大量的时间,就没有时间来读取并处理按键事件了。而且,大部分的手机不支持同时按下多键,而这是格斗游戏和射击游戏所必须的。

移动领域一直在与这些问题斗争。目前,你必须通过你的设计来解决它。你需要把注意力集中在设计基于动量(momentum)的游戏上,这些游戏中角色是可以移动的,并且有一些迟钝。例如,如果角色需要移动,那么不要设计直接左转或右转的游戏,而应该设计需要平缓转动的游戏。而且,不可能创建需要让游戏角色立即停下或者转动的溜冰或滑雪游戏。也不要设计格斗游戏或者类似的游戏,因为在这些游戏中,角色需要大量的移动,并且需要立即反馈的游戏按键。

提示

1、使用基于动量的控制来最小化缓慢的相应速度。

2、设计解决同时按下多键的事件。

3、提高帧速度。它将提高响应速度。

未来

上面我们说到的这些问题在今后几年就能解决。然而,消费者的期望值是很高的,他们已经已经被Gameboy Color和Sega上的精彩游戏和画面惯坏了。就像我们看到的WAP,如果顾客失望了,他们就不会买进服务了。这是显而易见的,所以开发者必须尽自己一份力量。

其中的一些担子落在移动运营商和移动软件发行商的肩上。服务必须可信赖,便于接入并且价格公道。平台所有人必须与手机制造商一起工作,提供一个健壮的、游戏友好的环境,包括耐用的按键、掩盖的位图传送和快速显示能力。

随着对移动游戏兴趣的提高,移动运营商认识到这些问题并且正在快速的解决这些问题。当然了谁也不能保证会出现什么解决方案或者什么时候才能出现一个高效的解决方案。在此期间,开发者必须凑合着使用目前的平台并且要有所创意。

6

主题

100

帖子

105

积分

注册会员

Rank: 2

积分
105
发表于 2003-11-7 14:26:00 | 显示全部楼层

Re:手机游戏开发综述

我一点也不喜欢玩手机游戏. 也不喜欢做. 没有挑战性

41

主题

181

帖子

461

积分

中级会员

Rank: 3Rank: 3

积分
461
QQ
 楼主| 发表于 2003-11-7 15:48:00 | 显示全部楼层

Re:手机游戏开发综述

呵呵^^那说明你永远都只能做一个玩家而不是开发者

别人都做了好玩的游戏你再去你那叫跟风:)

你有本事把别人做不出的游戏做成有趣的游戏那这才是本事.也才是真真的

挑战:)

就手机游戏这块硬件在以后的几年会有飞速的发展,手机的可携带性和可以上网的特性!手机游戏市场的利润绝对会比网游更高~这才是挑战^0^

41

主题

181

帖子

461

积分

中级会员

Rank: 3Rank: 3

积分
461
QQ
 楼主| 发表于 2003-11-7 16:07:00 | 显示全部楼层

Re:手机游戏开发综述

这篇东西我是从别的地方转过来的!写的很详细也很实际!!

12

主题

92

帖子

97

积分

注册会员

Rank: 2

积分
97
QQ
发表于 2003-11-11 10:31:00 | 显示全部楼层

Re:手机游戏开发综述

就是老了点。

2

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2009-2-17 01:13:00 | 显示全部楼层

Re:手机游戏开发综述

受益良多感谢楼主

1

主题

13

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2009-5-5 13:49:00 | 显示全部楼层

Re:手机游戏开发综述

JAVA 3D应用工程师
工作地点:成都
应聘资格:
1、本科以上学历,计算机及相关专业;
2、英语能力通过CET-4以上,能熟练阅读英文技术资料;
3、2年以上相关工作经历。
素质要求:
1、有高度的工作热情,具备团队合作精神;
2、敢于迎接挑战,具备良好的心理素质和开拓精神,敢于在压力下工作;
专业能力要求:
1、熟悉JAVA、C,具有嵌入式编程的实际经验;
2、了解JAVA相关标准,如JSR 287(Scalable 2D Vector Graphics API 2.0 for J2ME),JSR 184(M3G,Mobile 3D Graphics API for J2ME),JSR 297 (Mobile 3D Graphics API 2.0)等;
3、了解DVB、MPEG2、MPEG4体系的相关协议;
4、了解3D图形学原理;
5、具有2D游戏、3D游戏开发经验者优先。
联系人:
rebecca
QQ:275804313
MSN/EMAIL:rebecca6455@sohu.com
TEL:028-66843288
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-20 11:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表