C++作为Windows游戏编程的第一语言?

Mat*_*aly 7 c# c++ directx xna

我是一个业余爱好者的程序员,对Python很有把握,而且我正在学习C.最近,我正在和一位也想学习编程的同事交谈.在他的案例中,他想学习C++作为使用DirectX进行Windows游戏编程的途径.就我个人而言,我觉得你可以直接学习C++,因为你的第一语言有点多了 - 用一种简单的语言保持动力是很难的,而且我认为学习另一种语言更好地掌握大部分基本概念,然后进入像C++这样的东西.

我发现Python作为我的第一语言工作得很好,因为我对Linux/Unix平台上的网络和Web编程更感兴趣,但对于主要对Windows游戏编程感兴趣的人,我认为C#可能是一个更好的选择,因为他可以学习使用Visual C#Express Edition和XNA,然后当他准备开始学习C++时切换到Visual C++,因此已经处于熟悉的环境中.我认为内存管理需要考虑很多,C#至少可以解决这个问题,所以他可以把它放到开始学习C++之前.

别人怎么看待C++作为这种应用程序的第一种编程语言?我应该建议他去C#吗?

mik*_*ike 15

C++应该没问题.我认为他最好不要学习内存管理,指针等.然后再跳到C#,因为他将了解程序如何更好地工作.否则,他只会将记忆视为神奇而垃圾收集器将没有任何实际意义.了解底层语言(C,C++,汇编等)以生成最佳代码总是好的.

  • 我不同意这一点:制作游戏很多关于在低级概念中实现的高级概念.在这种情况下,C++更适合你,因为你想要真正处理游戏(高级编码),但可以选择深入细节来优化一些关键的运行时部分(低级编码).仅使用C将使您学到很多关于编程的知识,但只会妨碍您学习GAME编程.如果这是真正的目标,那么拥有高级语言功能非常重要.在这种情况下,开销并不明显.如果是,您可以始终优化瓶颈 (5认同)
  • 也就是说,如果您想要的只是基础知识的良好基础,请使用C. C++有很多额外的开销和需要学习的东西.C在装配过程中几乎是一层薄薄的,完全符合完成工作所需的一切. (4认同)

Cra*_*aig 8

C++是大多数"严肃"游戏的主要语言.如果为主要的游戏工作室编程,那么他需要知道C++的脏点.

从C++开始对于一个完整的新手来说可能有点多.我会推荐C作为一个很好的起点.在添加C++的复杂性之前,您已熟悉内存管理和其他低级内容的概念.

由于C#是托管代码,因此他无法获得低级内存管理的见解.不得不处理C++时,这对他不利.在这种情况下,从金属开始接近将有助于他长远.


Mat*_*ted 6

C++游戏编程很棒.但除非你在学习编程时喜欢完全痛苦,否则你可能会从XNA开始.这将允许您处理游戏内容和逻辑,而不是与您的引擎代码作斗争.

现在,如果你喜欢痛苦,那就去开始使用DirectX和C++.


Sam*_*Sam 6

我认为在使用C++之前彻底学习Java或C#等语言会更好.我说这个的原因是因为你很容易陷入C++的细节和错综复杂之中.

几年来我一直在和C++一样苦苦挣扎(作为一种爱好),然后在Uni我学习了Java,停止了做任何C++,找了几年做Java的工作,然后转到了C++ dev.我很快就选择了所有内容,因为我已经知道我想要应用哪些模式和概念,这只是学习语法和怪异以及再次习惯指针的问题.我只是必须学习如何而不是为什么.将C++作为第一种主要语言,同时学习HOW和WHY,这可能会让人非常困惑!

XNA是一个很好的建议.