I was a coder writing code for a video game when the best that one could hope to buy in terms of libraries or tools to help with development was some libraries to deal with video cards or sound cards. Great relief came when DirectX was first released and we humble coders could stop dealing with the myriad hardware combinations and configuration and just write the game code.
Dealing with hardware was just not fun code to write. At least not for someone that wants to code video games. How about a 3D engine? Detecting collisions? Physics? I don’t think anybody would start a game from scratch today, without the help of some engine like Unity, Unreal or one that is developed in-house (but nonetheless, already developed).
It is with some level of amusement that I see the following scenario happen often: the setup is a producer or even a technical director (let’s call her manager) being interested in adding machine learning to how artificial intelligence is developed for a game and discussing this with a team lead (TL):
Manager: Hey TL, what do you think of using machine learning or some of these new cutting edge technologies to improve our bots for Next Great Game?
Manager: It’d be a blast to have intelligent artificial players, rather than repetitive and predictable bots, and it seems like there are some great examples out there of research projects that show that is possible.
TL: Oh yes, I know. I’ve watched a couple of YouTubes already, and read some blogs.
Manager: Do we have the expertise in the team to tackle this?
TL: Well, we will need a little bit of time to do some experiments, maybe I need to do an extra hire. Give me two months to try a few things and we’ll take it from there.
This is funny only if you compare it with someone asking to have a couple of months and maybe an extra hire instead of using Unity. The two months will be used to learn the titles of some books and some techniques without any progress at all on putting machine learning to work for the game. Best case she stops rather early, worst case she drags on with her learning and ends up thinking that machine learning doesn’t work.
Here we have a couple of forces at work to create something borderline funny - a cool new field: machine learning, that to a developer looks like a software development challenge (if you have a hammer, everything looks like a nail), but that has little to do with software and a lot to do with advanced maths, statistics and ignores that machine learning is a field on its own.
This is what I’d say to our example manager:
Warning! Achtung! Machine Learning is a very interesting and attractive field for technical people. Your Tech Lead might be tempted to try out this technology themselves, and they might see your interest in this technology as an opportunity for them to take on more R&D responsibilities in AI related projects. As an expert software developer/architect, your Tech Lead is only vaguely familiar with ML and AI, since these are fields that cannot be bridged without specific expertise outside of software development.
We made this exact mistake at the very beginning, four years ago. Bringing our foundational and proven software development and architecture expertise to try and “crack” this AI thing. We failed fast, and quickly realized that even though ML and AI seem to manifest within the realm of software, they really come from a completely different field, and there is a significant knowledge gap in between them.
So, we brought machine learning experts into our team and created a learning platform that acts as a machine learning framework for video games. You don’t need your developers to learn about physics or particle movement to create a racing game, you use libraries and frameworks for that. And for a lot of other parts of a game that add to the game but are not really what you want your team to focus on. The same now goes for machine learning, better get a proven framework that has key features already implemented, such as reinforcement learning, supervised learning, genetic algorithms, continuous learning and validation, scalability, etc…
Decisive’s machine learning platform has been years in the making, and there’s a lot of cool features in the roadmap. Video game studios make games, and other companies like Decisive facilitate this with tools, frameworks and libraries.