
原标题:How to Become an AI Programmer (Salary, Tools, Tips)
AI程序员是最专业的游戏创意职业道路之一。
The AI programmer is one of the most specialized game creation career paths.
他们创建神经网络和算法,使游戏中的人物表现出他们应该有的样子。
They create the neural networks and algorithms that make the characters in a game behave the way they should.
AI 程序员是任何游戏开发团队的宝贵成员。在这篇文章中,你将了解你需要知道的关于AI 程序员的一切,以及如何成为一名AI 程序员。
AI programmers are prized members of any game’s development team. In this article, you’ll learn everything you need to know about AI Programmers and how to become one.
什么是人工智能编程?
What is AI programming?
AI编程是游戏开发的一个重要部分。
AI programming is a significant part of a game’s development.
从本质上讲,人工智能编程的理念是建立代码和逻辑,使非游戏角色(NPC)以一种看起来很现实的方式行事。玩家在游戏中看到的任何敌人、野生动物、市民甚至许多物体都有人工智能编程,以管理它们如何对玩家的行为做出反应。
Essentially, the idea of AI programming is to build the code and logic that makes Non-playable characters (NPC’S) act in a way that seems realistic. Any enemies, wildlife, citizens and even many objects players will see in a game have AI programming to govern how they work in response to a player’s actions.
人工智能程序员的工作可以被描述为 “为游戏的大脑编程”。他们通过用编程代码编写决策树来做到这一点。
The job of an AI programmer can be described as “programming the brains of a game”. They do this by writing decision trees with programming code.
人工智能必须知道如何应对游戏中可能发生的一些事情,因为当他们不这样做时,他们可能会以不可预测和潜在的破坏游戏的方式行事,而玩家会注意到。
AI has to know how to respond to a number of things that could happen in a game, as when they don’t they might act in unpredictable and potentially game-breaking ways, and the players will notice.
人工智能程序员编写的决策树是为了帮助人工智能避免这种情况。
The decision trees the AI programmer writes are there to help the AI avoid this.
那么,这对玩家来说是什么样子的呢?
So what does this look like for the player?
例如,让我们想象一下射击游戏中的敌军士兵。人工智能编程告诉这些士兵,他们必须四处寻找玩家的角色,并在他们进入摄像头(人工智能程序员会创建)的视野时向他们开火。
For example, let’s imagine an enemy soldier in a shooting game. AI programming tells these soldiers that they have to search around for the player’s character, and fire at them when they come into view of their camera (which the AI programmer would have created).
但他们也必须对自己被击中作出反应。当敌方士兵搜索时,程序员给他们的寻路功能使他们能够避免被墙壁和物体卡住。
But they also have to react to being hit themselves. As the enemy soldier searches, the pathfinding that the programmer gives them allows them to avoid getting stuck by walls and objects.
他们的数字智能告诉他们要绕过障碍物而不是走向它们,如果游戏环境中的某些东西发生变化,他们可能会做出相应的调整。
Their digital intelligence tells them to walk around barriers instead of towards them and might adjust accordingly if something in the game’s environment changes.
毕竟,如果玩家移动了一个垃圾桶,而人工智能却找不到通过它的方法,这将是相当不幸的。人工智能在向玩家开火时的准确度也是其程序的一个重要部分。两个不准确,就没有挑战了。
After all, it would be pretty unfortunate if the player moved a garbage can and the AI could not find a way to pass it. How accurate the AI is when they fire at the player is also a big part of their program. Two inaccurate and there’s no challenge.
太准确,游戏就变得不可能。所有这些因素以及更多的因素都是由人工智能程序员投入的系统所控制的。
Too accurate and the game becomes impossible. All of these factors and more are governed by the systems the AI programmer put into place.
在游戏开发的最后,人工智能程序员将与QA测试人员一起工作,看看当他们的代码与实际玩家见面时,可能会出现什么错误和问题。
At the end of a game’s development, the AI programmer will work with the QA testers to see what bugs and problems might arise when their code is met with actual players.
你永远不知道你的人工智能工作得有多好,直到玩家主动开始尝试破坏它,而开发过程的这一部分帮助程序员做好准备。
You never know for sure how well your AI works until players actively start trying to break it, and this part of the development process helps the programmer prepare for it.
很容易看出为什么这将是一个复杂的游戏开发领域,即使对那些有大量编程经验的人来说也是如此。创建一个数字神经网络远非易事。但这就是为什么人工智能程序员是如此重要。
It’s easy to see why this would be a complicated area of game development, even for those with lots of programming experience. Creating a digital neural network is far from easy. But that’s why AI programmers are so important.
通过建立人工智能的逻辑,他们使一个不平衡的、笨重的游戏和一个永恒的经典之间的区别。
By building up the AI’s logic, they make the difference between an unbalanced, clunky game and a timeless classic.
如何成为一名人工智能程序员How to Become an AI Programmer
成为一名人工智能程序员并不容易,因为人工智能编程不是一个入门级的职位。这些程序员需要对游戏编程有透彻的理解,并热爱复杂的计算系统。
Becoming an AI programmer isn’t easy, as AI programming is not an entry-level position. These programmers need to have a thorough understanding of game programming, and a love of complex computing systems.
他们必须熟练掌握几种编码语言(尤其是Python)、游戏引擎和3D动画软件。这使得入门的门槛相当高。
They must be fluent in several coding languages (Python especially), game engines, and 3D animation software. This makes the bar of entry pretty high.
人工智能编程是游戏的基础,所以这份工作往往是由那些有最多经验的程序员来做。大多数人工智能程序员在专门从事人工智能领域的工作之前,都会先做游戏程序员,至少三年。
AI programming is fundamental to gameplay, so the job tends to go to those programmers who have the most experience. Most AI programmers start out first as game programmers for a minimum of three years before specializing in the field of AI.
即使如此,还有一个教育问题。他们都被要求至少拥有计算机科学、游戏编程、物理学或数学方面的学位。
Even then, there’s the issue of education. They are all but required to have at least a degree in the computer sciences, game programming, physics, or math.
事实上,普通的人工智能程序员通常拥有硕士学位,而博士在这个职位上也并不罕见。
In fact, the average AI programmer typically has a master’s degree, and Ph.D.’s are not uncommon for this position.
这是编程中最复杂的领域之一,而且该领域一直在进步,新的技术和工艺很容易在短短几年内成为下一个行业标准。
It’s one of the most complicated areas of programming, and the field is advancing all the time with new technologies and techniques that could easily become the next industry standard in a few short years.
如果你的游戏的人工智能落后于其他人的能力,这是一个严重的问题,会使你的游戏感到过时。
If the AI of your game is lagging behind what everyone else can do, it’s a serious problem that can make your game feel dated.
因此,这些开发人员需要跟上人工智能编程的最新趋势和进展。
And so these developers need to keep up with the latest trends and advancements in AI programming.
这是一份很难获得的工作,因为它需要更高的教育,大量的游戏开发经验,以及对不断发展的趋势的理解。
This is a job that’s difficult to obtain, as it requires higher education, plenty of game dev experience, and an understanding of evolving trends.
人工智能编程工作和职业
AI Programming Jobs and Career
为了被聘用为人工智能程序员,你还需要投入一些时间来制作一个作品集。开发作品集是你向潜在雇主展示的东西,以证明你有编程经验。
In order to get hired as an AI programmer, you’ll also need to put some time into making a portfolio. A development portfolio is what you show to potential employers to prove you have experience in programming.
它应该是你最好的作品的集合,并以你想要的工作为目标。
It should be a collection of your very best work and targeted towards the job you want.
因此,如果你想专攻人工智能,你就需要强调你在以前工作的游戏中所设计的一些人工智能。
So if you want to specialize in AI, you’ll need to emphasize some of the AI you’ve programmed on games you’ve worked on before.
也许你为一场史诗般的BOSS战设计了人工智能,这让你非常自豪;也许你在游戏中创造了一个NPC,这个NPC以逼真的方式在游戏的世界中移动,与物体和玩家互动。不管是什么情况,都要清楚你到底做了什么。
Maybe you designed the AI for an epic boss battle you’re really proud of, or maybe you created an NPC in a game that moves around the game’s world in a realistic way, interacting with objects and the player. Whatever the case, be clear about what exactly you worked on.
有些雇主甚至会让你做一个编程测试,看看你是否真的有你所说的编码经验。
Some employers will even make you do a programming test, to see if you actually have the coding experience you say you have.
你作为程序员的经验越多,你的作品集就越好看,所以如果一开始不被接受,就继续努力吧
The more experience as a programmer you have, the better your portfolio will look, so if it’s not accepted at first, keep trying!
你很可能要作为一个普通的游戏程序员,或者在人工智能程序员手下工作一段时间,然后才有足够的材料来证明你可以专门从事这个角色。
You’ll likely have to work as a general game programmer, or under an AI programmer for some time before you have enough material to prove you can specialize in the role.
那么,如果这是一个很难获得的职位,为什么要成为一个?
So if it’s such a difficult position to obtain, why become one?
首先,人工智能程序员的平均年薪为81,000美元,有些人的年薪高达100,000美元。仅就这一点而言,这是一个竞争激烈的职位,这并不奇怪。
Well to start with, AI programmers have an average salary of $81,000 a year, with some making as much as $100,000. On that alone it’s no surprise that it’s a highly competitive position.
但开发人员选择进入这一领域的另一个原因只是因为它很吸引人。
But another reason developers choose to go into this field is simply that it’s fascinating.
通过开发人工智能,你基本上是在学习如何控制游戏世界中的所有生物,以及如何赋予它们生命。这种知识也有其他应用,一些人工智能程序员利用他们学到的游戏编程技能深入到机器人或软件开发领域。
By developing the AI, you are essentially learning to control all the creatures in a game’s world, and how to give them life. This knowledge has other applications as well, with some AI programmers delving into the field of robotics or software development with the skills they’ve learned programming games.
对于那些喜欢弄清楚是什么让游戏中的角色变得活跃的人,以及对神经网络、软件开发、甚至机器人感兴趣的人来说,人工智能编程可以是一份梦想的工作。
For those who love to figure out what makes in-game characters tick, and who have an interest in neural networks, software development, and even robotics, AI programming can be a dream job.
但不要气馁。尽管成为一名人工智能程序员很困难,但在获得这份工作时,你可以做一些事情让自己有优势。
But don’t be discouraged. As difficult as it is to become an AI programmer, there are some things you can do to give yourself an edge when it comes to getting this job.
AI编程教程和技巧
AI Programming Tutorials And Tips
尽管业内专业的人工智能程序员往往有很高的教育水平,但有很多东西你可以自己学习,可以让你获得进入这个领域所需的优势。
Despite the high level of education professional AI programmers in the industry tend to have, there is a lot you can learn on your own that can give you the edge you need to get into this field.
AI视频教程AI Video Tutorials
你可以找到许多课程和视频教程来教你人工智能编程,而不用破费。如果你是计算机编程的新手,你要关注的是学习用Python编程语言为AI编程。
There are many courses and video tutorials you can find to teach you AI programming without breaking the bank. If you’re new to computer programming, what you’ll want to focus on is learning to program AI in the Python programming language.
它是人工智能的首选语言,因为与其他语言相比,其语法相当容易学习和理解。FreeCodeCamp.Org在youtube上有一个优秀的四小时教程。
It is the language of choice for AI, as its Syntax is fairly easy to learn and understand in comparison to other languages. FreeCodeCamp.Org has an excellent four-hour tutorial on youtube.
但是如果你想要一些更具体的人工智能,Clever Programmer有一个9小时的视频,可以教你用Python制作人工智能的基础知识。它实际上涵盖了如何创建面部识别人工智能,以及自动驾驶汽车的人类检测人工智能。
But if you want something more specific to AI, Clever Programmer has a nine-hour video that will teach you the basics of making AI in Python. It actually covers how to create facial recognition AI, as well as human detection AI for self-driving cars.
虽然不一定是针对游戏编程,但这个视频可以让你在几种复杂的人工智能类型方面有一个坚实的基础,是一个很好的开始方式。
While not necessarily catered towards game programming, this video can give you a solid grounding in several complicated types of AI and is a great way to start.
最后,还有codingame.com,它是一个编程练习平台,提供一大堆编程语言的详细教程。
Finally, there is codingame.com, which is a programming practice platform, offering detailed tutorials on a whole host of programming languages.
他们会教你如何设计和测试一个游戏,并有大量预置的编程挑战和比赛,以帮助你感受人工智能的创造。总而言之,这些都是一个很好的开始。
They’ll teach you how to design and test a game, and have a host of prebuilt programming challenges and competitions to help you get a feel for AI creation. All in all, these are a great place to start.
人工智能编程书籍
AI Programming Books
当涉及到游戏人工智能编程时,也有一些书籍绝对可以成为有价值的资源。首先,有一本《游戏AI编程实例》。
There are also a number of books that can definitely be a valuable resource when it comes to programming game AI. To start, there is the Programming Game AI By Example.
尽管看起来很复杂,但它实际上很好地引导你慢慢了解路径规划、代理间通信和模糊逻辑等概念,即使初学者也能理解。
Despite looking complicated, it actually does a great job at walking you slowly through concepts like path planning, inter-agent communication, and fuzzy logic that even beginners can understand.
唯一的弱点是,这本书特别使用了C++编程语言。
The only weakness is that this book specifically uses the C++ programming language.
如果你想要更直观的东西,可以试试《游戏的人工智能》这本书。本书由资深游戏程序员伊恩-米林顿(Ian Millington)撰写,通过实际游戏中的例子教你如何进行人工智能编程。
If you’re wanting something a bit more visual, try out the book Artificial Intelligence For Games. Written by veteran game programmer Ian Millington, this book teaches you how to program AI with examples from actual games.
最重要的是,这本书还附带了一张充满源代码和演示的光盘,帮助你练习新发现的技术。
Best of all, it comes with a CD-ROM full of source code and demonstrations to help you practice your newly found techniques.
人工智能游戏竞赛
AI Game Competitions
一旦你得到了一些练习,可以考虑参加人工智能编程比赛。你可以在创造人工智能的同时赢得奖品
Once you’ve gotten in some practice, consider joining in on an AI programming competition. You can win prizes while creating
与其他程序员设计的人工智能进行竞争。即使你没有赢,这也是一个认识其他程序员的好方法,学习他们的技术,看看你在哪里成功,在哪里失败,总之,就是一个有趣的练习方法。
AI that will compete with AI designed by other programmers. Even if you don’t win, it’s a great way to meet other programmers, learn their techniques, see where you’re succeeding and where you’re falling short, and generally, just a fun way to practice.
这也是一个很好的交流活动,你可以获得游戏行业资深人士的关注。
It’s also a great networking event, where you can gain the attention of game industry veterans.
一些伟大的人工智能编程比赛的例子是著名的Kaggle模拟比赛,在那里你提交一个编程代理,在游戏环境中与其他玩家的代理竞争。
Some examples of great AI programming competitions are the famous Kaggle Simulations, where you submit a programming agent to compete against other players’ agents in a game environment.
还有Bomberland,一个基于经典Bomberman游戏的竞争性编程游戏。
There’s also Bomberland, a competitive programming game based on the classic Bomberman games.
AI博客和播客
AI Blogs And Podcasts
由于人工智能编程是一个依赖于跟上该领域最新进展的职业,关注这些博客或播客是了解最新消息的一个好方法。
Since AI programming is a career that relies on keeping up to date with the latest advancements in the field, following these blogs or podcasts is a great way to keep up with the latest news.
例如,Distill是一份学术期刊,定期发布有关人工智能编程和机器学习不同方面的文章。对于初学者来说,这些主题可能相当复杂,但大多数文章中都有互动元素,使其更容易理解。
Distill, for example, is an academic journal that regularly posts articles about different facets of AI programming and machine learning. The topics can be pretty complex for beginners, but there are interactive elements in most of them to make them easier to understand.
对于一个更有个人风格的博客,请查看Colah的博客。克里斯托弗-奥拉是一名研究员,在加州的人工智能研究机构Open AI工作。
For a Blog with a more personal touch, check out Colah’s Blog. Christopher Olah is a researcher that works for Open AI, an AI research facility in California.
他经常发布有关人工智能的最新研究,并试图以一种清晰简洁的方式解释这些概念。由于开放人工智能已经处于行业的前沿,这个博客实际上是直接来自于源头。
He often posts about the newest research into artificial intelligence and tries to explain the concepts in a clear concise manner. Since Open AI is already at the forefront of the industry, this blog is practically straight from the source.
最后,我强烈建议你看看《本周机器学习人工智能》,或TWIML。这是一个全部关于人工智能编程的播客,旗下有500多集。他们每集都与不同的专家讨论不同的主题,使其成为一个虚拟的信息宝库。
Finally, I highly recommend checking out This Week In Machine Learning AI, or TWIML. This is a podcast all about AI programming, with over 500 episodes under its belt. They talk to different experts on different topics every episode, making it a virtual treasure trove of information.
如何在游戏中保持领先优势
How To Stay Ahead of the Game
设计电子游戏中所有生物的人工智能,有点像设计你自己的世界。通过学习NPC的思维方式,你可以真正让游戏变得生动。但这种能力来之不易;要成为一名人工智能程序员,有很多工作要做。
Designing the AI of all the creatures in a videogame is a little like engineering your very own world. By learning how NPC’s think, you can truly make a game feel alive. But this ability doesn’t come easily; there is a lot of work to do to become an AI Programmer.
然而,你的每一行代码和每一个数字代理都会使你离这个目标更近一步。这一切都将归结于经验,对制作游戏的热情,以及你自己对游戏工作的兴趣。
However, every line of code, and every digital agent you create serves to bring you one step closer to this goal. It’s all going to come down to experience, a passion for making games, and your own personal interest in what makes them work.
如果你听了这些博客,读了这些书,参加了本文中提到的比赛,你就会走在前面。继续研究你的代码,研究人工智能技术,很快你就会成为一个专业的人工智能程序员。
If you listen to these blogs, read the books, and attend the competitions mentioned in this article, you’ll be ahead of the curve. Keep working on your code, and studying AI techniques, and soon enough you’ll be a professional AI Programmer.