【问题标题】:Transition from 2D to 3D later in game development在游戏开发后期从 2D 过渡到 3D
【发布时间】:2011-02-02 09:45:04
【问题描述】:

我想开发一款游戏,但为了快速制作原型,我想让它尽可能简单,所以我会在 GDI+ 和 WinForms 中以自上而下的 2D 模式完成所有工作(嘿,我喜欢他们!),所以我可以专注于游戏本身的逻辑和架构。

我考虑将整个游戏逻辑(服务器)放在一个程序集中,WinForms 应用程序将成为该游戏的客户端,如果/当时间合适,我会编写一个 3D 客户端。

我很想使用 XNA,但我还没有真正研究过它,所以我不知道是否需要太多时间来加快速度 - 我真的不想花太多时间做游戏逻辑以外的其他事情,至少在我有灵感的时候。但在从 2D 过渡到 3D 时,我不必放弃一切并转移到新平台。

另一个想法是克服它并学习 XNA/Unity/SDL/至少到那个级别,这样我就可以制作与 GDI+ 中相同的 2D 版本,而且我不必担心切换框架没有了。

我们只是说游戏是那种你从后面看一个家伙,你在游戏世界中奔跑并与物体互动的那种。所以现在鸟瞰视角是可行的。

谢谢。

【问题讨论】:

  • 我也有同样的想法。事实证明,当我完成 2D 游戏时,它充满了细微的调整,而且本来可以有很大的改进。我确实想用 3D 编写程序,但我认为我会从 2D 游戏中提取好的部分并从头开始用 3D 编写它。好处? : 把所有的坏东西都扔掉,把好的东西留着。 - 另请注意,您错过了一个问题。也许这应该是社区 wiki,但我会将这个决定留给 SO 大师

标签: c# rad


【解决方案1】:

您真的应该咬紧牙关,看看您提到的其中一个框架。

SDL 相当不错,但老实说,如果您只想开始编写游戏,XNA 是令人难以置信的。

如果您已经在 C# 方面有经验,您可以按照在线教程进行操作,但只需阅读一本有关 XNA 的书就足以让您真正开始学习。

【讨论】:

    【解决方案2】:

    评论太长了,但是...您的游戏物理世界几乎应该独立于您用来查看它的视图类型。例如,RTS(比如魔兽争霸 III)提供 3D 视图和“迷你地图”的情况并不少见。如果你仔细想想,2D 的《魔兽争霸 1》与《魔兽争霸 3》(它是假 3D,但使用真实 3D 表示)并没有太大区别。

    另一个例子,你在谈论观看某个角色行走:这与 CounterStrike 没有什么不同(好吧,在 CS 中你老兄,但无论如何),你有你的 3D 视图 也是一个小地图。除了游戏玩法,我肯定可以只使用我的小地图在“Dust”(最著名的 CS 地图之一)周围走动:我不需要 3D 视图来四处走动(现在当然要瞄准我不能使用小地图)。

    在很多游戏中,“物理世界”与“3D世界”是不一样的:否则不同配置的人将无法玩网络游戏。

    另一个 CounterStrike 示例:我有一个非常老的蹩脚 celeron 和一个蹩脚的显卡,几乎不足以运行游戏,所以我修改了游戏,为角色使用“低多边形”模型(这大大提高了渲染速度并因此使游戏在我蹩脚的配置上非常可玩)。我仍然可以玩网络游戏。为什么?因为改变视图世界不会改变物理世界

    所以“视图”确实不应该过多地影响您的模型,因为视图是一个细节。现在当然你必须以某种方式决定你想要什么:但是如果你提到的“老兄”可以使用 2D 自上而下视图以及等距视图以及“类似 FPS”的 3D 视图来跟踪,那么无论如何,以与视图完全无关的方式模拟您的“物理”。这样您就可以从简单的东西开始:2D 视图,使用像素(如 CounterStrike 或魔兽争霸 3 小地图)。稍后您可以开始添加 3D 视图。

    现在你需要使用什么样的世界取决于你想要什么:哎呀,有“2D 物理/3D 视图游戏”、“3D 物理/2D 视图游戏”、“2D 物理/2.5D 视图游戏” (如果您不了解视频游戏开发中的“2.5D”术语,则为 GIYF)等。

    我的观点是:视图与模型/物理无关(再说一次,否则人们无法玩反恐精英或魔兽的网络游戏)。

    【讨论】:

      【解决方案3】:

      我不是游戏程序员,但我知道 2D 和 3D 物理问题建模之间的差异是巨大的。

      我同意从 2D 开始是个好主意,但不要指望能够在 3D 版本中重用大部分代码。 3D 是另一种动物。

      【讨论】:

      • 但是您将能够重复使用您的经验。
      • 当然。发现 3D 要复杂得多,请不要感到惊讶。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      • 2015-11-03
      • 2016-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多