为什么(几乎)所有用ActionScript(Flash)编写的在线游戏都不是Java?

时间:2010-03-16 15:47:29

标签: java flash actionscript-3 online-game

我绝对喜欢好的后卫游戏(例如Gemcraft,Protector:reclaiming the jone),因为他们在智力上非常具有挑战性;这就像下棋,但少一点思考,多一点动作。可悲的是,那里没有那么多好的,我想我会自己创建一个并通过在网上提供它与世界其他地方分享。

我从未使用过ActionScript,但在涉及在线游戏时,这是主要选择。我试图以Java applet的形式找到一个体面的2D游戏,但无济于事。为什么会这样?我可以在Delphi for Win32中编写最舒适的游戏,然后人们需要下载可执行文件,这可能会阻止某些形式下载它,而且它只能在Windows上运行。我也熟悉Java,在过去四年左右与Java合作过;虽然,我对游戏编程没有太多经验。

我不应该被所有在线游戏都用Flash编写并将我的后卫游戏作为Java小程序创建,或者我应该考虑为ActionScript虚拟机学习ActionScript和游戏开发(AS3看起来非常很多喜欢 Java ...但是,对我来说这是一项全新的技术,我可能永远不会专业地使用它。)

请你回答标题中的问题吗? 为什么 Flash,而不是Java applets?它只是“政治”吗?

8 个答案:

答案 0 :(得分:12)

its penetration rate is huge以来,Flash更受欢迎。

在创建和集成图形资源时,Flash也更强大(因为Flash CS *也是一个矢量动画编辑器)。 在不使用任何附加库的情况下,嵌入声音和字体资源,使用位图效果也非常容易。

最后但并非最不重要的是,有很多网站提供ActionScript API,以便通过在其中添加各种广告来赚取游戏费用(例如MochiMediaKongregate ...)

答案 1 :(得分:6)

Flash提供了一个完整的图形和声音引擎,可以处理路径和动画上的单独对象(“精灵”)。

在Java中,这些功能需要由第三方库提供。然而,Java确实为构建这样的引擎提供了必要的构建基石。

但是,

JavaFX可能会改变这种情况。

答案 2 :(得分:4)

我可以对Java方面提供一点见解:在Java历史的早期,Sun试图将Java applet作为在浏览器中显示动态内容的新方式。这种尝试注定要失败,因为以下因素的结合:

  • Java(并且仍有)(JRE)运行时的冗长加载时间;
  • Java最初只有AWT作为GUI工具包,AWT是有限的,真的很难看;
  • 在更快的CPU和JIT编译出现之前,Java曾经慢得多;
  • 微软在IE中非常半心半意地支持Java(许多人有意思),因此它没有很好地集成并且运行得很差。

所有这些都让Java(当之无愧)声名狼借,桌面和浏览器Java仍未恢复。对于大多数人来说,Java代表丑陋,缓慢且通常不起作用的应用程序。它今天仍然受到这种耻辱。

虽然Java和Flash都是Turing完整的程序环境,但Java更具通用性,具有更大的库集,可用于各种不同的目的。 Sun努力使Java环境在平台之间具有通用性,因此浏览器端Java包含许多通常不需要的库。再次,加载时间更长。

答案 3 :(得分:2)

简单回答:几乎所有的PC都安装了flash播放器,但JRE不是。

答案 4 :(得分:1)

Flash具有更广泛的安装基础,这可能是唯一的原因。我个人不在我的机器上安装Java ....当然是flash。

为什么要为更小的受众群体写点什么?我并不是说这是错的,但这通常是你为了获利而制作游戏的原因。

想想这个等同于游戏机,第二代游戏机有可用的硬件附件......但除非游戏使用它们,否则它们是无用的。作为游戏开发者,您有3种选择,将其与您的产品打包在一起 - 推高价格,假设他们拥有它 - 更小的受众,或者假设他们没有 - 最大的受众,最大的利润。结果是硬件从来没有真正卖得太多,因为作为一个游戏开发者你必须假设他们没有它。

对我而言,这相当于Java与Flash,如果我必须安装它,我访问它的价格会上涨......假设它们有最常见的东西而你是安全的,最低的入门成本,最大的观众。

但是,如果你有一个伟大的游戏,我可以说服安装:)

答案 5 :(得分:1)

Flash通常在游戏所需的绘图,动画和视频功能方面表现更好,因为它就是最初的设计目标。此外,Java语言的严格OO性质并不适用于游戏常见的特殊快速开发环境。

更重要的是,从作者的观点来看,Flash是目前更常用的浏览器插件。 Java只是没有在桌面上的渗透。小程序历史上因其不稳定和性能不佳而受到鄙视(特别是启动缓慢);虽然这有所改善,但Sun继续破坏用户对他们令人讨厌的捆绑式更新程序的认可。它是一家勇敢的公司,最近为桌面Java开发了很多东西。

  

我应该考虑学习ActionScript虚拟机的ActionScript和游戏开发

绝对值得学习JavaScript / ActionScript。 (它们几乎是相同的语言,共享标准化的通用核心。)然后,您可以将Flash脚本知识应用于浏览器脚本。你甚至可以考虑用JavaScript / HTML本身实现游戏!

  

AS3看起来非常像Java ......

就像它是一种C语言一样,是的。然而,概念和实践却截然不同;如果你尝试像Java一样编写JS / AS,你会遇到困难。

答案 6 :(得分:0)

许多Flash开发人员都是设计师,他们已经越过了制作游戏。他们在编程工具之前使用flash作为设计工具。

另外,现在似乎有一个先例,因为在线游戏用flash编写,所以我猜人们不想偏离“常态”

答案 7 :(得分:0)

Future Flash CS5可以直接创建iPhone应用程序,因此您将同时为2个平台创建游戏。