选择哪一个:Java 游戏的 2D 或 3D
当时间紧迫但雄心勃勃的小团队的第一场比赛应该选择什么? 我是一名经验丰富的程序员,但在此之前从未做过任何游戏编程。 我的设计师非常有才华和艺术天赋,他大约一年前就开始使用 3D,但此后就再也没有做过,所以他可能需要一些时间才能再次学习它,我不确定他是否能够做到尽管他的图形设计技能在其他方面非常出色,但他在这方面做得很好。
我们最关心的是尽快完成游戏,而且要轻松完成,因为这是我的第一个游戏编程项目。 同时,我们不希望有任何限制可能会阻碍我们以后的进步,或者在某些方面使游戏变得不有趣。
例如,我了解到某些动画在 2D 中是不可能的,例如旋转等。我希望能够让玩家的角色能够变身为动物,并且必须能够向怪物射击(例如射击一支箭,看到它飞过并击中另一个人)。 这些事情在二维中可能吗?
未来如果我们想从3D转到2D,是否可以不完全重写游戏?
What should a small team choose for their first game, when they are low on time but have big ambitions? I'm an experienced programmer, but haven't done any game programming before this. My designer is very talented and artistic, he has worked with 3D about an year ago but hasn't done it since so it could take him some time to learn it again, and i'm not sure if he'll be able to do a good job at it even though his graphic design skills are terrific otherwise.
Our primary concern is to get the game finished as quickly as possible, and also to do it easily since this is my first game programming project. At the same time, we don't want to have any limitations that might hinder our progress later on, or otherwise make the game not fun in certain ways.
For example, i learnt that certain animations aren't possible in 2D such as rotation etc. I would like the ability to have the player's character be able to morph into animals and there must be the ability to shoot at the monsters, (like shooting an arrow and seeing it fly through and hit the other person). Are these things possible in 2D?
In the future, if we wanted to go from 3D to 2D, would it be possible without fully rewriting the game?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您不必使用 3D 来实现“3D 外观”。 旋转、运动或变换等内容可以预先录制或预渲染为动画或图像序列,并无缝集成到 2D 游戏中。
2D 中唯一不可能的就是在“游戏空间”内自由导航(例如自由行走或飞行、任意转向等)。
然而,在决定 2D 或 3D 时,主要考虑的应该是游戏玩法。 有些游戏绝对需要 3D(射击游戏、模拟游戏),而另一些游戏则完全不需要 3D(冒险游戏、解谜游戏……)。 因此,您实际上不必做出决定,只需选择更适合您的游戏创意的即可。
就我个人而言,如果可能的话,我会避免在您的第一次游戏尝试中使用 3D,以消除随之而来的所有限制和麻烦。
使用 3D 时,您通常必须决定使用 3D 框架,这将严重影响您的软件设计、游戏外观和感觉以及整体性能。 例如,Java3D 带来了一个复杂的类结构,您必须适应它。
为了让 3D 东西真正发挥作用,我们付出了很多努力。 像旋转正方形这样的简单事情会演变成包含四元数的矩阵运算。 每个效果都必须在复杂的 3D 世界中完成,并以这样的方式使其 2D 投影外观达到您的预期效果。
更不用说 3D 应用程序通常具有非常刻板的外观,很难克服。
在 2D 中,您实际上避免了一个维度的复杂性。 您可以按照预期的方式完成所有操作,可以使用标准图形应用程序和开放文件格式来简化设计人员和开发人员之间的工作流程。 许多伪 3D 效果(如视差运动、景深和预渲染艺术作品)可在 2D 世界中呈现令人惊叹的外观。
You don't have to use 3D to allow for a "3D look". Things like rotations, motions or transformations can be prerecorded or prerendered as animations or image sequences and seamlessly integrated into a 2D game.
The only thing that is not possible in 2D is to navigate freely within your "game space" (like walking or flying freely, turning arbitrarily etc.)
The main concern, however, when deciding for 2D or 3D should be the gameplay. There are games that absolutely need 3D (shooters, simulations), while others do perfectly without (adventures, puzzles, ...). So you don't actually have to decide but to choose the better fit for your game idea.
Personally, I'd avoid using 3D in your first game attempt if possible to eliminate all the constraints and hassles that come with it.
When using 3D you typically have to decide for a 3D framework which will heavily influence your software design, game look and feel and overall performance. Java3D for example brings a complicated class structure that you have to adjust to.
And a lot of effort goes into making that 3D stuff work at all. Simple things like rotating a square evolve into matrix operations incorporating quaternions. Every effect has to be done in the complex 3D world, and in such a way that its 2D projected look turns out the way you intended it.
Not to mention that 3D applications often suffer a very stereotypical look that is very hard to overcome.
In 2D, you literally avoid one dimension of complexity. You do everything exactly the way it is supposed to look, you can use standard graphic applications and open file formats to simplify the workflow between the designer and the developer. And a lot of pseudo-3D effects like parallax motion, depth of field and prerendered artwork allow for astonishing looks in a 2D world.
你应该去二维。 您已经阐述了采用这种方法的几个原因:
更多的工作。
你需要保持简单
可能,否则项目可能会失败
(你面临很大的风险!)
工艺!
自我规定的)截止日期。
需要花费大量时间,最好将其投入到改进游戏的其余部分。 想想 3D 时代之前存在的所有精彩游戏。
不要害怕接受限制:虽然 3D 可能会给您带来很多可能性,但 2D 可能会带来更多创造性的工作!
You should go 2D. You have stated several reasons to take this approach:
more work.
you need to keep it as simple as
possible, or the project may fail
(you are exposed to a lot of risk!)
crafts!
self-imposed) deadline.
3D takes a lot of time, and it will be best invested in improving the rest of the game. Think of all the awesome games that existed previous to the 3D era.
Do not fear to accept restrictions: whilst 3D might give you lots of possibilities, 2D may result in more creative work!
我会考虑几个因素:
即使您想走 3D 方式,您仍然可以制作 2D 游戏(有时称为 2.5D 或伪 3D)。 此外,还有一些不错的第三方框架,可用于 Java 中的 2D 和 3D 内容。 您不必使用 java2D/java3D。
I would considre a couple of factors:
Even if you would like to go the 3D way, you can still make a 2D game (sometimes called 2.5D or pseudo 3D). Also there are some nice third party frameworks out there for both 2D and 3D stuff in Java. You don't have to use java2D/java3D.
鉴于您的要求,我会选择 2D 。 您有更多工具可供选择。 更多可用的人才来签订艺术品合同..并且资产管道也更简单。 最终,一切都将取决于游戏本身的优点。 3D 有时对于普通用户来说更难理解。
根据您的概念化内容,旋转和变形在 2D 中应该是完全可能的。 您甚至可以考虑采用伪 3D 方法,就像纸片马里奥一样。
如果您在设计代码结构时考虑到这一点,那么从 2D 转向 3D 应该不是一个主要问题。 ..
Given your requirements, I'd choose 2D . You have more tools to choose from . more available talent to contract for artwork .. and the asset pipeline is simpler. In the end it's going to be all about how good the game is on its own merits. 3D is sometimes more difficult for your average user to figure out.
Depending on what you are conceptualizing, rotations and morphing oughta be quite possible in 2D. You might even consider a pseudo-3d approach ala Paper Mario ..
Moving from 2D to 3D should not be a major issue if you design your code structure with that in mind. ..
我也推荐2D。 3D 游戏对用户计算机的图形要求更高,而碰撞检测等许多事情在 2D 中要简单得多。 您甚至可以制作 3D 角色模型,然后将其投影为 2D,以制作实际游戏的精灵。 Puzzle Pirates (http://www.puzzlepirates.com/) 采用了这种方法,并且在一致的照明等方面。
I would recommend 2D as well. A 3D game will be more graphically demanding on the user's computer, and many things like collision detection are significantly simpler in 2D. You could even make your character models in 3D and then project them down to 2D to make the sprites for the actual game. Puzzle Pirates (http://www.puzzlepirates.com/) takes this approach and it works very well in terms of consistent lighting, etc.
我认为编写 2D 或全 3D 游戏需要完全不同的设计方法,以后无法轻松修改:SUN 提供了 Java 2D API 和 Java 3D API 的两个开发决策。
对于第一款时间紧迫的游戏,我会投票支持 2D 版本。 如果游戏玩法有趣且设计精美,那么 3D 就不是必须的。
I think writing a 2D or a full 3D game needs a completely different design approach what cannot be modified easily later: SUN provides a Java 2D API and a Java 3D API for the two development decisions.
For the first game with tight deadline I would vote for a 2D version. If the gameplay is interesting and the design is nice then the 3D is not a must.