在Java游戏中轻松地从2D移植到3D

时间:2009-01-01 15:08:01

标签: java 3d 2d

由于缺乏资金和时间,我们不得不在2D中进行游戏,即使我(开发人员)更喜欢它是在3D中完成的。我讨厌用户加入游戏,只是认为图形看起来很糟糕并离开。虽然我想我们必须尽力做到最好。

话虽这么说,我想以这样的方式开发游戏:如果时机成熟,我们可以尽可能轻松地移植到3D。我知道必须从头开始重写整个事情的游戏。我不喜欢这样做,所以我想在编写游戏时使用一些提示/指南,这样当我们转向3D时,它就像更改1-5图形渲染类的代码一样简单(或者关闭)并且3D图形将会运行。

P.S这是一款多人角色扮演游戏(一个MMORPG,现在范围要小得多)

4 个答案:

答案 0 :(得分:5)

实现这一目标的最简单方法是以3D形式编写游戏,并使用3d到2d投影渲染视图,例如在计划或海拔。如果游戏内部机制是2D并且您尝试移动到真正的3D框架,那么最好重写一次。它还取决于您对3D的含义,以及您是否拥有有效的映射选项。例如,Microsofts Age of Empires以3D形式呈现,但作为2D计划可以很好地工作。另一方面,像Life Life或Quake这样的第一人称射手不会。

答案 1 :(得分:3)

  

由于缺乏资金和时间,我们是   不得不在2D中进行游戏   虽然我(开发人员)更喜欢   如果它是在3D中完成的。我讨厌   用户加入游戏,只有思考   图形看起来很糟糕并离开。   虽然我想我们只需要尝试   并尽力而为。

我不认为一切都必须是3D才能看起来很好。做得好2D可以比一些标准3D图形看起来好很多倍。要拥有出色的3D图形,您必须付出一些努力。如果你的预算不允许这样做,我宁愿尝试在游戏开发方面付出很多努力。

想想(有点过时了)暗黑破坏神II,它不是3D,但仍然有一些漂亮和漂亮的图形。

当然可以构建一个可以更容易更改图形表示的架构,但我认为它几乎不会像您描述的那样简单。当然,如果你只是为了3D而想要3D它可以完成(而不是位图,你现在渲染3D模型),但这有点无意义。如果你想使用3D,玩家应该能够使用它(例如通过移动相机,拥有更多的自由度......)但是这必须在整个游戏设计中考虑,因此要认真对待影响游戏玩法。

答案 2 :(得分:2)

您可以使用GL正交视图。这将允许您仅使用2D坐标在屏幕上绘图,如果您以后想要3D,从Ortho切换到Perspective视图并且您有3D,但是我认为它不会帮助您重复使用代码,因为2D正交视图通常使用纹理完成,并且您无法将纹理转换为3D网格。

也许更好的方法是在3D中做所有事情,并设置你的相机从上面看,如果你以后这样做,只需重新定位相机并制作更好的模型和纹理就可以切换到3D。这个选项听起来更好,但是在没有代码更改的情况下,您可以通过权衡2D到3D的可移植性来完成更多工作。

答案 3 :(得分:1)

MVC模式应该会有所帮助。

我猜你已经知道了,但是你看过Java3D了吗?也许基于它的插头可更换3D渲染视图(但不一定是抛光和生产就绪)会让你保持诚实,这样你就不会以某种可怕的方式结束2D。它可以像添加一些Z定位来渲染2D东西一样简单。