三维游戏编程

时间:2009-11-27 04:22:25

标签: language-agnostic

他们使用什么编程语言/语言制作游戏,比如Bioware的Dragon Age Origins和其他一些像“使命召唤”这样的3D游戏?

如果我想进行3D游戏编程,我该从哪里开始?有甚至简单的教程吗?我想为PC游戏做三维游戏编程:)

13 个答案:

答案 0 :(得分:6)

C ++是一个坚实的开端。

Game Institute有不错的课程(收费)。这绝不是微不足道的。从基础知识(面向对象编程,三维动画,线程等)开始,你就可以到达某个地方。

记得玩得开心。它使学习更容易。

答案 1 :(得分:6)

大多数主要游戏都是用C ++编写的。这并不意味着您必须使用C ++。对于indy游戏,如果您对此更熟悉(或者想要相对轻松地在xbox 360上播放最终创作),也可以考虑使用XNA进行C#。 XNA也有免费的好处。

GarageGames也是一个相对备受推崇的系列游戏引擎(它们不是免费的,但与大多数游戏相比都非常实惠),包括为XNA添加标准功能的引擎,所以你不必从头开始写。

但是,MPelletier的建议很好。游戏开发非常复杂,即使是简单的游戏也是一项艰巨的任务。首先要掌握基础知识,我强烈建议您开始使用2D游戏。

答案 2 :(得分:6)

我不想沮丧,但我也不想撒谎。创造最简单的2D游戏是一项重大壮举。如果您要自己编写游戏代码,可能需要学习以下内容:

  • 计算机图形学中使用的一般概念和技术。
  • 网络编程(如适用)
  • 音频编程和数字信号处理理论。
  • 数学中的线性代数,三角学和几何分支
  • AI概念,如模糊逻辑,有限状态机或神经网络。

更不用说你需要扎实的编程背景。大多数较大的游戏开发者都使用C ++,这在性能至关重要时是一个不错的选择。但是一种尺寸并不适合所有人。我建议你看一下C ++,Python和Java,找出你喜欢使用哪一个。

现在,这可能会令人失望,但需要说明一下。如果您刚刚开始编程,那么您将不会长时间制作3D游戏。我在2002年学习了C ++,我仍然学习使用编程语言的新方法。有很多书名为在Y周内自学编程语言X 。不要相信谎言。在那个时间跨度内,人们无法学到任何复杂的东西。我想说的是,不要匆忙!耐心就是一切,没有免费的午餐。

当你终于掌握制作游戏的知识时,请从简单开始。即使编写使用ascii艺术图形的Nethack克隆,也可以为您提供新的体验。你的第一场比赛应该是2D。在两个维度上工作要简单得多,当你准备好进一步推进时,很多数学都会很好地扩展到三个维度。

答案 3 :(得分:3)

我可以建议采用不同的方法吗?我将假设3D图形不是必不可少的。我相信如果你真的刚开始,直接进行3D渲染可能会有点复杂。 2D更简单。

因此,按照这些简单的步骤,预计它会持续约两个小时左右:

  1. 下载(并安装)Python
  2. 下载(并安装)PyGame
  3. 下载(并安装)Notepad++,您将使用它来编写代码,并使用.py扩展名保存(不是.txt)
  4. 前往Line By Line Chimp Tutorial(精彩教程!)
  5. 在您阅读并尝试过之后,您应该能够以复杂程度创建自己的东西,例如俄罗斯方块。我创建了一个asteroids clone

    如果您遇到问题,请不要犹豫,在Stackoverflow上返回此处寻求帮助。我通过那个想要“尝试游戏编程”的教程帮助了一些朋友,并且应该能够帮助你完成任何你可以设法阻止的事情。

    现在在键盘上疯狂!在你知道它之前,你将创造龙腾世纪2!

答案 4 :(得分:2)

C ++是标准语言,但没有大型项目只使用一种语言。高级工作人员将在某些地方使用汇编,图形程序员经常会使用适合系统的任何着色器语言。无论是从事工具还是构建系统的人,通常都会使用脚本语言,如Python,Perl,Bash / Batch脚本或其他语言。游戏程序员通常也会使用游戏脚本语言,范围从Lua,Python或UnrealScript等标准到为该引擎创建的内部脚本语言。

