我想写一个策略游戏,它的地图将是3D平铺的。我已经阅读了一些关于gamedev的文章,但大多数都试图在2D空间中实现3D。我想知道现在如何使用3D卡实现它。我想知道使用Irrlich是否会出现过度杀伤(它有一个很好的高度图场景节点)。
提前致谢, ternyk
答案 0 :(得分:2)
Kylotan已经回复了大多数人,我同意。
添加到它:
使用像Irrlicht这样的引擎并不过分,它会让你的工作变得更加容易,因为它可以让你摆脱有关direct3d / opengl使用的无聊和容易出错的标准任务。
在游戏的内部世界表示与其可视化之间进行区分通常很重要。仅仅因为游戏使用3d模型而3d地形并不意味着它使用相同的数据来表示游戏世界的内部表现。大多数情况下,简化模型位于下方。 Kylotan以单向排列,但您也可以使用基于高度图的地形,下方有一个更简单的模型。一个二维数组,每个元素代表一个场景的图块及其游戏特定属性(矩阵的单位类型可以输入此图块,移动成本,可以构建建筑物等)。视觉地形可以完全脱离这些数据。
关于地形特征,OGRE在灵活性,性能和视觉质量方面提供了比Irrlicht更好的地形实现。它是否与你的游戏相关我不知道。 见http://www.ogre3d.org/forums/viewtopic.php?f=11&t=50674
答案 1 :(得分:1)
3D卡与世界表现形式无关。 “2D空间中的3D”观察是正确的,因为这基本上是大多数这些游戏正在做的事情。仍然可以以与它们一直相同的方式存储图块(即,某种2D阵列,可能细分为更易于管理的块),并且需要改变的是每个图块的图形表示。而不是位图,它们可以指代3D模型,或者在地形的情况下指代一种或多种材料。渲染与以往一样 - 对于屏幕上的每个图块,在给定位置绘制图块的表示(无论是什么)。 3D渲染将渲染三维而不是二维的瓷砖,并且需要从模型空间到世界空间和相机空间的整个转换,但这适用于所有游戏,无论是否平铺。
对于这样的游戏来说,Irrlicht肯定不会过度,特别是如果你想能够在你的瓷砖上渲染3D模型。编写自己的简单3D引擎并不是非常困难,但与免费提供的内容相比,很少或没有任何好处。很难说它是否完全符合您的要求,因为您没有详细说明,但一般来说,像Irrlicht和OGRE这样的免费图书馆是制作游戏的好选择,如果您已经开始使用C ++。