首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >应该选择C#还是C++来学习游戏编程(控制台)?

应该选择C#还是C++来学习游戏编程(控制台)?
EN

Stack Overflow用户
提问于 2010-02-05 04:49:45
回答 17查看 131.2K关注 0票数 40

我有基本的c和c++游戏编程知识。我现在正在学习c#。如果我想从事游戏机游戏编程,我应该使用哪一个来继续呢?我注意到很多游戏公司都在使用C++/C (可能是因为遗留的原因)。另外,C++可能拥有更多受支持的库吗?

现代游戏引擎(虚幻/神秘等)是用什么语言编写的?

哪种语言更好?为什么?

EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2010-02-05 04:53:09

C++,有两个原因。

1)很多游戏都是用C++编写的。到目前为止,还没有主流游戏是用托管语言编写的。

2) C++是最难的。您必须掌握手动内存管理,并且通常没有边界检查(除了优秀的Valgrind!)。如果你精通C++,你会发现这可以转移到托管过程语言。反之,情况就不那么乐观了。

C++的复杂程度接近APL!与实力较弱的对手对战,你永远不会变得更好。

Joel makes a very strong point about this。了解机器工作原理的人会成为更好的程序员,because all abstractions are leaky

票数 58
EN

Stack Overflow用户

发布于 2010-02-05 07:40:19

好的,这是我的两点意见。

如果你打算认真地进入游戏行业,我建议你同时学习这两种语言。从C++开始,然后转向像C#这样的托管语言。与C#相比,C++有它的优势,但C#也比C++有优势。

就我个人而言,我更喜欢C#而不是C++。这是因为许多原因:,只有几个:

  1. C#使编程再次变得有趣;)。
  2. 它的托管代码帮助我轻松地完成复杂的任务,并且不会忘记安全性。
  3. C#s‘是纯粹的OOP,在您的代码中强制执行规则,有助于保持代码的可读性、可维护性和执行更稳定。生产率至少超过C++ 10%,最好的C++程序员可能是一个更好的C# C#不是一个真正的原因,更像是C#的一些‘我’喜欢的东西: LINQ.

Now...there是我对C++的许多怀念之处。我怀念能够(完全)管理自己的记忆。我数不清有多少次我发现自己试图“删除”一个实例/引用。我不喜欢C#的另一件事是不能使用多重继承,但这又迫使我更多地考虑如何构造我的代码。

关于这个话题的讨论比已知宇宙中的恒星还要多,它们都走到了死胡同。任何一种语言都不会比另一种语言更好,从长远来看,拒绝其中一种语言只会伤害你。时代在变,计算机编程的标准也在变。

无论你选择哪种语言,始终保持你的选择是开放的,不要把你的注意力集中在任何一种语言上。你说你已经知道C++了,为什么不学习C#,它不会有什么坏处,我向你保证,它会让你成为一个更好的C++程序员。

票数 40
EN

Stack Overflow用户

发布于 2010-02-23 11:07:51

它取决于

这取决于很多东西--你的目标,你的经验,你的时间表,等等。

大多数游戏编程都不是特定于语言的。与在C++中一样,C#中的3D数学也是3D数学。虽然API可能不同,并且可能需要不同的“记账”,但基本的逻辑和数学将保持不变。

事实上,大多数AAA游戏引擎都是带有脚本语言的C++。这是不可否认的。然而,大多数AAA引擎也有一堆支持它们的内部工具,这些工具可能是任何东西- Java、C#、C++等。

如果你想写一个游戏,并且是一个经验丰富的开发人员,那么C++和C#有很多适合你的地方。C#的内务管理较少,而C++有更多的可用库和工具。然而,对于任何高度复杂的情况,您最好尝试使用现有的引擎作为起点。

如果你想写一个游戏,并且是一个新的开发者,那么就不要写引擎。使用现有的引擎,修改它或使用它的工具来编写您的游戏。请相信我。

如果你想学习如何编写引擎,并且是一名经验丰富的开发人员,你可能应该考虑C++。C#也是可能的,但是C++的代码量和集成的简易性可能会使它变得更重要。

如果你想学习如何编写引擎,并且是一个新的开发者,我可能会推荐C#/。你将会更快地了解游戏中的“东西”,而不必再头疼地去学习C++的细节。

如果你想在这个行业找到一份工作,那么你需要弄清楚你想要什么样的工作。高级语言可以帮助您涉足处理工具和/或web开发的大门,这可能会带来实际游戏工作的机会。如果你想获得更多的游戏设计师/脚本编写者的职位,即使是脚本语言的知识也会有所帮助。很有可能你不会立即得到一份处理核心引擎的工作,因为这样做所需的技能相当高。强大的C++开发技能总是很有帮助的,特别是在实时或网络场景中。

AAA游戏引擎的开发涉及一些严重的脑筋急转弯的代码。

如果你想创建一个专业的开发公司,那么你可能不会读到这篇文章,但你已经知道C++可能是唯一可行的答案。

如果你想做休闲游戏开发,那么你可能应该考虑或类似的技术。

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2203093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档