I am currently a student in college and I am looking for advice in career advancement. What skills and abilities are important in being an AI Programmer, and how can I develop my skills in this area?
Skills for AI Programmer
A typical job listing would probably require a CSE or equivalent degree and proficiency the language of choice, which will vary across studios. C++ is pretty common in game development, so if you have to learn one programming language for game development, I'd say go with C++.
Generally, programming anything in games means you'll be working with vectors and matrices a lot, so knowing how to apply what's called linear algebra is an important skill. Engines usually have implementations of the common operations built into them, but they use the kind of terms you're likely to find in an undergraduate linear algebra textbook - dot product, cross product, and so on. What textbooks sometimes miss out (or underemphasise) is the geometric interpretation of these operations. I think the ‘Essence of Linear Algebra’ series on YouTube is a good primer on geometric interpretations of results. The other mathematical skill you will need is modelling the problem and devising a (generally algorithmic, in case of AI) solution.
An AI programmer would be working with perception and navigation a lot. Game AI is distinct from more 'academic' AI which at least aspires to be 'strong AI' someday in that game AI is much more about rules of thumb generating intelligent play (That doesn't mean ‘learning AI’ has no place in games - Forza's driver AI is a good example). The standard implementation of game AI is as behaviour trees that decide which behaviours to execute based on a number of inputs and heuristics to process those inputs. A crude example may be that an enemy would pursue and attack the player, except when below a certain health level (say, 30%), in which case he'd retreat and possibly seek out allies.
You can follow along the tutorials put up by Unity and Unreal (both free engines for personal use) which interest you and, once you're comfortable implementing behaviours, playing around with a random idea. Once you know how to implement behaviours, you need to look for inspiration. An important way to develop your skills could be to use case studies of the AI in various games. Details about the AI in Alien: Isolation were shared rather famously (look for an article titled ‘The Perfect Organism’ along with the game's title), but it is possible to study AI on your own. I would highly recommend studying the AI of the Commandos series, which relies heavily on AI perception and coordination between the AI guards to give the series the realism and difficulty it's both infamous and loved for. Think about how you could implement some of the features you like. Don't worry about replicating the entire thing. Just pick a feature and try to come up with how you may code it. As with any other piece of code, try to get a working solution before you focus on improving its implementation (optimisation, refactoring etc.).
Lastly, I should mention a special case for turn-based games. Rarely is it possible to list a single algorithm as a must-know, but if you're working with turn-based games, evaluating game trees (basically decision trees) with Minimax is the standard way to go. This is what games like Chess and Checkers use - they score game boards based on the positions of both the players, one of whom has an advantage when the score is larger, and the other has an advantage when it is smaller. Thus, they alternate between a player trying to maximise the score and another trying to minimise the score (that's how you get the name Minimax). The classic text in AI by Russell and Norvig gives turn-based game AI a good treatment in one of its chapters.
None
@srs.n.davis Thank you so much for visiting and giving me so much good advice on the topic. I was misunderstanding some things that I needed to do and some directions that I needed to take. I will be re-reading this response many times over and implementing the items listed within!
@zviperz , please don't necro. Thread locked.
-- Tom Sloper -- sloperama.com