我应该使用jMonkeyEngine 3 (jME 3)还是Unity 4.3来教我的孩子游戏编程?

9

我想教我的孩子编程,看起来我已经缩小到两个选项:

  • jMonkeyEngine 3 (jME 3)
  • Unity 4.3

我找不到任何“当前”的比较,所以我想问一下:

教授编程和引擎效果方面,jME3+和Unity4.3+哪个更好?

我不是游戏开发人员,但作为企业和控制系统开发人员,我有C#和Java的经验。

目前我倾向于Unity4.3+,因为:

  1. 从编程角度来看,我认为C#比Java更简洁,尽管这意味着很少使用引擎编码和对象模型会鼓励拙劣的编程

  2. 引擎效果:Unity4.3+将“据说”即将支持XBox One和PS4

注意:公平地说,我会提到这个 jME 的“预防阶段”iOS选项,这比营销“所谓”的可能性要好:(http://hub.jmonkeyengine.org/wiki/doku.php/jme3:ios)

如果它们在其他方面相等,哪个有更好的服务集成?


你是在说UDK(虚幻引擎)还是Unity3d?它们是两个不同的引擎。 - StackUnder
抱歉,我会在上面进行更正。这是因为我对游戏方面的经验相对较少,我编造了UDK缩写来表示Unity Dev Kit;没有意识到虚幻引擎已经“使用”了该首字母缩写。感谢您的澄清。 - George 2.0 Hope
很抱歉,我不会投票重新开放这个问题。它仍然是一个“你认为怎样”的问题。每种语言和工具都有其优点和缺点。没有客观的方法可以说“这个更好”。这主要取决于个人偏好。 - Ortund
6个回答

26

很高兴您对JME3感兴趣。

我也正在为一个面向游戏环境的教育项目工作,针对年轻人和成年人的教育计划。

如果您想让孩子通过游戏制作学习编程,这是一个好主意。但是,JME3和Unity都更加复杂,需要一定的起步知识(我假设您的孩子还很年轻)...还有一些适合孩子视觉学习编程的项目。

Greenfoot ww.java.com/en/java_in_action/alice.jsp

Alice ww.greenfoot.org/door

Kojo ww.kogics.net/sf:kojo

这些语言带有IDE,学习曲线短,易于上手,需要最少的知识,适合孩子和初学者。这是教育方面的内容。

对于引擎方面,以下是我的个人观点:

我更喜欢JME。我也放弃了Unity(自己做了约4-5个商业游戏),转而使用JME。 在Unity之前,我还在Ogre、UDK、Torque等许多引擎中工作过(10个以上)。我还在白天的工作中使用C++商业引擎,代码非常糟糕,但运行非常流畅,价值数百万美元。

原因是:这些引擎会限制你的技术和解决方案。当然,这也是你选择引擎的部分原因。但是,当你遇到限制时,例如许可费或封闭技术。您会和我一样讨厌它们。

所以,这就是为什么我寻找“完整”的游戏开发和娱乐技术转向JME的原因。

如果您是有经验的Java和C#开发者,与JME和Unity开发人员相关联,我将为您列举一些可以在两者之间进行比较的事项:

  • 许可证:免费开源 vs 免费/商业

    • IDE:Netbean-一个开放而可扩展的平台(领先的质量)vs MonoEdit(地球上最多漏洞的IDE)

    基于技术:

    • 图形:OpenGL v2+ vs 修改后的渲染器(兼容OpenGL v3+),我想Unity在这方面会更胜一筹:(。作为一名长期从事Java开发的人,看到这一点很遗憾。但是我希望我们可以不断改进图形。
    • 数据管理:您可以选择(H2、HyperTable、Neo4j……来自Java世界的100多个)与Unity数据库相对比
    • 数据组织:您可以选择(ES、OO、COD、数据驱动…)与仅限于ES和数据驱动
    • 网络:您可以选择(Java在这方面表现出色)VS Unity网络(高性能,但永远无法击败Java)
    • 云和分布式:您可以选择(Storm、Hadoop…)VS自制的“云技术”
    • 需要注意的是,我通常同时使用Unity和JME3来工作和娱乐。我白天使用带有炫酷mecanim动画和substance材质的Unity 4,晚上使用JME3进行研究和改进。我认为JME3是值得学习的游戏引擎,并且它将在未来大放异彩!

      希望这可以帮助您!


8
很难比较Unity,因为我从未实际使用过。不过我看过演示和它的界面。但是,我已经使用jMonkeyengine约2年半了,我可以说我是一个满意的客户 :)。
Unity可能拥有更多的一切:开发者、用户、花哨的功能,但是这是有代价的。
两者的相似之处: - 大型社区(Unity更大) - 许多免费教程 - 快速开发(这里是我使用jME参与的几个ludum dare的链接http://www.ludumdare.com/compo/ludum-dare-28/comment-page-3/?action=preview&uid=16152, http://www.ludumdare.com/compo/ludum-dare-24/comment-page-1/?action=preview&uid=16152) - 易于分发到Windows/Mac/Linux/Android
jMonkeyEngine是完全免费和开源的(New BSD License)。因此,您可以查看引擎的所有内部工作原理,甚至在不喜欢某些内容时进行更改(当然,欢迎您提交更改 :))。因此,通过深入研究jME源代码,您将学到更多。
C#和Java是一个可以讨论很长时间的问题,但我认为它不应该成为界定因素,它们在本质上非常相似。目前jME中不存在可用的iOS版本,而且我认为没有任何立即计划支持Xbox One和PS4,所以Unity将会胜出。

注意:为了公平起见,我将提到这个“预阿尔法状态”的 jME iOS 选项,这比营销中的“所谓”要好:(http://hub.jmonkeyengine.org/wiki/doku.php/jme3:ios) - George 2.0 Hope

6

JME比Unity更加专业。

JME: - 拥有强大的社区(主要使用英语) - 开源且免费使用 - 拥有许多很酷的工具,但是我猜Unity拥有更多 - 简单编译和编码所有平台 - 支持Linux。您可以在Linux操作系统中开发游戏。

Unity: - 强大的社区(拥有许多当地社区和语言) - 非免费。但它拥有专业工具。 - 支持JavaScript。您可以在编辑器内添加脚本。 - 拥有非常酷的世界编辑器。但在JME SDK中编码更好。

我使用JME。但在许多情况下需要较高技术水平。


4

这真的取决于你的目标。

Unity的优点在于可以通过商店轻松地将资产导入引擎。而使用jme3则需要至少部分掌握blender/3dsmax或类似软件。或者使用不需要这些软件的图形风格(例如2D或方块世界)。此外,Unity在照明和阴影方面拥有更先进的功能。但是,您迟早需要购买专业许可证,因为即使是基本的LOD也与之相关http://unity3d.com/unity/licenses,而且价格不便宜。

jme3的优点在于它不会限制您。它只是一个核心引擎,也没有针对某些用例进行定制。

据我了解,Unity使用一种实体-组件系统,但没有单独的系统。(组件包含逻辑)

在jme3中,您可以自由选择使用任何您想要的东西,并被鼓励在逻辑和图形之间进行清晰的分离。您可以自由选择使用任何编程类型(例如ES、OO),因为jme是基于JVM的,所以您还可以通过Scala等其他JVM语言进行函数式编程。

所以这取决于你的目标(和预算)是什么,更多关于开发及其细节,还是更多关于制作自己的游戏。
关于版本控制, JME3与git和svn以及几乎所有其他工具都可以很好地配合使用。因为没有任何特殊的文件或逻辑与它们绑定。

3

我不能说我曾经使用过Unity,但以下是我喜欢JME3的一些事情:

  • 完全免费且基于BSD许可证的开源软件
  • 基于NetBeans的令人惊叹的SDK
  • 可以通过单击将应用程序部署到Linux、Mac和Android(以及Windows),我不知道Unity是否也能做到这一点
  • 惊人的活跃社区,不断创建新的插件和功能(IOS部署即将推出),他们还会帮助您解决遇到的任何问题
  • 网络功能非常强大
  • 可以与其他Java库或特性一起使用


  • 就引擎的功能而言,Unity可能更多。然而,我强烈推荐JME,它是一个很棒的引擎。有人说你需要了解Blender,而Unity则有一个资产商店。虽然掌握Blender技能非常有用,但有成百上千的网站出售或免费提供资源(例如www.turbosquid.com)。

3

我想问一下,你要教的人是否已经准备好为游戏引擎编程?

如果必须先教一个hello world脚本,然后再学习变量是什么,那么两个选项都只会让需要简单学习环境的事情变得过于复杂。

即使他们已经掌握了编程的基础知识,他们也应该知道游戏编程的基本知识。他们应该知道向量是什么,以及矩阵数学如何与引擎运作有关。

我不知道jME,但对于Unity来说,这将是他们能够编写真正做出贡献并且理解原因(这应该是教别人最重要的部分)的代码的起点。我把Unity描述为最简单的大型玩具。这仍然意味着他们必须首先准备好使用大型玩具。

哦,而且使用Unity的免费版本。大多数专业功能都是图形元素,如bloom lighting,这不会影响程序员的能力。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接