Game Institute - 我对这个地方有着复杂的感觉......他们提供了一个专业课程,你很难找到其他地方;然而,一位朋友向我展示了一些来自这个地方的测试,这些测试的答案最好是过时的,或者最糟糕的是错误的。我不建议反对他们,但事后要保持开放。

Gamedev.net - 成熟的游戏编程网站。伟大的社区,大量的文章。他们在论坛上有一些关于如何开始的好帖子。即使作为专业人士,我仍然访问这个网站。

答案 5 :(得分:2)

如果您想要使用托管路由,请尝试使用Microsoft的XNA Game Studio。我认为这是一个很好的起点,你可能不会对一些更强大和更复杂的技术感到沮丧(比如纯粹的DirectX或使用C ++ / WIN32的OpenGL编程)。很多东西都被抽象掉了,所以你可以专注于实际创造一些东西。哎呀,你甚至可以制作一些最终可以在Xbox Live上运行的东西。它可以自由地开始开发,并且肯定会有很多资源可以帮助你入门。

答案 6 :(得分:2)

看看irrlicht。它是一个非常好的游戏引擎,它易于使用,最好的免费。引擎是c ++但是我记得我也看过它的.net包装器。

可能它不像“使命召唤”等那样强大的引擎。但假设你只是开始游戏开发,你将永远不需要这样的先进功能。你可以使用irrlicht建立非常体面的游戏。该网站也没有很少的教程和活跃的社区。

答案 7 :(得分:2)

看看Unreal Development Kit。可以为独立开发者免费提供用于为Unreal Tournament和Gears of War提供动力的相同引擎,并负责制作游戏中真正艰苦的工作。

这是学习术语和概念的好方法,同时通过脚本逐步调整您的软件开发领域。一旦您对如何使用几何,纹理,粒子效果和照明感到满意,那么就冒险进入XNA领域。在UDK和XNA的情况下,您都可以找到优秀的社区和数十种教程。

答案 8 :(得分:1)

http://www.garagegames.com拥有开始游戏开发的良好资源。

http://en.wikipedia.org/wiki/GarageGames

答案 9 :(得分:1)

有一些很棒的C ++游戏编程框架可以帮助您入门。 DarkGDK是一个伟大的,我已经使用它,它需要一些用C ++制作游戏的痛苦。

答案 10 :(得分:1)

通常,专业游戏主要是用C ++开发的。但是,除非你是一位经验丰富的C ++开发人员,否则我建议你在学习游戏开发的细微差别的同时选择一种你更熟悉的语言,否则你可能会发现自己正在与C ++的语法和一般性质作斗争,而不是与游戏相关的概念细节。节目。 C#和XNA,甚至是现已解散的Managed Direct X,是一个很好的开始方式,正如一些人已经提到的那样。有关C#中游戏开发的大量信息可以在网上和印刷品中找到,并且有很多社区可以在您学习的同时为您提供支持,因此可以利用它们。

另请注意,虽然XNA是一个更完整的游戏开发框架,但还有许多其他可用的库,如Ogre,OpenGL和Irrlicht,涵盖从音频到物理的所有内容。

尝试通过日益复杂的项目了解游戏基础知识并建立自己的体验。这并不是说不可能将大型项目作为您的第一个项目,但根据我的经验,较小的项目往往会更加规律地完成。你完成的每一场比赛都将建立你的自信,经验和技能。

我建议您查看http://www.GameDev.net,这些资源非常宝贵。 Riemers.net还包含一些关于XNA和Direct X的精彩教程。

最后尽量不要被游戏开发所需的广泛理解所沮丧。当你在这个领域开始时,事情可能看起来势不可挡但是要记住,即使是行业大师也从某种程度上开始时没有任何知识。凭借坚持不懈,充满激情和耐心,您将掌握创造真正愉快游戏所需的技能。

祝你好运。

答案 11 :(得分:0)

开发这类游戏需要具有强大图形库的面向对象语言。

这些游戏可以通过以下方式完成:

  1. C ++:DirectX(使用VC ++),OpenGL,SDL
  2. C#:DirectX,OpenGL C#绑定(不推荐这个)
  3. Java:Java3d(已绑定到OpenGL),JOGL(Java OpenGL)
  4. 如果您有兴趣了解3D图形和C ++,请a look at this

答案 12 :(得分:0)

尝试查看开源游戏。 This game最近刚刚开源,它非常先进。它已经采用了很好的物理,视觉效果和剪切场景,因此这可能是一个很好的学习机会。