-1

我想创建一个有平台的游戏,有不同的楼层。每个楼层都有一些可以与之交互的建筑物和对象,并且可以通过某种方式到达其上方和/或下方的楼层。

我需要:对象(模型)加载/渲染、输入、碰撞检测和拾取。我也想坚持使用 .NET 语言

我查找了许多引擎(包括 .NET 本地引擎或带有包装器的引擎),其中许多引擎具有我需要的这些功能,而且往往是我不想要也不需要的额外功能。

我已经将图形 API 视为 DirectX/OpenGL 和其他基于这些的图形 API,但是我需要自己编写碰撞检测和拾取函数,或者绑定到诸如 Newton Physics 或 PhysX 之类的东西。

编辑:我也看过 XNA,但我看过/读过关于它的设计的混合评论。

我还考虑过编写自己的函数或使用 3rd Party Libraires 来加载/渲染以及我自己编写的进一步的碰撞检测和选择。

从纯理论的角度来看,我想把这个项目作为一个教育项目来完成,但不是那么深入或费力,我最终把头发拉了出来,穿过了许多电脑屏幕。

我的编程知识是通过 VB -> C# 和一些 C 自学的。我可以做基本的面向对象的工作(属性、继承、多态),但对构造函数、访问器和解构以及我可能没有提到的其他特性一无所知。我拥有向量和碰撞检测所需的 A 级(英语系统/高级高级(苏格兰系统)数学知识和 GCSE(英语)/高级(苏格兰)物理知识。

所以我的问题是 - 什么是最快、最具教育意义的方式,同时仍然有趣且不费力地完成这个项目 - 使用引擎并通过自定义碰撞检测学习它们的功能/图形 API 或从头开始编写所有内容和/或使用第三个图书馆来帮助我?或者我什至是以错误的心态/方法来解决这个问题,我可以指出正确的方向吗?

4

1 回答 1

1

我建议Unity3D。您可以使用像样的设计师来构建游戏,它有很多工具(物理引擎、粒子系统、渲染等)。

您可以在 Javascript、C# 或 Boo 中编写您最喜欢的行为脚本。

您可以将您的游戏发布到安卓、IOS、PS3、XBOX、WII、PC、MAC、Web Player和Flash,基本版本是免费的。

如果您想坚持使用纯 .NET,请查看 XNA

编辑:为了增加您缺乏 OOP 技能,我认为您会发现统一更容易,因为您较少关注软件工程的东西,而是专注于编写对象行为的脚本。这很有趣,你会学到很多东西。也许你不会了解场景是如何在下面渲染的,但你会获得更多的编程经验,一旦你有了这些经验,你就可以开始探索低层次的东西......

于 2013-02-28T23:24:17.933 回答