如果我想在游戏行业找到一份工作,是否有必要学习C ++?


17

如果我想在游戏行业找到一份工作,是否有必要学习C ++?我对C#非常熟悉,并且具有在XNA 4.0中制作2D游戏的基本知识。目前,我只有13岁,并且喜欢制作游戏,希望有一天能获得游戏编程工作。我听过很多人说C ++是“行业标准”,不了解它会伤害您的职业。我还试图针对的平台不只是Windows,而且我知道Monogame但是由于某种原因,我在Visual Studio模板上遇到了很多麻烦,并且我发现monogame有很多错误。因为从技术上讲我还无法找到工作,并且可能直到我22岁左右(除非我是自雇人员)才能获得编程工作。在那9年以上的时间跨度中,游戏行业极有可能发生很大变化。所以这是一些问题

  • 学习C ++是否会伤害我获得编程工作的机会?
  • 到我能找到工作的时候,C ++仍将是“行业标准”编程语言
  • 如果我是独立开发人员,是否学习C ++并坚持我所知道的内容真的很重要吗?
  • 我已经找到工作还需要很多年,我是否应该现在就开始学习它?

我还担心,即使我熟悉面向对象的编程,也可能会花很多时间在C ++上,并感到非常沮丧和困惑,然后放弃学习它,而这次我已经忘记了很多XNA和我必须学习所有的东西。简而言之:如果我想从事编程工作,我应该学习C ++吗?

更新

谢谢大家的回答和建议。最近,我选择了SFML和C ++,它运行的很好。我已经掌握了C ++,并开始睁开我的眼睛,不必担心学习新事物,因为我能够将我所有的C#知识都转化为使C ++易于学习。再次感谢大家。


4
应该注意的是,实际上游戏行业中没有编码的工作比有编码的工作要多。艺术家,项目经理,黑匣子测试员,设计师,销售人员等。而且,其他语言下的工作总比单独使用C ++多得多。因此,从统计学上讲,不,您不需要学习C ++即可在行业中找到工作。
MichaelHouse

1
绝对不会损害您的机会。我现在工作的他们公司严格使用C#和Unity来开发游戏,不需要C ++。但是C ++仍然被认为是加分的,因为它教导了很多可以在其他地方应用的有用概念。我建议您专注于您的独立项目所熟悉的语言,但要花点时间学习C ++(只是为了体验)。
本杰明·丹格·约翰逊

2
如果您是专业开发人员,则不能总是选择工具。例如,我满怀热情地讨厌Java和MATLAB。但是,有时我只需要屏住呼吸并克服它。因此,只需停止抱怨,然后学习C ++。同时,您还可以学习其他几种语言。
drxzcl

尽可能学习C ++。
jcora 2013年

我觉得这篇文章对于这个问题很重要。
安德鲁·罗素

Answers:


23

我想重点关注您的第三个问题,因为这是我的知识范围(独立开发人员):

我已经很多年没有写过C ++代码了。而且,事实上,我已经忘记了很多细节(在C ++中有很多细节)。我在C#中完成大部分工作。你绝对不具备学习C ++。

但是,我从学习C ++中学到的技能(尤其是底层知识,尤其是内存和指针的工作原理)已被证明是无价的。

另外,在很多情况下,我不得不阅读别人的C ++代码。如果您知道如何使用C#或Java进行编程,则可能会猜到发生了什么-但是了解会更好。


我对您的建议特别是现在就学习C ++。在您的年龄,您有足够的时间花在学习上。这样,你就不用担心拿起C ++ ,而你想开发一个游戏或土地上工作。

如果由于某种原因(或XNA或其他任何原因)停止使用C ++,请不要担心忘记细节。这些概念更为重要。而且,如果需要,您将能够轻松地再次获取详细信息。


正如您的其他问题所暗示的那样-我们不知道十年后行业将是什么样。尽管我猜想C ++仍然会很普遍。现在就发言-了解C ++将会大大提高您的就业能力-即使在非C ++商店也是如此。


7

如果您想成为一名游戏程序员,您可能无法避免学习C ++。如果您想在游戏行业中从事其他工作,例如制作人或美工,那么就不需要C ++。

