游戏项目开发

时间:2008-10-08 12:04:51

标签: programming-languages

我想开发一个游戏,它将包含一个3D世界,其中简单的3D形状相互交互,其中涉及物理的“真实”。

我没有电子游戏编程方面的经验,我愿意学习,所以我想问一下哪种编程语言和/或图书馆会用于一个由三维形状相互作用的游戏组成的“真实” “喜欢物理?

我知道这个问题有多个答案,但我想了解目前最常用的技术是什么。

16 个答案:

答案 0 :(得分:8)

看看Bullet

Bullet 3D Game Multiphysics Library提供最先进的碰撞检测,柔体和刚体动力学。

  • 许多游戏公司在Playstation 3,XBox 360,Nintendo Wii和PC上使用AAA游戏
  • 模块化可扩展C ++设计,包含大多数组件的热插拔
  • 为Playstation 3 Cell SPU和其他平台提供多线程支持的优化后端
  • 离散和连续碰撞检测(CCD)
  • 扫描碰撞查询
  • 使用自定义碰撞过滤进行光线投射
  • 通用凸面支撑(使用GJK),胶囊,圆柱体,圆锥体,球体,盒子和非凸三角网格。
  • 刚体动力学包括约束求解器,通用约束,布娃娃,铰链,球窝
  • 支持约束限制和电机
  • 软体支撑,包括布料,绳索和可变形
  • Bullet已集成到Blender 3D中并提供Maya插件
  • 支持导入和导出为COLLADA 1.4 Physics格式
  • 通过重新加速加速结构支持非凸三角网格的动态变形

根据ZLib许可证,该库可免费用于商业用途和开源。

答案 1 :(得分:5)

您应该查看SDL库(http://www.libsdl.org),因为它支持多个平台,并且具有各种编程语言的绑定。它还支持OpenGL。

祝你好运!

答案 2 :(得分:3)

用C#编写的XNA Game Studio。它比C ++和DirectX / OpenGL更容易(主观)学习。 http://creators.xna.com/

这里有另一个关于它的帖子。当我找到它时会链接。

答案 3 :(得分:2)

我建议您先使用Flash。这是一个创建简单游戏的好环境,但是当你希望得到更多的花哨时,它有很好的3D和物理引擎(例如Papervision3DFisix)。

答案 4 :(得分:1)

仅为了您的信息,有一个非常有趣的OpenSource BSD许可项目OpenSim,其中包括在C#和Mono中重新创建服务器端SecondLife基础架构。

这似乎与你朋友和你想做的事情相符。虽然仍处于Alpha阶段,但它非常稳定,绝对值得一试。

答案 5 :(得分:0)

我使用David Brackeen撰写的“开发Java游戏”一书开发了几个Java版平台游戏。它确实涵盖了3D内容,但我还没有那么远。

答案 6 :(得分:0)

我建议调查微软的XNA框架。这将涵盖它的“游戏”方面。至于物理学,我建议看一下Bullet引擎,虽然有很多可供选择。

答案 7 :(得分:0)

C / C ++表示性能,Lua表示脚本。

Lua简介 http://www.gamedev.net/reference/programming/features/lua/

答案 8 :(得分:0)

Blitz非常善于提升并快速运行。

http://www.blitzbasic.com/

Blitz3D支持3d卡而不支持。 http://shareit1.element5.com/product.html?productid=147747

它也足以让“真实”游戏由它提供动力

例如 http://www.zee-3.com/nakedwar/index.php

答案 9 :(得分:0)

SDL是游戏的事实上的起点,无论如何都适用于某些平台。它会让你快速启动并运行(并且可以在linux上运行)。

在那里你可以搜索sourceforge的一些:例如,PLIB,Ogre,CrystalSpace。虽然我不知道他们在过去几年里的进展如何,但他们都很好。

答案 10 :(得分:0)

如果你想运行具有良好物理效果的纯实时3D,我建议使用例如OpenGL的C ++。

我希望你能在http://nehe.gamedev.net/下查看有关OpenGL的教程。您还可以在http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=30

找到碰撞检测系统的示例

如果你实际上不是很好的实时内容,你可能可以使用C ++并使用“更简单”的编码语言。

答案 11 :(得分:0)

您可以使用a lot of engines。你需要开始研究哪一个适合你的游戏设计。

大多数商业游戏都是用C ++编写的,其他语言都是完全绑定在一起的。其他语言提供不同的特性,例如Java对移动电话的可移植性。

答案 12 :(得分:0)

如果您完全没有编程经验,并希望获得非常快速的视觉效果,那么您应该查看DarkBasic或Blitz3D等语言。

也就是说,这些语言具有相当强的优势,如果您正在考虑学习编程,您可能希望转向Java或C#的不同用户创建的API,如JOpenGl,Jogre,XNA,SDL.Net或Irrlicht.Net。它们将允许您在创建游戏时学习对象编程的基础知识。

以下是不同的链接:

DarkBasic Home

Blitz3d

Java:

JopenGL

JOGRE

C#:

XNA

SDL.net

Irrlicht.net

答案 13 :(得分:0)

简单而有力的东西(至少根据我的口味:)) Apocalyx

完全开源,大量演示,大量教程,可直接使用许多常见格式(例如MD2,Cal3D或BSP),以便您使用高级工具创建您的世界。

用C ++编写,可在Lua中编写脚本(有一个专用的脚本编辑器)。

答案 14 :(得分:0)

在C ++中,我使用了SDLGLFW;在Python中我使用了PyGamePyglet

就语言而言,如果你使用C ++,那么我肯定会建议使用像Squirrel,Lua或Python这样的东西来编写脚本,尽管用Python之类的东西编写整个游戏也会很好(如果性能在以后开始成为一个问题,你可以只编写导致C ++问题的模块 - 当然在分析之后。)

答案 15 :(得分:0)

如果您熟悉Delphi,请尝试使用GlScene。