三行代码  ›  专栏  ›  技术社区  ›  Community wiki

我什么时候应该进入GUI/游戏开发?

  •  4
  • Community wiki  · 技术社区  · 2 月前

    我是一个业余的控制台C++开发人员。我曾经处理过指针、数组、std::vectors、std::string、类和一些数据结构,包括堆栈和二进制树。我在线性代数和几何方面有一些经验,并且知道物理的基础知识。我没有使用win32、QT、openGL、DX9、OGRE等的经验。我仍在学习OOP中更有价值的部分,比如多态性。

    我刚开始用C++作为第一语言,没有其他语言的经验。我可能会使用C,但我需要习惯于操作char*和正则数组(而不是初始化变量)。

    我的问题是,根据我的经验,我什么时候应该进入GUI应用程序/游戏应用程序的开发?我需要在数学的某些领域更加坚定地站稳脚跟,适应win32,习惯SDK吗?

    如果这个问题太主观了,你无法轻松地给出建议,那么你是什么时候开始开发GUI/游戏的,你采取了哪些步骤来让自己适应它?

    编辑此内容,使其被碰撞。其他人有什么意见吗?

    4 回复  |  直到 14 年前
        1
  •  5
  •   JoshJordan    14 年前

    注意:我是一个非常“边做边学”的人,所以对此持谨慎态度。

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

    我建议下载 Visual C# Express Microsoft's XNA Game Studio 3.0

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

    当然,框架中会有你不理解的东西。在他们来的时候处理他们——使用谷歌并在这里提问,直到你真正理解他们。一步一个脚印,你会很好的。

        2
  •  1
  •   Charles    14 年前

    我个人建议您从Win32开始;尝试创建一个基本窗口&从那一点出发。试着制作一个简单的2D游戏引擎,你可以在其中制作像国际象棋这样的游戏。这也可以作为你可以编写人工智能的项目;这是游戏开发的另一部分!

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

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

    我不会和Xna浪费时间,这只是炒作P

        3
  •  1
  •   haggag    14 年前

    你似乎已经掌握了开始游戏编程的编程语言的基本知识。我支持你在已经获得的基础上再接再厉,比如学习OOP,并用指针练习更多。我建议你继续前进,不要为了实现目标而学习另一种工具“编程语言”。

    因此,如果你对游戏编程感兴趣,我建议你选择一个C++框架并进行开发,你肯定会通过使用它来学习更高级的编程。

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

    而且 HGE 是另一个好的2D引擎。

    总之,用你现在拥有的东西来“做”更多的编程。这就是你的进步,你会对结果感到惊讶。当“动手”时,不要被其他语言和工具所干扰,你已经知道一些类似的东西,同时,当学习一个帮助你建立在当前知识基础上的工具时,在你的情况下,我指的是C++引擎,不要选择非常复杂的工具(IMO,如OpenGL、DirectX、Win32等),因为如果不使用它,你最终会花时间学习该工具,而且很有可能会感到沮丧。你以后总是可以学习低级的东西,这样会更有意义。

        4
  •  1
  •   fixmycode    14 年前

    因为这个问题有点主观,因为每个程序员都有自己喜欢的库,所以我推荐 SDL 由于它简单、结构良好、非常完整,有很多教程可以指导您从制作简单的窗口到复杂的三维操作。一切都可以轻松实施。

    顺便说一句,如果你想开始编程游戏,我也建议你读一些关于游戏基础知识(初始化、游戏循环、更新周期)的教程或书籍,这样你就知道如何把你的知识投入到好的工作中。