专业游戏程序员需要具备哪些基本技能?[关闭]


11

我有一个非常笼统的问题困扰着我,但我想先添加一些细节。我是Java的核心程序员。我已经独立地用Java创建了一些小型游戏来娱乐。现在,我越是关注专业游戏开发,就越会感到困惑。这是因为,每当我用Google搜索一些游戏开发主题或访问任何论坛等内容时,我都会遇到不同的建议。

有些人会说C ++是好的,而有些人会说JAVA可能更好,而另一些人会说其他语言是您的语言,例如Python,Lua,UnrealScript等。另外,建议人们应该具备以下知识:需要虚幻,扭矩,搅拌器,熊猫等游戏引擎,并且需要具备OpenGL,AI和碰撞检测知识。我什至使用Android SDK创建了一个游戏。

我想问的是:

  • 专业游戏程序员需要具备哪些基本技能?有1种编程语言+ 1种脚本语言+ 1种游戏引擎知识+ OpenGL吗?(Ph!)
  • 如果我想以游戏程序员或AI程序员的身份进入游戏行业,那么我可以利用我目前的技能和投资组合进入游戏行业吗?
  • 学习一种编程语言是否足以进行游戏开发?

任何准则都将有所帮助。

Answers:


6
  1. 您应该精通并具备至少一种编程语言的能力。这样做将帮助您更轻松地学习其他语言。您要申请的工作类型取决于您可能应该事先掌握的语言。在PC和控制台上发布的大多数Triple A标题很可能将使用C ++开发。另一方面,移动应用程序和游戏很可能会使用Java(Google Android和其他手机)或Objective-C(iPhone)。如果您在开发人员网站上浏览软件工程师的职位清单,通常会提到您需要的语言经验。例如,“精通C ++”或“至少两年的C ++经验”。学习脚本语言不会伤害您。它只会使您受益。学习永远有益,您无需拥有任何游戏引擎的使用知识,但是如果您正在申请使用该特定引擎的公司,则可能会帮助您恢复。如果您是Source引擎方面的专家,但是您申请了id软件,却对id技术引擎一无所知,那并不是真的很有帮助(但有益的原因学习永远是有益的)。

  2. 如果您已经从头到尾完成了项目,并且表明自己已经完成了,那么我认为这将有助于提高您的履历。我不确定有太多的技术演示。很多人似乎在做技术演示,他们还没有完成任何游戏项目。游戏程序员往往是小人物。职位,所以是的,根据您的简历,您应该可以在某处找到工作。

  3. 我认为了解一种语言并能够熟练,熟练地使用它比知道5种语言并且几乎不知道如何使用它们要好。

免责声明:从未在行业中工作过,这些只是我在阅读有关游戏编程工作的多个主题和文章后所形成的观点,基于我认为这是我读过的最明智的文章/观点。


7
我将用“对使用指针的一种编程语言的了解”来补充要点1 。指针是理解一种语言所发生的事情的基本要求,在使用需要它们的语言时,从来没有经验可能是一个巨大的劣势。C ++在非网络游戏中极为盛行,因此您不妨从这里开始。
Tetrad 2010年

@ShrimpCrackers您知道您可以使用编辑器创建实际的 “子弹点”,对吗?;)
2012年

您应该至少知道一种在工业上没有广泛使用但具有一些有趣特性的编程语言:这表明您是由于对机会感兴趣而学习的,您是一个懂多种不同哲学/方法的多语言人,并且您可以(希望)融合两全其美。
FxIII 2012年

2

我研究这个主题并与专业游戏开发人员进行交流的时间越多,我认为它涉及的实际内容就越多。没有特别的顺序:

  • 能够在团队氛围中良好协作的能力。制作游戏需要大量的人,如今阅读一些AAA游戏中的积分要花10分钟以上,如果您不能与人一起工作,而您的目标是与其他人一起制作一款出色的游戏,那么我担心这不是正确的行业。这是通常与他人一起工作时随着时间的推移而开发的软技能之一。
  • 找到你想做的事。这是一种开放式的方法,但请找出您对游戏开发的喜好以及完成此任务所需的技能。我知道这是您所需要的答案,但是我可能会off愧成为引擎开发人员,图形开发人员或游戏开发人员可能需要的所有技能,但是您可以在网上轻松找到很多此类信息。您的技能将需要非常紧密地结合到您感兴趣的内容中。例如:如果您真的对服务器端开发感兴趣,那么不必担心了解OpenGL和DirectX的内在和外在。
  • 精通低级语言上面已经说了这一点,我同意其他海报认为低级语言是学习的好主意。我知道当我从C#转到C ++时,我学到了很多有关C#的魔术原理的知识,这是使您对如何有效地与计算机进行通信(无论使用哪种语言)的一个很好的了解。
  • 了解计算机体系结构 -并不是说您必须拥有CE或EE学位才能真正理解计算机体系结构的每个部分,而是了解内存,CPU和GPU的工作原理。无论您从事游戏开发的哪个领域,至少都对它们的工作方式有所了解将是有益的。如果您想进入图形编程或引擎编程,那么您将需要在此领域中了解更多。

5
当人们称C ++为低级语言时,您真的感觉很老
dreta 2012年

@dreta我还不算老,我也不认为它是一种低级语言。可能与C ++是我使用的第一语言有关。
保罗·曼塔

2

在很大程度上取决于您的职业目标。如果您只需要在完成必要的5.5年并精疲力尽并离开之后的“创造就业机会的游戏”,那么我猜您只是在研究入门级的职位空缺,并寻找他们想要的东西,学习和应用。简单。(但是,如果您的问题确实归结为“我需要付出最小的努力才能得到一份工作?”,那么答案就是“如果付出最小的努力,那么您将获得最低的工作! ”)

但是从长远来看,我认为了解某种语言或学习一种特定的语言并不重要。语言发生了变化-十年前没有人使用Objective-C或XNA或C#或AS3,十年后的今天可以放心,无论如何您今天所学的语言都会过时。

因此,使自己适应未来的一件事不仅是“学习语言”,还应该学习如何学习新语言。精通3种语言后,您会发现选择一种新语言并不是一件坏事。无论如何,大多数核心组件都是相同的-每种语言都有变量,数组,循环,条件等等,因此这只是学习语法。

另一半是了解编程和计算机科学的核心概念。了解内存管理,指针,递归等。如果您了解这些概念,则可以用几乎任何一种语言来应用它们。

如果您想使自己更具市场价值,那么就可以根据自己的兴趣学习与游戏相关的编程专业,如AI,数据库,网络,工具等等。


1

还有另一项非常重要的技能需要被忽略。您需要知道如何融入团队并与团队合作,从其他游戏开发人员到设计师,项目经理和其他人员。这不是技术技能,但仍然非常重要,因为您可能是公司中最好的开发人员,如果您无法与人融洽相处,那么制作大型游戏将是一个问题!

此外,由于ShrimpCrackers精通一种语言比粗略地了解5种语言要好,而且了解自己喜欢的一种语言的内幕甚至更好,就游戏而言,您需要知道如何获得最佳性能语言之外。

最后但并非最不重要的一点是,对硬件有所了解,尤其是GPU不会受到伤害!


0

对于编程社交游戏,只有主要技能是必需的。

  1. 程序动作脚本(可以使用椭圆环境和svn),用于游戏的前端(网页)

  2. 程序java(也可以在eclipse上使用svn完成),用于服务器端从网页请求中采取的操作。

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.