Android真不适合做游戏
原文:http://www.eoeandroid.com/thread-1745-1-1.html
很多开发者朋友想必很多都是游戏玩家,对于游戏的感情也一定很深。
Android的开放平台,也燃起了很多朋友的游戏梦。
但是Android在发售之后,还有这近1年的表现,让我感觉Andriod平台并不适合制作传统的游戏,请注意我的措辞。而且一段惨痛的经历更加证明了这个想法。
1.首先我这里先说一下我这里的传统游戏
游戏的范畴很大,文曲星上的推箱子也能算是游戏。这里讲的游戏主要是指一些包装精美,有复杂玩法,游戏时长在100小时以上的游戏。
对于这样的游戏,如果是资深的玩家,肯定会首先想起PSP、还有NDS,GBA等等。如果范围大一些,大型的PC版的网络游戏也可以被包含其中。
而且像Android这样的平台推出游戏作品,必然会和这些作品进行比较。那么我们就按照这钟游戏的要求来继续。
2.Android平台没有一个稳定的发展路线
回顾那些成功的游戏平台,他们的成功,都有一个前提,就是标准。
起码我的硬件都是同一的,无论我们的主机其他方面再变,起码对于一个游戏制作厂商来说,我们面对的都是同一的机器,我们可以不用不用去考虑兼容性的问题。这就少了很多的工序。
但是对于Android来说,硬件没有一个统一的标准,而且性能有高有低,这个不统一,就让开发商难以把我全局,如果对硬件的性能要求高了,会失去很多低端机的玩家,但是如果要求低了,又会损失不少的性能。
这对开发商来说,在一开始做决定的时候就十分犯难。
随着Android手机的不断发售,这个问题反而不会改善,而且会愈演愈烈。反观iPhone,虽然目前只有3款终端,但是起码在配置上都保持很高的一致性,在iPhone平台上的游戏开发就没有这样的问题。
3. 居然是Java
其实对于开发者来说,这样的高级语言要比普通的C或者是C++,要更加爱有利于编程。其实Java也是一个优秀的编程语言。
但是对于游戏开发呢!Java的开发使用的是虚拟机,必然无法发挥出全部的硬件性能。而且之前在手机上已经有了很多优秀的J2ME游戏。所以Android是一个天然的J2ME游戏的承载器,这反而让很多开发者会更加倾向于J2ME。而且现在的Android框架所提供的框架,对于游戏的开发来说,支持得一点都不好。
NDK的开发,可能会对这一情况有所改观,但是Android游戏环境,必然会受到J2ME游戏的影响。
4. Android是Linux
这里还要简单说一下,很多游戏的显示模式。虽然2D游戏仍然有很多的市场,但是3D的发展已经成了趋势。其实3D并不一定要做成真正的3D,最主要的是,3D可以利用自己的先天优势,做出更多让人感官强烈的效果。就那最近的《街霸4》来说,其实游戏的模式还是2D的横板,但是用3D的效果就显得更棒。
Linux则对3D的支持,可是一说是三大操作系统中最差的。Windows虽然核心的代码和性能都很烂,但是DirectX却为开发者提供了一个极为优秀的开发环境。玩家也因为DirectX可以更加统一,硬件的不同,只会影响显示的效果,但是不会影响功能的实现。但是对于Linux来说,问题就大多了!
而Android平台在这一方面依然做的不好。
其实对于iPhone,还有PSP平台,他们都有自己的独立的3D加速引擎,NDS的3D很弱,但是仍然可以通过双CPU实现3D的效果。这里还是忍不住要批判Android硬件问题。没有统一的标准,每个厂商如果想更好得支持3D,那么就必须从整个系统,从硬件驱动到中间实现重新来一遍,成本非常之高,这样手机的售价也会攀升,最后没有好的硬件基数,软件再优秀也无法达到盈利。
5. Android目标是手机、不是游戏机
玩过Gphone的朋友都知道,所有的应用程序,在退出之后,并不会关闭。这样是提高了程序运行速度,并且合理得运用了内存。但是这样必定影响性能,如果我同时,运行一款游戏,那么游戏在Android的这个框架之下,必定无法发挥最大的硬件性能。这个损失可一点都不小。
而且重要的是,Android是Linux,对程序的管理非常严格。我之前还想,在运行游戏的时候,可以关闭其他的进程,让游戏更好得运行,但是这样天真的想法,都在Linux严格的要求下破灭了。
6. 开发周期
按照第一点定义的游戏,这里的游戏更应该是一个艺术品。在很多玩家眼中,游戏是与电影、音乐并驾齐驱的作品。那么这个开发就不像是我们的普通的应用开发,应用开发是发现用户的需求并满足用户的需求。
而游戏则要挖掘用户对新鲜事物的乐趣,我们的开发者要把用户自己都想不到的东西做出来。
这需要一定长的周期,这个的基础则是一个稳定的环境。如果我们的开发人员在实现一个功能的时候,老是期待下一班的Android
SDK,那怎么能做好这款游戏呢。
iPhone的
SDK
都是集中某一段时间发布,而且每一次都有很规整,并且大的改变,这样我们的游戏开发公司也能更好安排自己的工作。
7. 你真的想做游戏吗?
这个也是我切身的一点感受。能做出好游戏的人或团队,必定是有一批喜欢游戏的人,因为只有自己玩着有乐趣,才能将这份乐趣带个玩家。
但是很遗憾的是,很多开发者还是太过于注重游戏的商业品质,而不是其艺术品质。
虽然说现在Android上的游戏大多都很烂,但是仍然有一些蛮不错的产品,比如说Hudson公司出的几款软件,虽然是2D的画面,但是因为自己以前丰富的积累,在贫弱的Android平台,依然做出了相当不错的作品,棒球和人的效果,比起其他的游戏不知强了多少。
J2ME的时代,正在衰亡!如果真要做游戏,就要想清楚了,做,就要按照一个标准的游戏厂商严格要求自己,如果不做,趁早转行吧!
这七点是我对Android不适合游戏开发,这个观点的阐述。
但是游利卡写这个也不是为了给大家泼冷水的,游利卡也经过了一定的思考。
鉴于现在这样的状况,游利卡认为,进行Android的游戏开发应该朝着这样的路线。
1. 3D很炫,但是2D依然精彩
3D的实现需要很多硬件的支持,虽然不能做。但是2D仍然有很多绚丽的特效,不说别的《地下城与勇士》的成功,其实也宣告着并不是所有游戏都需要3D。而且通过一些视觉的特效,2D也是可以做出一些立体的效果。
与其在3D上死磕,不如在2D上加强自己的功力。
当然如果开发周期本来就订的比较长,那就应该去考虑一下3D了。
2.试试Flash 其实很多开发人员不喜欢Flash的游戏
Flash其实做不出特别号的游戏,虽然Android的Flash注定不会很强大,但是一个标准化环境,肯定比动荡不安的环境要更加有利。
3.弃用Java、拥抱C
这点是针对上面的第七点来说的,如果真的打算要做一个专注游戏开发的团队或者是厂商,那么就要拿出做游戏的样子。
从现在开始对自己今后的发展做一定的积累。每一款游戏coding结束之后,将一些优秀的资源整理保留,用做以后的更好的开发!
文章,写的比较匆忙,可能有些管带还有待商槌,有不同意见的朋友,欢迎讨论
————————————————————————————————————————
虽然发帖人是版主,不过还是感觉是一大堆的废话
1,PSP,NDS,这样的平台能做游戏,它的原因是什么?CPU啊,如果ANDROID平台集成了3D的显示核心,最少跑跑简单的应用没任何问题,现在G1没3D应用,当然没法做3D游戏,举出PSP这种极端的例子更是不知所谓,PSP就算是用ANDROID做系统,一样能做出很好的效果,硬件底层完全是两个概念的东西,硬拿来比较很让人头晕。
2,100个小时的大型游戏,你确定你没发烧?一般人出门甚至都不拿手机看书,因为手机是拿来联系别人的,游戏功能只是其次,一般的手机游戏控制游戏时间都在20个小时之内
3,JAVA和LINUX,这两个理由很让人喷饭,就是在PC平台上,也没人敢拿这两个来说事情啊。
综上:一大篇的文字,却是拿游戏机对比OS,拿PC游戏对比移动开发,夜深了,言语里措辞不当之处,明天有空再来修改吧:)
————————————————————————————————————————
很欢迎你的讨论
可是在用户眼中,我不关心G1手机有没有3D加速,我只知道G1比PSP还贵了几百块钱!所以我认为G1应该至少和PSP相近的东西
和PSP硬件上当然没法比。但是如果从系统上来看Android也没有为3D的硬件预留一些接口,我还是希望能完整的看完整篇文章,我并没有说Android不能做出那样的效果,这里是指Android的发展路线,Android的Market的路线。Android是走开放路线,开放则无法统一,没有统一的配置,那怎么能让开发者和玩家放心得开发游戏、玩游戏呢?
我那PSP比,是因为PSP上的开发游戏,开发商可以直接上来,不用为硬件做过多的着想,玩家拿来游戏可以直接玩,顶多是看看有没有一些配合1000、2000、3000的不同版本的外设。
但是现在的Android可以做到吗?
对于最后一句话。
这样做对比的确对Android 这样的OS 不公平。
但是我们要看到的不是当前,而是以后的发展,既然同平台的iPhone可以做到的,Android有什么理由做不到呢!
而且以后移动设备的硬件性能越来越强,把对游戏机和PC的要求放在对Android上进行要求一点都不为过。
————————————————————————————————————————
在android上是无法进行j2me开发的,类库不同。
android的虚拟机是基于寄存器的,这于普通的java基于堆栈不同,速度得到了很大的提示,并不逊于c++,而且openGL在很多方面还是很有优势的。
现在的手机游戏是手机的一个重要亮点,而且随着硬件性能的不断提升,手机将会成为一个很好的游戏平台,但是现在手机上优秀的大型游戏(不是那种简单的小游戏)还是个空白,所以我觉得前景还是不错的,虽然android对3d的支持不是很好,但是随着版本的更新问题应该能解决。
“J2ME的时代,正在衰亡!”其实从j2ME诞生起就处在了一个尴尬的地位,姥姥不亲舅舅不爱,虽然在有些平台上可以运行,但是到处受限制。
————————————————————————————————————————
我想说的是:手机最基本的用途就是用来通讯的。
它毕竟不是游戏机,把一些大型的操作复杂的游戏弄到手机上面,那的确很有吸引力。
但是电力续航,操作键盘,手机屏幕大小,手机的大小,以及系统的硬件的要求就会很高很高,这些问题又该怎么解决。如果为了满足那些要求,而把手机的体积做的很大,那和小型笔记本又有什么差别。
————————————————————————————————————————
你说的前三个问题已经解决了,只是暂时还没用到手机上。键盘采取的光学成像原理,只要找一个平整的介质,手机可以将一个虚拟键盘投影到介质上进行操作;屏幕大小现在有一种眼镜相当于手机上的耳机,带上后整个手机的屏幕就会放大。这些方法以后不一定能用到手机上,但是至少证明很多人都在尝试,解决只是个时间问题,按照现在的手机的发展速度,咱们还能赶上。
————————————————————————————————————————
我觉得针对android游戏方面 不能拿它跟nds psp来比, 毕竟大家侧重点不一样, 不然的话 有了ps3 xbox后 还需要pc游戏 掌机游戏吗! android 作为终端平台, 将作为我们个人所需品的承载者, 毕竟有它的位置, 我们不可能一手拿个psp 一手拿个手机, 两者能够更好的结合不是更好吗。现在android还是发展阶段, 支持的功能也少,也很有限, 针对游戏的框架也没(个人还没发现), 前几天在网上发现的 游戏 crystallight 确实很不错, 创意很好, 画面也很精美! 如果产商在资源加载处理上能更精益求精就更好, 在看这个游戏之前, 我下了个魂斗罗, 刺客信条, 虽然是大公司做的,但是这些都是“手机游戏”的级别,我认为针对做游戏方面,不应该把android当做手机对对待!昨天开始山寨这个crystallight游戏了, 不知道能不成功! 希望坚持下去, 现在菜单,地图选择包括菜单旋转,射入等效果都已经做好! 真的很佩服做这个有消息的公司! android平台现在虽然不能很好的“做游戏”,但我们自身可以突破这个界限!说的非常琐碎。楼主应该大力鼓励大家去做哈哈,不然还没加入行列,就被你说的事实吓跑了可不好哈哈
java 使程序开发周期大大缩短 而且能吸引大量的java程序员 底层用linux上层用java开发这是 Android最大的特色,当然你也可以直接用C开发
————————————————————————————————————————
android的硬件没有标准,确实是非常大的一个问题,别说游戏,就连一个普通的带界面的软件,都要考虑不同的屏幕大小问题,SDK的模拟器就自带了好几种屏幕样式。这还不算,如果硬件厂商使用电阻屏(比如联想),在触摸的操作感知上将会有很大的区别!
android虽然开放,但仍然需要有标准来支持,不然就没办法做到“跨手机平台”,试想想开发者为了让某个软件或游戏能正常显示在大部分的android手机上都需要考虑“兼容性”(这在大量的不同厂商的android手机上市后会显现出来,毕竟现在还只有HTC的G1,G2,G3),那么工作量之复杂将难以想象。
如果还想把软件运行到android上网本……OMG!
————————————————————————————————————————
突然发现完全和LZ不再一个位面啊。。。。。。。。。
1,ANDROID是OS,PSP拼的是硬件,两个概念的东西就不要拿来比,另外,PSP貌似是修改后的LINUX。。。。。
2,手机开发游戏都存在你说的问题,IPHONE是个例外,但是如果出了一个高分屏的IPHONE,那同样的问题将降临到IPHONE身上
3,手机不是游戏机,限制这一点的并不是其它的,而是电池,但是弄一些好玩的,娱乐的东西,当然还是不错的
4,J2ME最火的应用,就是游戏
5,最后,J2ME不会消亡,非智能机的存在是它生存的空间
————————————————————————————————————————
顶一个,我是做游戏的,也认为android本身就不是为游戏所设计。跟游戏机就不比了,整个硬件规格、寄存器、数据交换的方式都不一样。跟IPHONE比,游戏的运行效率也低的要命。。。系统的机制、JAVA都是很大的瓶颈。总之就是让人郁闷呢。
————————————————————————————————————————
实际上 感觉an对内存的管理很不好 为什么8G的闪盘 有7G空闲 而内存只有可怜的2M(最近用wifi狂下了N多游戏),莫名其妙地内存没有了 哎 很多游戏都不想删呀。
我知道,这也是一种内存管理策略,为了系统的更稳定性,但是这个代价也忒大点了吧 损失了多少的资源呀,再说很多好的游戏一般都是很大的,这可怜的内存 怎么能够搭载呢。期望2.0能很好的解决这个瓶颈吧
————————————————————————————————————————
楼主确实说到不少Android的短板,但个人觉得还是偏颇了点。
做为一个平台,就不可能去限制使用这个平台的硬件设备,如果限制了,平台就难以发展。
IPhone之所以现在硬件规格等都差不多,是因为它刚发展没多久,是由同一家公司所控制,而且相信IPhone今后肯定也会出现许多不同规格的手机。
那Android手机的游戏和专业游戏机去做比较,是不公平的,他们的侧重点是不一样的。
Windows对游戏的支持够强大了吧,但Windows Mobile下的游戏还是不能和PSP之类的专业游戏设备比。
Android还处于幼年时期,可别三岁定终身啊。
————————————————————————————————————————
GBA上的英雄本色(Max Payne),比PC和PS2上的英雄本色(Max Payne),更加好玩。
GTA2比GTA3好玩。
2D经常超越3D的。Android就做2D游戏,准没错。
————————————————————————————————————————
吸引人的游戏不一定要靠强大的硬件做支撑
比如现在的开心网,和魔兽世界相比,哪个更华丽呢?但是照样有不亚于魔兽的受众,而且也不会被归为网络沉迷的范畴。
关键是看你做出来的应用,有没有吸引用户的地方,手机就要开发手机适合的游戏,不同平台之间本来受众就不一样,是不具备可比性的。。
————————————————————————————————————————
你会每天捧着手机玩上几个小时吗?
手机从来不是将来也不会是适合开发大型游戏的平台.
手机需要的是简单但耐玩,可以随时中断和继续的游戏.
手机游戏的开发者应该时刻意识到.
我们写的游戏很可能是在上WC或等公车时用来打发时间的.
精美的画面和丰富的故事情节并不是取胜的关键.
简单, 趣味性和挑战才能赢得用户的青睐.
————————————————————————————————————————
楼主说的很有道理,不过我觉得android是一个趋势,加上3G,如果android再增强系统的性能,将来市场会很大的,现在学android没错。
————————————————————————————————————————
的确不是很适合开发游戏啊!
毕竟现在还不是很成熟,与其开发游戏还是集中精力,开发一些好的android程序.
————————————————————————————————————————
在android上用JAVA的类性能确实慢,但android也有推出了自己的类功能上是和JAVA一样的...好好看看API吧...还有3D方面你用OPENGL ES开发性能也是可以的,
还有楼主提到(所有的应用程序,在退出之后,并不会关闭)这个确实我觉得不好,
但G1自己有带个DEV TOOLS可以选当玩家退出会关闭程序,但去到G2就没了,郁闷
————————————————————————————————————————
其实,最同意的还是放弃java,拥抱c,也许和自己的工作有关,android的本质其实就是c,虽有人说android的本质是Java直接面向寄存器,事实是这样吗,事实是,java通过c面向虚拟机,换句话说,HTC的应用它难道是用java作的吗?当然对于我们这些爱好者来说其实c就已经足够,但是随着NDK的在此发布,我觉得越来越多地c的应用会出现的
————————————————————————————————————————
Google收购Ajax工具厂商 增强Android
http://tech.it168.com/a2010/0806/1087/000001087254.shtml
【IT168评论】Google近日收购了一家名为Instantiations的开发工具厂商,该公司的主要产品是Java和Ajax开发工具,这些工具在Google Web Toolkit(GWT)开发方面表现出色。
Instantiations已经给客户发邮件告诉他们这一变化,Eclipse Java产品的下载将在过渡期暂时停止,未来新的产品将在Google Web Toolkit博客发布。
Instatiations的官网已经发布了这一消息
有分析称,Google这一收购用意不仅在GWT设计工具,更在于Ajax和Java方面。Google所有网页应用都部署了大量的Ajax,而Android应用则使用Java来创建。未来Google很可能推出自己的Google Web Toolkit开发工具,而Android的Eclipse开发环境ADT也可能得到增强。
分享到:
相关推荐
Android Webview 拦截 Ajax 请求的详细讲解 Android Webview 提供了页面加载及资源请求的钩子,但是对于 H5 的 Ajax 请求并没有提供干涉的接口。这意味着我们不能在 Webview 中干涉 JavaScript 发起的 HTTP 请求,...
综上所述,这个压缩包提供了一个全面的学习资源,涵盖了Android应用开发中的多个关键领域,包括但不限于前端交互设计、多媒体处理、网络请求、数据解析和跨域通信。开发者可以通过深入研究这些示例,提升自己的技能...
在"Ajax工具.rar"这个压缩包中,可能包含了一些实用的JavaScript库、框架或者插件,这些工具可以帮助开发者更方便地创建具有Ajax功能的网页应用。具体来说,可能包括: 1. **jQuery**:这是一个广泛使用的...
该工具不依赖于任何框架,可以集成或移植到所有j2ee项目中,本人在多个项目中皆使用此工具开发ajax服务端代码,实践证明该工具非常稳定。个人以为此工具要比sturt2的ajax插件好用些,且struts2的ajax插件是依赖于...
ASP.NET AJAX 扩展程序控件增强了标准 ASP.NET Web 服务器控件的客户端功能。通过使用一个或多个扩展程序控件可以实现标准的 Web 服务器控件(如 TextBox 控件、Button 控件和 Panel 控件),从而在浏览器中提供更...
一个简单实用的javascript AJAX 工具类; 简单应用的时候, 你不需导入像prototype,jQuery那样大的类库
在IT行业中,Ajax(异步JavaScript和XML)是一种在不刷新整个页面的情况下更新部分网页的技术。这个技术大大提升了用户体验,因为它允许用户与网页进行交互时,数据在后台静默加载,而无需等待整个页面重新加载。...
**Ajax技术工具** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页内容的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提高了用户体验,尤其...
ASP.NET AJAX工具包是微软为开发者提供的一套用于构建高度交互性和响应性Web应用程序的库。这个工具包,也称为Microsoft ASP.NET AJAX Control Toolkit,旨在简化ASP.NET应用程序中的AJAX(Asynchronous JavaScript ...
Ajax控件工具包包含了一套丰富的控件,你可以用它来建立高度敏感和交互性的Ajax的Web应用程序。Ajax控件工具包包含超过40个控件,包括自动完成、CollapsiblePanel、ColorPicker中、MaskedEdit、日历、手风琴、HTML...
AJAX(Asynchronous JavaScript and XML)是Web开发中一种创建动态网页的技术,它允许在不刷新整个页面的情况下,与服务器交换数据并更新部分网页内容。AJAX 的核心是利用JavaScript来实现局部页面的异步通信,它极...
Ajax Interceptor 是一款专为谷歌浏览器(Chrome)设计的插件,它允许开发者在Ajax请求发送后和响应返回前进行干预,从而实现对AJAX请求数据的修改。这款插件对于前端开发、调试以及测试来说是一个强大的工具,特别...
AjaxHandler ajaxHandler = new AjaxHandler("这里填网站", "utf-8"); //Post的数据 Map, String> map = new HashMap, String>(); map.put("user","admin"); map.put("pass", "123"); //内部实现多线程机制,以回调...
**Ajax工具核心组件详解** Ajax(Asynchronous JavaScript and XML)技术是现代Web开发中的关键组成部分,它允许网页在不刷新整个页面的情况下与服务器进行异步数据交换,提升了用户体验。Ajax的核心组件包括...
**Ajax工具包详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这个工具包集成了多种Ajax相关的功能,旨在满足开发者对页面局部刷新的需求,同时...
**Ajax 安装与调试工具详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它极大地提升了用户体验,使得网页交互更加流畅。本篇将详细介绍Ajax的相关...
它提供了强大的代码补全、调试、重构和版本控制功能,以及对各种框架和库的集成,包括但不限于JavaScript、HTML、CSS、Node.js等,非常适合AJAX应用的开发。 **Ajax 开发特性** 1. **智能代码提示**:IntelliJ ...
Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。在Web开发中,Ajax被广泛用于创建动态、交互性强的网页应用,它通过JavaScript发送异步HTTP请求,获取...
6. **jQuery** 和 **jQuery UI**:虽然不是ASP.NET AJAX的组成部分,但通常与之一起使用。jQuery简化了DOM操作,事件处理和AJAX请求,而jQuery UI则提供了许多用户界面效果和插件。 7. **Web Services 和 Page ...