2009-07-11 67 views
4

我是一个爱好者控制台C++开发人员。我曾经使用过指针,数组,std :: vectors,std :: strings,classes和几个数据结构,包括栈和二叉树。我有一些线性代数和几何的经验,并且知道物理的基础知识。我没有使用win32,QT,openGL,DX9,OGRE等的经验。我仍然在学习OOP中更有价值的部分,比如多态。什么时候应该进入GUI /游戏开发?

我开始使用C++作为第一语言,并且没有其他语言的使用经验。我可能可以使用C,但我需要习惯操作char *和常规数组(而不是启动变量)。

我的问题是,根据我的经验,我应该什么时候进入GUI应用程序/游戏应用程序的开发?我是否需要在数学的某些领域更加坚定自己,对win32感到舒服,适应SDK?

如果这个问题对你来说过于主观而不能很好地给出建议,那么你是什么时候进入GUI /游戏开发的,你采取了哪些步骤让自己适应它?

编辑此,所以它会被碰撞。有其他人有任何意见吗?

+0

请在投票结束前仔细阅读整篇文章,并将其称为主观。我给了你一个替代答案,请做到这一点。 – jkeys 2009-07-11 18:10:40

回答

5

警告:我是一个非常“边做边学”的人,所以请带上一粒盐。

听起来像你知道足够的编程基础知识,以跳到更现实的东西,并有足够的背景来证明这个现实项目是一个游戏。

我推荐下载Visual C# ExpressMicrosoft's XNA Game Studio 3.0

XNA是一个游戏框架,它为专业品质的C#平台搭建了很多功能(声音,精灵,3D支持等),这将是一个很好的起点。创建一个新的XNA项目并玩耍。获取一些东西出现在屏幕上,然后学习如何用用户输入来操作它。如果您对3D感兴趣,可以制作三维形状,如三角形。然后,让它旋转。然后,根据用户输入进行旋转。然后,添加其他对象和碰撞。

当然,框架中会存在一些你不明白的东西。在他们出现时解决它们 - 使用Google并在这里提问,直到您理解它们。一次只要一步,你应该会很好。

1

我个人建议你从Win32开始;尝试创建一个基本的窗口&从这一点移动。尝试制作一个简单的2D游戏引擎,您可以在其中制作象棋等游戏。这也可以作为你写AI的项目;这是游戏开发的另一部分!

完成后,下一步应该是3D。您可以使用之前编写的引擎,并将其从2D修改为3D。选择一个3D API; OpenGL或DirectX。一旦你有一个基本的引擎,开始写一个游戏。需要额外的功能?然后将其添加到引擎!

数学方面,你应该知道矩阵是什么。三角法也可以派上用场。

我不会浪费我与Xna的时间,这只是一个炒作。 :P

1

看来你已经掌握了编程语言的基本知识来开始游戏编程。我和你一起建立在你已经获得的东西上,比如学习面向对象,以及用指针练习更多。我建议你继续前进,不要转而学习另一种工具“编程语言”来实现你的目标。因此,如果您对游戏编程感兴趣,我建议您选择一个C++框架并在其上进行工作,您一定会通过使用它来学习更高级的编程。

我推荐Gosu。它没有充满高级功能,这可能是一个优势,但它有一个非常干净的设计,并以优雅和现代的方式使用C++。这对初学者来说非常友好。

另外HGE是另一个很好的二维引擎。

总结一下,通过实际上“现在就做”来进一步深入编程。这就是你的进步,你会惊讶于结果。当“这样做”不会受到其他语言和工具的干扰时,您已经知道类似的东西,并且在学习可以帮助您构建当前知识的工具的同时,就您的情况而言,我的意思是C++引擎,不要选择非常复杂的(IMO,就像OpenGL,DirectX,Win32等),因为你最终会花费时间学习不使用它的工具,并且很有可能会感到沮丧。你以后总是可以学习低层次的东西,那么它会变得更有意义。

1

由于这个问题有点主观,因为每个程序员都有一个最喜欢的库,所以我会推荐SDL,因为它很简单,结构良好,而且非常完整,有很多教程可以指导你从一个简单的窗口逐步到复杂的3D操作。一切都可以轻松实现。作为一个方面说明,如果你想开始编程游戏,我还会建议你阅读一些有关游戏基础(初始化,游戏循环,更新周期)的内容或书籍,以便你知道如何把你的知识放在好的工作上。