如何成为游戏程序员

今天,我想解释一下成为游戏程序员的方式。 最近,很多人对该主题感兴趣,因为很多人喜欢玩游戏,并且想自己做游戏,但是他们不知道如何成为一名游戏程序员,所以我将告诉您方法。 坦白地说,最近大多数游戏引擎都免费宣布了许可,因此,如果您学习游戏引擎工具,则可以制作游戏,但是在此博客文章中,我将解释实现该游戏的一般方法。 实际上,要成为一名游戏程序员,它需要很多资格。 但是,没有必要第一次了解所有内容。 我也是一名游戏程序员,当我开始工作时,我的确知道。 因此,我将仅解释最重要的事情。

首先,游戏程序员分为两部分。 第一个是客户端部分,另一个是服务器部分。 客户端程序员负责通过用户的输入执行游戏逻辑,并显示诸如游戏图像之类的内容。 实际上,客户程序员负责游戏玩家所看到的大部分游戏,并且由于为游戏添加了网络功能,因此作为服务器程序员有一项工作来运行游戏逻辑或在服务器端处理数据库。

客户部分又被7部分所分割。

1.游戏程序员。

2.物理程序员。

3.声音程序员。

4.渲染程序员。

5.工具程序员。

6.人工智能(AI)程序员。

7.动画程序员。

游戏程序员

游戏程序员负责解决过去大多数原始游戏程序员与专业化有关的其余工作。 人工智能程序员通常在一个小公司中将这些游戏性程序员结合在一起。

许多游戏公司对游戏程序员的角色不同,因为通常很难将其归类为AI程序员或游戏程序员。 AI程序员不仅开发AI模块。 AI模块还需要一些数据,有时项目组必须根据当时游戏程序员通常进行的工作结果来做出决定。 在实际的游戏制作中,游戏程序员与制作人(游戏计划者)的互动最多,并从始至终参与游戏开发过程。

物理程序员

物理程序员应运而生,他们开始将诸如现实世界系统之类的物理现象应用于游戏中。

刚开始时,这很简单,就像表达散布在背景中的结构一样,但是随着游戏逻辑(例如现实世界)的改进,它需要具有物理学背景或相关知识的程序员开始负责此任务。

物理学程序员通常会处理刚体并体现出重力和水。 通常,他们开发物理引擎ODE(开放式动态引擎),BulletEngine,Box2D和PhysX,并有时根据游戏进行调整。 在许多情况下,游戏公司直接实现物理引擎。

此时,动画师创建的角色的动画仅具有步行和跳跃动作,但是根据操纵杆方向的大小,混合可以执行更自然的步行→跑步动作。

动画师只能创建步行和跑步动作,如果将其应用动画混合,它可以获得中间的结果,例如步行跑步的中间形式。 简而言之,我以步行和跑步为例,但在很多情况下,单个动画是通过混合各种动画来制作的。 过去,我参与了足球比赛的开发,单个动画有五个以上的动画。 对于这种混合,它是线性混合,但是还有许多其他混合方法。

到目前为止,我已经将客户程序员的工作分类了。 在实际的游戏公司中,还有许多其他部分分为不同的部分,您将选择一个适合您的能力的字段。 正如我之前解释的那样,客户端程序员有很多部分,需要学习哪些常规知识? 这不是正确的答案,但是我将根据我的经验解释一些重要的事情。

首先,它是编程语言。 选择哪种编程语言都没有关系。 这意味着只要您可以对逻辑思维进行编码并查看结果。 但是,我强烈建议您尝试使用至少3年的编程语言。 如果您难以选择一种编程语言,建议您使用C ++。 这是因为C ++语言是游戏行业中最常见的语言。

其次,它是计算机体系结构。 程序员是制作软件的人员,因此他们应该知道计算机的内部工作方式。 我认为这不是强制性的。 没有这些东西,您将能够开发程序。 但是,如果您了解它是如何工作的,它将对您的开发有所帮助。

第三,您需要了解数学。 您不能通过使用高中数学来开发游戏。 您应该学习代数,三角函数,微积分和线性代数。 这将使您在开发游戏时不会遇到障碍。

第四,您需要了解数据结构和算法。 这对于程序员来说是必不可少的技能。 我将显示一些示例。

假设存在一个int类型的二维数组,如下所示。

int值[100] [20];

我将为所有元素的总和编写代码。

int sum = 0;

for(int y = 0; y <100; ++ y){

for(int x = 0; x <20; ++ x){

和+ =值[y] [x];

}

}

和另一个具有不同逻辑的代码。

int sum = 0;

for(int x = 0; x <20; ++ x){

for(int y = 0; y <100; ++ y){

和+ =值[y] [x];

}

}

如果您很了解计算机的内部结构,您会注意到上面的两个代码有何不同。 如果您不确定两者之间的区别,请阅读有关高速缓存的书或研究计算机的内部结构,以了解这两个代码为何在性能上有所不同。

接下来,它是一个库和API。 如果您学习Windows编程,则可能会听到Win32API是什么。 这用于在Windows环境中开发应用程序。 它由Microsoft制造并提供API,因此,如果程序员使用此API,则开发程序将变得更加容易。 有各种各样的API和库,但是都不同。 它用于PC和Xbox计算机的DirectX,以及用于Mac和Playstations的OpenGL。 顺便说一句,您不需要了解所有内容。 您只知道Win32API或其他库中存在哪些功能和库。

最后,您需要研究计算机图形学。 游戏需要在屏幕上绘制一些东西,以便程序员应该知道DirectX或OpenGL。 程序员需要知道它的用法和工作方式。 至少,您需要阅读计算机图形学入门书。 了解和不了解完全不同。

在此博客文章中,我主要解释有关客户端程序员的信息,因为我是客户端程序员,并且不了解服务器部分,因此请理解此问题。

正如我在这篇文章中解释的那样,您可以根据自己的兴趣选择其他职位。 希望这篇文章能帮助您选择游戏程序员的职位。