我想开发一个包含 3D 世界的游戏,其中简单的 3D 形状相互交互,其中涉及“真实”的物理。
我没有视频游戏编程的经验,我愿意学习,所以我想问一下你会使用哪种编程语言和/或库来制作一个由相互交互的 3D 形状组成的游戏,并且像物理一样“真实” ?
我知道这个问题有多个答案,但我想了解目前最常用的技术是什么。
我想开发一个包含 3D 世界的游戏,其中简单的 3D 形状相互交互,其中涉及“真实”的物理。
我没有视频游戏编程的经验,我愿意学习,所以我想问一下你会使用哪种编程语言和/或库来制作一个由相互交互的 3D 形状组成的游戏,并且像物理一样“真实” ?
我知道这个问题有多个答案,但我想了解目前最常用的技术是什么。
看看子弹:
Bullet 3D 游戏多物理库提供最先进的碰撞检测、软体和刚体动力学。
该库在 ZLib 许可下可免费用于商业用途和开源。
您应该查看 SDL 库 ( http://www.libsdl.org ),因为它支持多个平台并具有多种编程语言的绑定。它还支持 OpenGL。
祝你好运!
用 C# 编写的 XNA 游戏工作室。它比 C++ 和 DirectX/OpenGL 更容易(主观)学习。 http://creators.xna.com/
这里有另一个关于它的线程。当我找到它时会链接。
我建议您从使用 Flash 开始。这是一个创建简单游戏的好环境,但当您希望获得更多花哨时,它有很好的 3D 和物理引擎可用(例如Papervision3D和Fisix )。
仅供参考,有一个非常有趣的开源 BSD 许可项目,名为OpenSim ,它包括在C# 和 Mono中重新创建服务器端SecondLife基础设施。
它似乎与您的朋友和您想做的事情相对应。虽然仍处于 Alpha 阶段,但它相当稳定,绝对值得一试。
简单而强大的东西(至少根据我的口味:))是Apocalyx。
完全开源,大量demo,大量教程,可直接处理多种常用格式(如MD2、Cal3D或BSP),让您可以使用高级工具来创建自己的世界。
用 C++ 编写,可在 Lua 中编写脚本(有专门的脚本编辑器)。
我使用 David Brackeen 的“Developing Games in Java”一书为 Windows 开发了几个 Java 平台游戏。它确实涵盖了 3D 的东西,但我还没有到那一步。
我建议研究微软的 XNA 框架。这将涵盖它的“游戏”方面。至于物理,我建议看看子弹引擎,虽然有很多可供选择。
用于性能的 C/C++ 和用于脚本的Lua 。
Lua 简介 http://www.gamedev.net/reference/programming/features/lua/
Blitz 非常擅长快速启动和运行。
Blitz3D 支持 3d 卡片等等。 http://shareit1.element5.com/product.html?productid=147747
它也足够强大,可以让“真实”游戏由它驱动
SDL 是事实上的游戏起点,无论如何在某些平台上也是如此。它会让你快速启动并运行(它可以在 linux 上运行)。
在那里,您可以在 sourceforge 中搜索一些:例如,PLIB、Ogre、CrystalSpace。他们都很好,虽然我不知道他们在过去几年里进展如何。
如果您想运行具有良好物理性能的纯实时 3D,我建议使用 C++ 与例如 OpenGL。
我建议您在http://nehe.gamedev.net/下查看有关 OpenGL 的教程。您还可以在http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=30找到碰撞检测系统的示例
如果您实际上不擅长实时的东西,您可能可以使用 C++ 并使用“更简单”的编码语言。
有很多引擎可供您使用。您需要开始研究哪一个适合您的游戏设计。
大多数商业游戏都是用 C++ 编写的,并带有一些其他语言来完全绑定它。其他语言提供不同的特性,例如 Java 对移动电话的可移植性。
如果您完全没有编程经验并且希望获得真正快速的视觉效果,那么您应该查看诸如 DarkBasic 或 Blitz3D 之类的语言。
也就是说,这些语言有相当大的限制,如果你也在考虑学习编程,你可能会想要使用 Java 或 C# 的不同用户创建的 API,例如 JOpenGl、Jogre、XNA、SDL.Net 或 Irrlicht.Net . 它们将允许您在创建游戏时学习对象编程的基础知识。
以下是不同的链接:
爪哇:
C# :
如果您熟悉 Delphi,请尝试使用 GlScene。