我在c和c ++中有基本的游戏编程知识.我现在正在学习c#.如果我想在控制台游戏编程方面做一个职业,我应该用哪一个继续?我注意到很多游戏公司都在使用C++/C(可能是因为传统原因).也许C++可以享受更多受支持的库?
在哪些语言中编写现代游戏引擎(虚幻/孤岛危机等)?
哪种语言更好?为什么?
Wil*_*ill 55
C++,有两个原因.
1)很多游戏都是用C++编写的.目前还没有主流游戏采用托管语言编程.
2)C++和它一样难.您必须掌握手动内存管理并且通常没有边界检查(超出优秀的Valgrind!).如果您掌握了C++,您会发现这可以转换为托管过程语言.相反,反之亦然.
C++的复杂程度接近APL!通过打弱对手你永远不会变得更好.
乔尔对此提出了非常强烈的观点.理解机器如何工作的人会让更好的程序员,因为所有的抽象都是漏洞.
zac*_*fix 37
好的,这是我的两分钱.
如果您打算认真进入游戏行业,我建议您学习这两种语言.从C++开始,然后进入像C#这样的托管语言.C++具有优于C#的优势,但C#也优于C++.
我个人更喜欢C#而不是C++.这是因为很多原因:只有几个:
现在......我想念C++有很多东西.我想念能够(完全)管理自己的记忆.我无法告诉你有多少次我试图"删除"一个实例/参考.我不喜欢C#的另一件事是无法使用多重继承,但它又迫使我更多地考虑如何构造我的代码.
关于这一主题的讨论比已知宇宙中的恒星更多,而且它们都处于死胡同.这两种语言都不比另一种语言好,而且从长远来看,拒绝任何一种语言都会伤害到你.时代在变,计算机编程的标准也在变化.
无论您选择保留在列表顶部的任何语言,始终保持您的选项开放,不要将您的想法放在任何一种语言上.你说你已经了解C++,为什么不学习C#,它不会受到伤害,我'保证'你,它会让你成为一个更好的C++程序员.
kyo*_*ryu 26
这取决于
这取决于很多事情 - 你的目标,经验,你的时间表等.
大多数游戏编程都不是特定于语言的.3D数学是C#中的3D数学,就像在C++中一样.虽然API可能不同,并且可能需要不同的"簿记",但基本逻辑和数学将保持不变.
确实,大多数AAA游戏引擎都是C++,并且在它们之上使用脚本语言.这是不可否认的.但是,大多数AAA引擎也有一堆内部工具支持它们,而那些可能是任何东西 - Java,C#,C++等.
如果你想写一个游戏,并且是一个经验丰富的开发人员,那么C++和C#对他们有很大帮助.C#有较少的内务管理,而C++有更多可用的库和工具.但是,对于任何非常复杂的事物,您最好尝试使用现有的引擎作为起点.
如果你想写一个游戏,并且是一个新的开发者,那么就不要编写引擎.使用现有的引擎,并对其进行修改或使用其设施来编写游戏.相信我.
如果你想学习如何编写引擎,并且是一位经验丰富的开发人员,你应该考虑C++.C#也是可能的,但C++的代码量和易于集成可能会使它超越顶级.
如果你想学习如何编写引擎,并且是一个新的开发人员,我可能会推荐C#/ XNA.你可以更快地获得游戏"东西",而不必担心学习C++的来龙去脉.
如果你想要一个行业的工作,那么你需要弄清楚你想要什么样的工作.高级语言可以帮助您轻松应对工具和/或Web开发,这可能会带来实际游戏工作的机会.如果您想要获得更多游戏设计师/脚本编写者的位置,即使是脚本语言知识也可以提供帮助.有可能你不会立即找到核心引擎工作的工作,因为这样做的技能非常高.强大的C++开发技能总是有用的,特别是在实时或网络方案中.
AAA游戏引擎开发涉及一些严重的大脑扭曲代码.
如果你想创建一个专业的开发公司,那么你可能不会读这个,但已经知道C++可能是唯一可行的答案.
如果你想做休闲游戏开发,那么你应该考虑Flash或类似的技术.
小智 13
我不打算回答原来的问题,因为这里的帖子很多.我要指出你在帖子中错过了什么.简单地了解C\C++\C#并不会让你在游戏开发方面获得成功.大多数游戏工作室都可以获得数十到数百个应用程序来完成简单的代码猴作业 与他们相比,是什么让你脱颖而出?是什么让你比其他在其他工作室制作游戏经验的人更好?
如果你真的想要在游戏行业的职业生涯,即使是在游戏机上,你也应该做一些展示你所知道的演示.如果您正在申请控制台开发职位,C++将是在演示中使用的出色语言选择.您可以通过在C#\ XNA中创建工具来为演示创建资产来展示更多内容.您将向招聘经理和技术主管展示您不仅仅是C++人员或只是C#人:您是开发人员.
小智 10
没有一种语言是"更好的赌注".使用最适合您需要的语言,无论是游戏编程还是任何其他域.C++不会很快消失.
如果您不是在开发Microsoft平台,我怀疑您是否会使用C#.
C++.
它是AAA游戏编程的黄金标准.如果你需要做一些有趣的事情,你需要做C++或深入研究非托管C#(并不总是很好).
C++也可以说更快(通常的警告适用).
作为一种学习经历,C#不值得.C++无疑更好,特别是在准嵌入式游戏机世界中.要获得面向对象的体验,请转向Java.