游戏开发后期从 2D 过渡到 3D
我想开发一款游戏,但为了快速制作原型,我希望让它尽可能简单,所以我会在 GDI+ 和 WinForms 中以自上而下的 2D 方式完成所有工作(嘿,我喜欢它们! ),这样我就可以专注于游戏本身的逻辑和架构。
我考虑将整个游戏逻辑(服务器)放在一个程序集中,其中 WinForms 应用程序将成为该游戏的客户端,如果/当时间合适时,我会编写一个 3D 客户端。
我很想使用 XNA,但我还没有真正研究过它,所以我不知道它是否会花费太多时间来加快速度 - 我真的不想花太多时间做其他事情比游戏逻辑更重要,至少在我有灵感的时候。但从 2D 过渡到 3D 时,我不必放弃一切并转移到新平台。
另一个想法是克服它并学习 XNA/Unity/SDL/至少达到该水平的东西,这样我就可以制作与 GDI+ 中相同的 2D 版本,并且我不必再担心切换框架了。
这么说吧,这款游戏是那种你从后面观察一个家伙、你在游戏世界中奔跑并与物体互动的游戏。所以鸟瞰视角目前是可行的。
谢谢。
I'd like to work on a game, but for rapidly prototyping it, I'd like to keep it as simple as possible, so I'd do everything in top-down 2D in GDI+ and WinForms (hey, I like them!), so I can concentrate on the logic and architecture of the game itself.
I thinking about having the whole game logic (server) in one assembly, where the WinForms app would be a client to that game, and if/when the time is right, I'd write a 3D client.
I am tempted to use XNA, but I haven't really looked into it, so I don't know if it won't take too much time getting up to speed - I really don't want to spent much time doing other stuff than the game logic, at least while I have the inspiration. But I wouldn't have to abandon everything and transfer to new platform when transitioning from 2D to 3D.
Another idea is just to get over it and learn XNA/Unity/SDL/something at least to that level so I can make the same 2D version as I could in GDI+, and I won't have to worry about switching frameworks anymore.
Let's just say that the game is the kind where you watch a dude from behind, you run around the gameworld and interact with objects. So the bird's eye perspective could be doable for now.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您真的应该硬着头皮看一下您提到的框架之一。
SDL 相当不错,但说实话,如果您只想开始编写游戏,XNA 是令人难以置信的。
如果您已经具备 C# 经验,则可以按照在线教程进行操作,但只需阅读一本有关 XNA 的书就足以真正让您入门。
You should really just bite the bullet and take a look at one of the frameworks you mentioned.
SDL is pretty good, but honestly, if you want to just get down to writing your game, XNA is incredible.
If you are already experienced in C#, you could follow the on-line tutorials, but picking up just a single book on XNA is enough to really get you going.
对于评论来说太长了,但是......您的游戏物理世界应该几乎独立于您用来查看它的视图类型。例如,RTS(例如《魔兽争霸 III》)同时提供 3D 视图和“迷你地图”的情况并不罕见。如果你想一想,2D 的《魔兽争霸 1》与《魔兽争霸 3》(虽然是假 3D,但用真实 3D 表示)并没有什么不同。
另一个例子,您正在谈论观看某个角色行走:这与《反恐精英》没有什么不同(好吧,在 CS 中您是,但无论如何),您同时拥有 3D 视图和
在很多游戏中,“物理世界”与“3D世界”并不相同:否则具有不同配置的人将无法玩网络游戏。
另一个《反恐精英》的例子:我有一个非常旧的蹩脚赛扬,带有蹩脚的显卡,几乎不足以运行游戏,所以我修改了游戏以使用角色的“低多边形”模型(这大大提高了渲染速度,因此使游戏在我蹩脚的配置上非常可玩)。而且我仍然可以联网玩。为什么?因为改变视角世界不会改变物理世界。
因此,“视图”确实不应该对模型产生太大影响,因为视图是一个细节。当然,现在您必须以某种方式决定您想要什么:但是如果您提到的“家伙”可以使用 2D 自上而下视图以及等距视图以及“类似 FPS”的 3D 视图进行跟踪,那么无论如何,以与视图完全无关的方式模拟你的“物理”。这样您就可以从简单的事情开始:使用像素的 2D 视图(如《反恐精英》或《魔兽争霸 3》小地图)。稍后您可以开始添加 3D 视图。
现在你需要使用的世界类型取决于你想要什么:哎呀,既有“2D物理/3D视图游戏”,“3D物理/2D视图游戏”,“2D物理/2.5D视图游戏”(GIYF如果你不知道视频游戏开发中的“2.5D”术语)等等。
我的观点是:视图与模型/物理无关(再一次,否则人们无法玩《反恐精英》或《魔兽争霸》的网络游戏) 。
This too long for a comment but... Your game physics world should pretty much be independent of the type of view you're using to see it. As an example, it's not uncommon for RTS (like say Warcraft III) to offer both a 3D view and a "mini map". If you think about it, Warcraft 1 that was 2D isn't that different from Warcraft 3 (which is fake 3D, but represented using real 3D).
Another example, you're talking about watching some character walking: it's not unlike CounterStrike (well, in CS you are the dude but anyway), where you have both your 3D view and also a minimap. And gameplay aside, I sure can walk around "Dust" (one of the most famous CS map) using only my minimap: I don't need the 3D view to walk around (now of course to aim I can't use the minimap).
In a lot of game the "physics world" is not the same as the "3D world": otherwise people with different configs wouldn't be able to play in a network game.
Another CounterStrike example: I had a really old crappy celeron with a crappy graphic card that was barely enough to run the game, so I modded the game to use "low polygons" models for the characters (this greatly enhanced the rendering speed and hence made the game very playable on my crappy config). And I still could play networked. Why? Because changing the view world doesn't change the physics world.
So the "view" really shouldn't be influencing too much your model because the view is a detail. Now of course you have to somehow decide on what you want: but if the "dude" you mentioned could be followed using a 2D top-down view as well as an isometric view as well as an "FPS-like" 3D view, then by all mean model your "physics" in a way that is completely unrelated to the view. That way you'll be able to start with something simple: 2D view, using pixels (like a CounterStrike or a Warcraft 3 minimap). And later on you can start adding a 3D view.
Now the kind of world you need to use depends on what you want: heck, there are both "2D physics / 3D view games", "3D physics / 2D view games", "2D physics / 2.5D view games" (GIYF if you don't know about the '2.5D' term in videogame development), etc.
My point is: the view is unrelated to the model/physics (once again, otherwise people couldn't be playing networked game of CounterStrike or Warcraft).
我不是游戏程序员,但我知道 2D 和 3D 物理问题建模之间的差异是巨大的。
我同意从 2D 开始是个好主意,但不要指望能够在 3D 版本中重用大部分代码。 3D 是一种不同的动物。
I'm not a game programmer, but I know that the difference between modeling physics problems in 2D and 3D is huge.
I agree that it's a good idea to start with 2D, but don't expect to be able to reuse much of that code in the 3D version. 3D is a different animal.