【问题标题】:Resources for learning C++ for game programming [closed]学习用于游戏编程的 C++ 的资源 [关闭]
【发布时间】:2010-11-04 10:31:23
【问题描述】:

我是 C++ 方面的新手,在游戏行业工作了几个月。我希望重返这个行业,并了解一个人需要成为一名非常优秀的 C++ 程序员(主要是因为进入游戏制作行业的竞争力有多大)。我想知道是否有任何非常好的在线网站可以对此有所帮助。基本上我正在寻找可以帮助我掌握 C++ 概念并通过练习编程示例帮助我成为一名优秀编码人员的东西。

【问题讨论】:

标签: c++ game-development


【解决方案1】:

Scott Meyers 的书籍:《Effective C++》、《More Effective C++》和《Effective STL》对你来说绝对是必不可少的。

添加到 Andrei Alexandrescu 的“现代 C++ 设计”中。

【讨论】:

    【解决方案2】:

    有人曾经说过,学习 C++ 需要 10 年。拥有 14 年的 C++ 经验并且仍然经常学习新事物,我会说这是真的。即使在我拥有丰富的经验之后,我也会犹豫称自己为 C++ 专家。不要指望一夜之间掌握它......你会经历许多阶段,你认为你会得到它,然后你会发现一个全新的世界(因为没有更好的术语;我相信理查德·道金斯将这个过程称为“意识提升”)。我已经开始接受这些顿悟中的另一个总是在我之前,因此我为什么不称自己为专家。

    也就是说,你必须练习练习练习。我将成为 Gamedev.net 的第 2 名(或第 3 名或第 4 名,无论我们现在处于什么位置)。那天我在那里度过了很多时间......

    【讨论】:

    • 哦,是的。每次你认为你知道这一切时,都会出现一个新的错误。一旦你弄清楚这一点,你就会意识到你曾经是多么的搞砸了。这个过程无限期地继续。 :)
    【解决方案3】:

    GameDev.net.

    在资源中,有一个“初学者”部分。通读所有这些!

    【讨论】:

      【解决方案4】:

      C++ FAQ Lite 很好。你可以从那个网站学到很多东西,还有一本相关的书也不错。

      Scott Meyers 的书也包含非常好的具体建议。

      【讨论】:

        【解决方案5】:

        C++ 是一门很棒的语言,我喜欢它。它构建了快得离谱的代码。通过充分利用分析器、分析驱动的优化器、模块间优化器、const 和 restrict 关键字、MMX/SSE/vector 内在函数和其他东西,它可以构建非常快的代码。

        您可能会关注大型游戏公司的招聘信息,并且大量 C++ 需求。

        也就是说,这并不是开发游戏的唯一方法。我只是想介绍一些替代方案。

        Microsoft 的 .NET 东西运行良好。查看他们的XNA platform

        即使使用 Java,您也可以编写出色的游戏。有一个Java version of Quake2,在我家里的Core I7系统上某些区域可以达到1000 FPS。大部分繁重的工作当然是在 OpenGL 和图形驱动程序中。

        很多人都在用 Flash 编写有趣的游戏,它的语言性能比 Java 或 .NET 差得多。

        【讨论】:

          【解决方案6】:

          我完全推荐 Brucke Eckel 的:用 C++ 思考

          你可以在他的网页上免费下载。

          http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html

          这应该可以帮助你掌握 C++,从那里你可以开始阅读引擎的代码,比如 Ogre3D,这将是一个更好的学习。

          稍后,您应该查看 GameDev.net 上的书籍,它们真的很酷。但在我看来,GameDev 中找到的文章已经过时了。

          【讨论】:

          • 如果我今天没有达到我的极限,我会支持你,作为程序员进一步发展自己的最佳方式,阅读其他人的代码。如果您在此过程中为开源做出贡献,这可以转化为简历开发。
          【解决方案7】:

          www.gamdev.net 是游戏编程的绝佳资源。

          我也会推荐Game Programming Gems Series

          就掌握 C++ 概念而言,谁比创建 C++ 的人更适合学习? 他写道:C++ Programming Language

          【讨论】:

          • 除了游戏编程gem之外,还有图形gem系列可以了解你使用的引擎的底层算法,或者如果你想制作一个。以及 gpu gems 系列,学习如何针对特定任务/优化对 gpu 进行编程。
          【解决方案8】:

          一种重新投入并同时获得乐趣的方法是阅读Nehe's OpenGL 教程,或使用更高级别的游戏框架,例如IrrlichtOgre3D

          【讨论】:

            【解决方案9】:

            您应该在http://www.geometrictools.com/ 上查看wildmagic。这是一个不错的游戏引擎,有很多示例代码和相关书籍。我强烈推荐它作为对 c++ 游戏引擎的深入研究。

            【讨论】:

            • 我已经使用 Wild Magic 1、2 和 3 好几年了,我不完全确定我是否同意。这些引擎非常擅长展示相关概念的数学原理,但通常表现出非常糟糕的软件设计和实现原则。
            【解决方案10】:

            我通过以下书籍学习了 C++(之前没有编码经验):

            Brian Overland 的《无所畏惧的 C++》

            《Sams 24 小时自学 C++》第四版

            Jonathan S. Harbour 撰写的“通过 C++ 开始游戏编程”第二版

            第一个很好,很详细,虽然读起来有点慢。第二个我主要用作参考,最后一个非常有用且易于阅读,但它经常使用“超出本书范围”这个短语。

            【讨论】:

            • 没有恐惧的 C++ 很好,但它并没有进入 STL(根本),它的字符串章节专注于 cstrings 而不是字符串类 std::string。否则,可靠的选择。
            • 我个人倾向于不寒而栗并远离任何声称可以在规定的短时间内教你一些东西的书。
            • 我也在 24 小时内自学 C++。我仍然偶尔将其用作参考。我认为这是一个很好的介绍,但其中有一些非常非常糟糕的做法。任何阅读它的人都必须立即阅读一本关于最佳实践的书。
            【解决方案11】:

            The C++ Programming Language 通过 Bjarne Stroustrup。

            我至今仍在使用它。它包含对 C++ 语言所有特性的简洁描述。当我在网上搜索这些信息时,它的蓬勃发展超出了清晰的理解。 Bjarne 在明确定义语言的所有原则方面做得非常好,这是必须的。我没有读过整本书,但我读过小节。

            (还对 Effective C++、Effective STL 和 Exceptional C++ (Sutter) 投了赞成票)

            【讨论】:

              【解决方案12】:

              以上是学习C++和游戏的好建议……

              如果你只是想制作游戏没有很多编程背景,我会给你推荐软件...

              您可以快速制作简单的游戏,然后学习制作严肃游戏所需的 C++ 和其他语言...

              软件:

              游戏制作者

              http://www.yoyogames.com/make

              游戏工厂 2

              http://www.clickteam.com/eng/tgf2.php

              书籍

              想象自己创造视频游戏,第 1 版

              精彩的游戏创作:无需编程,第 3 版

              在几分钟内制作出令人惊叹的游戏,第 1 版

              祝你好运……

              【讨论】:

                【解决方案13】:

                我建议从基础开始:

                C 编程语言,Kernigan 和 Ritchie 着。 通过这本书,您将比其他人更接近 C 的内部结构。然后你就可以阅读 C++ 书籍了。

                【讨论】:

                  猜你喜欢
                  • 2014-05-27
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-10-29
                  • 2010-11-25
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-05-19
                  • 2010-11-27
                  相关资源
                  最近更新 更多