在2D游戏中使用3D引擎的利弊是什么?[关闭]


16

在决定2D游戏引擎(例如Slick2D / Flixel / FlashPunk)和3D引擎(例如Unity)进行2D游戏开发时,初学者应该注意哪些利弊?

尽管我过去曾涉猎Game Maker,Flash和XNA,但我才刚刚开始从事独立游戏开发。我听说过很多有关Unity的正面信息,它的跨平台特性使其更具吸引力,但据我了解,它是3d引擎的核心。

对于严格的2d游戏,是否有令人信服的理由使用Unity等3d引擎?还是会为我的初次学习体验增加不必要的复杂性?


您是在纯粹的2D游戏中问问题,例如Unity(如精灵和2D运动)还是具有2D游戏玩法的3D游戏(例如具有3D资源但只能在单个平面上移动)?
chaosTechnician 2011年

我有一些朋友与Unity一起制作了一款名为Coypu Space Rumble的2D游戏。最初的2D部分显然非常乏味,我将要求更多有关其原因的规定。
乔纳森·康奈尔


定义“ 3D引擎”?我们是在谈论涵盖游戏玩法的内容,还是仅以3D渲染的内容?
Nicol Bolas

@chaosTechnician-第一个:纯粹的2D精灵,2D运动,基本上没有任何真实的z轴(只需一个简单的z索引即可确定精灵的渲染顺序)
mrohlf 2011年

Answers:


15

这取决于游戏,但是在大多数情况下,使用专门为2d设计的引擎制作严格的2d游戏会更加容易。

现在,对于一些优点和缺点(其中一些将与Unity特别相关,其中一些更为通用)

缺点

  1. 3d引擎通常是围绕3d模型(多边形和纹理)的游戏对象设计的。虽然当然可以制作一个平面并对其应用纹理,但这样做时您正在积极地与引擎对抗。

  2. 另外,许多3d引擎缺乏处理精灵表(在一个纹理上的所有动画帧)的能力,因为他们希望动画(而不是通过绑定和其他方法)作用在模型上(而不是纹理)。再次,有解决方法,但是,再次,您正在积极地与引擎合作以实现这一目标。

  3. 增加了复杂性。正如乔什·佩特里(Josh Petrie)的回答中所述,3d比2d复杂得多,主要是在数学和场景管理方面。移动对象和处理3d空间非常困难,如果这是您的第一批游戏之一,那就会变得更加困难。好消息:Unity会抽象出其中的一些问题,尽管您仍然需要处理一些事情(而且很多抽象还是针对3d模型,而不是2d精灵)。

  4. Unity附带的或您可以从中获得的大多数库都用于3d对象。这包括诸如照明,寻路,物理等东西。与此同时,box2d可以轻松地与Flash或XNA或其他(也许)一起使用。

优点

  1. 3d加速。与CPU相比,图形卡在处理场景中的许多对象方面要好得多,而使用Unity则可以非常轻松地获得好处。这样一来,您就可以在屏幕上显示数千个精灵,或者轻松地包含粒子效果,或者添加诸如着色器之类的有趣功能来支持诸如扭曲空间和时间的酷效果。Unity具有许多内置的效果,因此非常容易。请注意,许多2d引擎在后台使用OpenGL或DirectX,并且在许多情况下也可以通过硬件加速。

  2. 支持模型。还记得那是早先的问题吗?是的,这也会带来好处。根据游戏的不同,能够在背景中包含旋转球体或诸如3d对象之类的很酷的东西可能会有所帮助。您也可以使用3d制作游戏,而只是将其强制为2d透视图,这可以让您选择旋转世界几何图形,而不必做大量额外的图形来处理它。

  3. 学习3d。面对现实,很多游戏都是用3d编写的,如果您学习如何使用Unity,则可以将许多技巧应用到可能需要3d的下一款游戏中。此外,目前正在放学的很多艺术家都在接受3D建模的教学,因此找到3d艺术家比传统2d游戏艺术家更容易(无论说艺术家有什么好处。...)

结论

有很多缺点,也有很多优点。这完全取决于您要制作的游戏类型,由您决定是否值得。Flash仍然是一个非常可行的选择,因此,如果2D引擎更适合您的游戏,则没有错。


+1。非常彻底和适用的答案。我觉得您之前已经解决了这个问题。
chaosTechnician 2011年

谢谢,正是我想要的!我想我将继续专注于2d引擎,因为我见过的大多数引擎都是基于OpenGL或DirectX构建的,而3d建模现在有点超出我的能力范围。我想在某个时候学习Unity,但是当我拥有2D游戏后,我可能会更好地解决这个问题。
mrohlf 2011年

此外,3D引擎使您可以非常轻松地绘制具有任意旋转和Alpha的精灵。比拥有纯2D引擎更容易。这就是为什么许多现代2D引擎实际上是引擎盖下的3D的原因。您还可以编写自定义着色器!
ashes999 2014年

7

一个很大的缺点额外的复杂性-3D引擎并不总是像专用2D引擎一样具有对2D图形的一流支持。这意味着处理或管理2D场景需要大量工作,并且/或者您仍然必须处理3D数学和转换管道的复杂性。特别是如果您不完全了解3D图形理论的基础知识,那么当图像不显示时,您可能会迷失和困惑;如果不小心,您可能会发现“解决方案”,使您的图像出现了,但不一定正确(因此以后会咬你)。

但是,除了人类方面,只要3D引擎具备构建2D游戏所需的工具,使用它就不是一个主意。这些天它们变得更加普遍,并且倾向于更积极地开发,所以这是一个加号。此外,可能还有少数专注于2D的引擎或框架在幕后没有使用D3D或OpenGL,因此可能无法获得现代GPU的好处。

在这个相关的问题中,您会看到很多有关什么可能会使3D变得更困难的讨论(但是,如果只将3D引擎用于2D游戏,则只需要解决其中的一部分)。


2

优点:视频卡制造商在优化3D驱动程序上花费了更多精力。您不会因为特殊的FX或荧光而陷入2D困境。您不必自己模仿。切换视点不需要完全重做所有艺术作品。我认为3D在视觉上可以更好地缩放。

缺点:资产管道可能必须适应您的引擎。2D中一些简单的操作在3D中更复杂。库可能会具有您永远不会使用的额外功能。


0

如果可以的话,请学习Unity。Unity与开源和免费的Blender 3D配合得很好。关于如何使用飞机在Blender中进行2D建模和动画制作,有很多不错的在线教程。另外,您还可以从网上免费下载大量模型,这些模型可以免费或廉价地用作起点。

当然,这是假设您不擅长创建自己的游戏引擎。我现在最喜欢的2D游戏是《 Super Meat Boy》,它是在Flash中设计的,编程结束是自定义的……使游戏引擎可以满足特定的游戏需求。这是进行此类项目的最佳方法,因为它为您提供了很多自由。那就是说要走那条路需要很多工作。


实际上,既然UNITY已经添加了2D支持,这简直
就是天方夜谭

1
我仍然说Unity吸引2D游戏。对于2D游戏而言,这对我来说不是专业素质,只是与像Cocos2D-swift这样的可靠2D引擎相比。没关系。
Jonny 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.