C ++很难。很多人直到大学才学到它。你有很多时间。与其他一些语言一起使用,可以快速掌握基本的编程概念。从小处着手,一次迈出一步。


2
我反过来说。C ++是当今被认为与硬件接近的一种语言,您一定要学习一些计算机体系结构方面的知识,而使用C#这样的高级语言则不会学到这些知识,主要是有关内存分配和寻址的知识。如果您首先学习C#并对此感到满意,那么比较起来,您可能会被C ++跳过的额外麻烦所困扰。
Hackworth

6

您还有很多时间要学习,所以我认为您不必担心使用哪种语言,但是我会说一些可能对您有用的东西:

  1. C ++是一种语言,而XNA是一种框架。XNA不会再由Microsoft进行更新,因此,我很难想象它会在9年后以任何严重的功能使用。另一方面,C ++一直存在,并且一直存在,它有一个活跃的标准委员会致力于对其进行改进,并为开发人员提供了对硬件的如此多的控制,以至于它将需要巨大的硬件力量飞跃才能使这种控制不再需要,从而允许另一种语言取代它。作为高性能游戏的事实上的标准。

  2. 学习概念是很重要的部分,而不是实现它们所使用的语言。如果您已经了解一种新语言的基本原理,则可以很快“学习”它。

  3. C ++要求您比C#更深入地了解指针和内存问题,因此无论在工业上使用C#还是不建议,我建议您在某个时候对其进行学习。

  4. 您担心忘记的事情可能是没有根据的。的确,您会忘记一切,但细节并不是真正重要的部分。您不会忘记如何通过切换语言来设计游戏。

您似乎有理由不学习C ++,我认为您实际上只是在试图合理化不想学习新知识的意愿。

可以这样考虑:如果您学习C ++并且事实证明将来不使用C ++,那么您将有很多年的时间来学习是什么,并且我将保证学过C ++可以帮助您做到这一点。如果您碰巧忘记了所有XNA并且没有设法学习C ++,那么最好还是找出并继续前进,而不是担心可能性。我认为这两种情况都不大可能。


4

一般建议:不要专注于需要学习或应该学习的内容。做点什么。

为了回答您的特定问题,Microsoft将不再更新XNA,因此它的出现时间可能不会更长。C ++是行之有效的行业标准,不会很快退出。如果您想从事AAA游戏,那就可以。必须具备C ++经验。


很棒的建议,+ 1。虽然老实说,学习新语言也重要。
jcora 2013年

Yannbane:但是那不是次要的吗?当OP做事时,他们会发现自己需要学习的东西,并在过程中学习它。一旦您精通一种语言,学习其他语言通常就很容易了。
Zach Latta

嗯,不,不是。您既需要两者,又需要课程,但是学习语言比拥有项目更重要。不,只是因为您知道C#并不意味着您知道C ++。如果容易的话,您会经常看到知道6种以上语言的人。
jcora 2013年

1

既然问题已经回答了,那么让我在这里和那里填补一些空白...

我还担心,即使我熟悉面向对象的编程,也可能会花很多时间在C ++上,并感到非常沮丧和困惑,然后放弃学习它,而这次我已经忘记了很多XNA和我必须学习所有的东西。简而言之:如果我想从事编程工作,我应该学习C ++吗?

您从哪里得到关于C ++是一种可怕的怪兽语言的想法?不是!实际上非常有趣。

的确,您可以接近硬件,它实际上有两个好处:您了解了很多有关计算机实际运行方式的知识,其次,您掌握了比使用C#强大的功能。

但是话又说回来,C ++具有出色的抽象方法并具有非常有用的库,因此,这并不像您实际上将直接与图形卡通信(您肯定可以)那样-它只会被抽象掉。

几乎了解任何一种语言都是非常有用的,它很有可能增加您被录用的可能性,并且绝对使您成为更好的程序员。

有空时,请查看JavaScript和/或Python。其他人也可能会建议使用Lisp,但是我对此并不了解,所以我不会说什么。但是无论如何检查它可能都是有用的,我认为即使我对它的概念了解有限,它也很整洁。也有Haskell,但很淡。

在那9年以上的时间跨度中,游戏行业极有可能发生很大变化。

