一个小团队应该为他们的第一场比赛选择什么,当他们准时不足但有雄心壮志的时候?我是一名经验丰富的程序员,但在此之前还没有做任何游戏编程。我的设计师非常有才华和艺术,大约一年前他一直在使用3D,但他没有这样做,因为他可能需要一些时间再学习它,我不确定他是否能够做到尽管他的平面设计技巧非常出色,但在这方面做得很好。
我们主要关心的是尽快完成游戏,并且轻松完成游戏,因为这是我的第一个游戏编程项目。与此同时,我们不希望有任何可能阻碍我们以后进步的限制,或者以某种方式使游戏变得无趣。
例如,我了解到某些动画在2D中是不可能的,例如旋转等。我希望能够让玩家的角色变成动物,并且必须有射击怪物的能力, (比如射箭并看到它飞过并击中对方)。这些东西在2D中是否可行?
将来,如果我们想从3D转到2D,是否可以在不完全重写游戏的情况下进行?
答案 0 :(得分:9)
您不必使用3D来实现“3D外观”。诸如旋转,运动或变换之类的事物可以被预先记录或预渲染为动画或图像序列并且无缝地集成到2D游戏中。 2D中唯一不可能的就是在你的“游戏空间”中自由导航(比如走路或自由飞行,任意转动等)。
然而,在决定使用2D或3D时,主要关注的应该是游戏玩法。有些游戏绝对需要3D(射击游戏,模拟游戏),而其他游戏则完美无需(冒险,谜题......)。所以你实际上不必决定,而是选择更适合你的游戏理念。
就个人而言,如果可能的话,我会在第一次尝试游戏时避免使用3D,以消除随之而来的所有限制和麻烦。
使用3D时,您通常需要决定3D框架,这将严重影响您的软件设计,游戏外观和整体性能。例如,Java3D带来了一个你必须调整的复杂类结构。 并且需要付出很多努力才能完成3D工作。旋转正方形等简单的事物演变成包含四元数的矩阵运算。每个效果都必须在复杂的3D世界中完成,并且以这样的方式使其2D投影外观以您想要的方式呈现。 更不用说3D应用程序经常遭受非常难以克服的陈规定型外观。
在2D中,你实际上避免了复杂性的一个方面。您可以按照预期的方式完成所有操作,您可以使用标准图形应用程序和打开文件格式来简化设计人员与开发人员之间的工作流程。许多伪3D效果,如视差运动,景深和预渲染的艺术作品,可以在2D世界中获得惊人的外观。
答案 1 :(得分:5)
你应该去2D。您已说明采用此方法的几个原因:
不要害怕接受限制:虽然3D可能会给你很多可能性,2D可能会带来更有创意的工作!
答案 2 :(得分:3)
我会考虑几个因素:
即使您想要3D方式,您仍然可以制作2D游戏(有时称为2.5D或伪3D)。还有一些不错的第三方框架,用于Java中的2D和3D内容。您不必使用java2D / java3D。
答案 3 :(得分:2)
根据您的要求,我会选择2D。您有更多工具可供选择。更多可用的艺术家合同人才......资产管道更简单。最终,这将完全取决于游戏的优点。对于普通用户而言,3D有时更难以找到。
根据您的概念,在2D中旋转和变形是完全可能的。你甚至可以考虑使用伪三维方法ala Paper Mario ..
如果您在设计代码结构时考虑到这一点,那么从2D迁移到3D应该不是主要问题。 ..
答案 4 :(得分:2)
我也会推荐2D。 3D游戏对用户的计算机的图形要求更高,并且在2D中很多事情如碰撞检测都要简单得多。您甚至可以在3D中制作角色模型,然后将它们投影到2D以制作实际游戏的精灵。 Puzzle Pirates(http://www.puzzlepirates.com/)采用这种方法,在一致的照明等方面效果非常好。
答案 5 :(得分:1)
我认为编写2D或完整的3D游戏需要一种完全不同的设计方法,以后不能轻易修改:SUN为这两个开发决策提供Java 2D API和Java 3D API。 对于截止日期紧张的第一场比赛,我会投票给2D版本。如果游戏玩法很有趣并且设计很好,那么3D不是必须的。