2011-03-26 81 views
0

我开发的3D射击游戏,我想在电脑/手机/平板电脑上运行,并希望一些帮助来选择要使用的引擎。3D游戏引擎的建议

  • 我想写一次应用程序,并轻松将它移植到Android/iOS/windows/mac。
  • 我想通过互联网使应用程序流式传输。
  • 发动机需要一些物理(碰撞检测)以及3D渲染能力
  • 我更愿意使用脚本语言如JavaScript或Python的Java或C++(虽然我愿意学习这些,如果它是最好的选择)

- 我的愿望是使用一个引擎,是基于代码的,而不是基于GUI,一个引擎,更像是我可以导入我的Python文件(如图书馆),比这个应用程序迫使我依靠其GUI来导入资产并建立它们之间的关系。

这个愿望离我最近Unity3d和搅拌机的经验造成的。我设计我的代码的方式要求我编写数十个混乱的脚本来控制各种对象。我不禁想到,如果我已经用一系列python文件编写了我的程序,那我就可以做一个整洁,快速的工作。

我会很感激的任何建议。与我想要的最接近的是Panda3d,但我在处理纹理方面遇到了困难,我不相信我的应用程序可以轻松地供移动电话/设备用户使用。如果有类似的选择,你可以考虑一下,我会很感激小费。

+0

在这里可能会有更好的运气http://gamedev.stackexchange.com/ – schwiz 2011-03-26 22:45:02

回答

2

对于您有Unity3d可能是你最好的赌注之一的要求。正如罗伊所说,那里没有任何其他的3D引擎可以跨越广泛的平台。你为什么认为进入一个完全基于代码的系统可以帮你避免创建各种具有各种责任的类?

编码工作和代码和类的数量将保持不变。唯一改变的是你与你正在生产的系统进行交互的方式。对于任何大型系统,您将快速遇到数百个文件。我正在完成一个较小规模的团结项目3-4个月的编码,包括学习统一它在10K行代码加上另外8K从外部图书馆和超过100班。但是这个数量并不是由项目需求驱动的团结如何运作所驱动的。在编写代码的过程中,我学到了很多关于团结如何运行以及它需要什么样的模式,并且能够为下一个项目提出更好的解决方案。回顾一下你做了什么,并考虑如何更好地组织它。我认为这是一个保存赌注,说你需要大约相同数量的代码与任何其他系统来实现类似的结果。

团结所具有的优势是良好的多平台支持和卓越的资产管道。导入和利用艺术资产,二维,三维和音频对我而言是这类开发中最繁重的任务之一,并且得到了很好的统一支持。

+0

这是一个有用的回应。感谢您的观点。我想我会坚持Unity3d。 – Rishi 2011-04-28 08:50:34

0

嗯,我看你已经检查Unity3D了,但我不认为在PC,电话任何其他引擎的工作原理,并通过流媒体互联网上询问服务3D(二维检查EXEN或任何其他人)。

我也敢肯定,你可以使用统一的代码为基础的,它支持几个不同的语言,但是对于团结工作,你不能只是导入unity.dll(例如)到你的代码,不,你必须将你的代码用于统一,以便统一可以使它在所有这些不同的平台上工作。

1

你提到的iOS - 这几乎限制你去本地或者使用网络堆栈。既然native不是你想要的(因为你提到的每个平台都会有所不同),你可以使用JavaScript。理想的情况是WebGL,但支持仍然是实验性的,并且在电话系统中不可用。您仍然可以使用建立在2D <canvas>之上的JS库中的一个。尽管如此,你不能指望出色的表现。你可以在这里找到例子:http://www.javascriptgaming.com/

+0

去WebGL,Facebook是为WebGL打赌,迪斯尼和其他人也是。 – Goles 2011-03-26 21:30:05

+0

@Gando:真的,但这不是在手机**还**。 – vartec 2011-03-26 21:38:18