Should I use ML Agents for my enemies, or program them manually?

I'm making a game in Unity 2019.2.15f1. It's a first person shooter space-faring game where you can take jobs clearing hyperspace routes of space monsters.

I'm still new to game development, (and currently fighting back procrastination and learning creature design), and I struggle to program a decent enemy.

Should I try to use state machine behaviors to program my enemies manually, or do you think this would be a good use of ML Agents?

What are some of the trade-offs? How do they impact performance compared to normally programmed enemies?

This could be a good use case for ML-Agents. Keep in mind, the enemy bots will need something to train against which could be a simple player-like bot that you program yourself or could also be a learning agent. In the latter case, you can check out some of our self-play documentation https://github.com/Unity-Technologies/ml-agents/blob/release_3_branch/docs/Training-Configuration-File.md#self-play which is a feature designed for the scenario where agents compete against each other in either symmetric or asymmetric games.

Learned agents might do interesting things that programmed agents wouldn't but training can require tweaking for a complex problem. Rarely do these things just work out of the box.

1 Like