真正。但请猜猜是什么:在9年以上的时间里,我们仍将使用汇编,C ++和C。我怀疑游戏开发人员会突然决定他们拥有足够的资源,而不再追求机器的极限。当然,这只是一个猜测,但是所有这些语言都比我老得多,所以我认为我是对的。

此外,通过学习C ++,您将更轻松地过渡到潜在的新中级语言。

因为从技术上讲我还无法找到工作,并且可能直到我22岁左右(除非我是自雇人员)才能获得编程工作。

我敢肯定,你在这里错了。实际上,您将能够在几年内找到工作。我认为,按照我国的法律,含义2很少。但不是全职工作。

当学校放假时,仍有多种选择可以工作,如果您的状况很好,而且您可能还不错,那么肯定会有一家开发公司想要雇用您。gamedev公司?可能不会。但是,您没有理由真正想作为一个入门者工作,AFAIK可以在一家常规公司获得更高的报酬,并在业余时间从事游戏。

此外,只看您的名字,就好像您已经熟悉C ++编程的乐趣一样!


1

我尚未从事业务(我17岁),但是我认为发现新语言和新技术确实是必须的。现在,您有时间学习C ++,OpenGL和Java。掌握这些需要花费一些时间(我花了我5年的时间,所以我开始的年龄和您现在的年龄相同),但是您获得的经验确实很棒。

尝试做的一件好事是在Java和OpenGL中创建Minecraft克隆。这将为您提供许多Gamedev技术的见解,并为您学习很多优化技术。这就是我16岁时所做的事情。您可以在以下网址查看结果:CraftMania。我之所以建议从Java入手,是因为它易于编程。其中有一个垃圾回收器和简洁的异常处理程序。这使您可以非常有效地学习OpenGL,而不必为经验不足的开发人员而烦恼C ++带来的所有困难。

一旦您感觉要熟练掌握Java与OpenGL的结合,就看看C ++并尝试做一些简单的事情(尚无游戏)。一旦您了解了C ++的编译方式并在运行时工作并且了解了C ++的内存组织方式,那么接下来就来看看SDL可以简化游戏。

为什么我专注于OpenGL?因为OpenGL可以在除XBox360之外的所有平台上运行。这是:Windows,Linux,OS X,Android,iOS,BlackBerry,Wii,DS,PS3,PSP等。当您仅掌握Xna和DirectX时,便会绑定到Windows和XBox360。我想如果您想在游戏行业获得编程工作,这是学习OpenGL和C ++的一个很好的理由。


0

我的回答是,这实际上取决于您想在游戏行业中做什么。目前,如果您要制作AAA控制台游戏,则必须使用C ++。没有其他语言可以让您利用控制台上有限的资源。

长期以来,C ++一直是游戏行业的通用语,但是随着iPhone和Unity的出现,现在可以使用C#和Objective-C之类的语言制作出色的游戏。甚至HTML 5现在也可以制作游戏。一个简单的事实是,那里有很多选择。

在您这样的年龄,您仍然有很多时间来学习和观察行业的发展情况。我对您的建议是:不要专注于语言。专注于学习如何制作游戏和/或为现有游戏制作游戏模组。一种想法可能是获得Minecraft并弄清楚如何使用Java制作mod。没有什么比看到您可以更改游戏的行为方式更好的了,即使您实际上并未发布任何Mod。

在您的年龄,我使用Basic(在Commodore 64上)制作游戏。RPG Maker,后来使用Java修改游戏。直到18岁左右,我什至没有接触过C ++,因此您仍然有足够的时间成长。

要回答您的实际问题:

  • 学习C ++是否会伤害我获得编程工作的机会?

在这一阶段尚无办法。您可能需要长达10年的时间才能开始寻找“真正的”工作,并且技术的发展日新月异。

  • 到我能找到工作的时候,C ++仍将是“行业标准”编程语言

请参阅上面的答案。

  • 如果我是独立开发人员,是否学习C ++并坚持我所知道的内容真的很重要吗?

不,重要的是您完成并发布了多少游戏。

  • 我已经找到工作还需要很多年,我是否应该现在就开始学习它?

开始学习永远不会太早,也不会太迟。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.