The whitepaper on the Grail framework is interesting [1]. It's an AI C++/C# framework you can use in game development.
I would call it a very good implementation of "old school" AI, where the behavior of your actors is all about utility curves, Monte Carlo search, and genetic algorithms. Basically all math/algorithm based stuff, kind of like old expert system AI implementations.
Of course "new school" AI is all about neural networks that can automatically learn those complex actor behaviors without the developer explicitly specifying all those mathematical algorithms.
Like many people here I'm very interested in working on hooking up modern "new school" AIs to virtual worlds, so it's very interesting to see Grail as a good concrete example of the algorithmic approach to game AI. I suspect some hybrid fusion of both approaches may give us some interesting and fun AI behavior.
The dichotomy of interest isn't really NNs vs GAs but about stochasticity vs determinism. The user/player doesn't care which it is until they learn to see the patterns and to reliably exploit the rules. Once you notice these patterns, the spell is partially broken and immersion is compromised. That's part of the reason stochastic methods have been such a hit throughout the history of game development for NPC behavior.
I think things get really interesting when you combine small, efficient ANNs with evolutionary/genetic algorithms.
The biggest challenge with these is coming up with a function that clearly represents the fitness of a candidate. EAs are worthless if you can't provide good selection pressure over time. There are always multiple conflicting objectives in the most practical cases. I've recently discovered that you can skip all the nasty objective weighting business if you just select the Pareto front every generation. You never know when a trip down a less important path might result in the most optimal global solution.
Oh wow, this kind of idea goes way back, to Doug Lenat's Eurisko. Good old fashioned AI. He famously used that to craft winning strategies for Traveller Trillion Credit Squadron, a non-computer game.
Today's game designers might use this sort of thing to find game-breaking exploits before those damned players do.
Seems unlikely to work imo. Games need to account for the fact that 90% of the player base will be deeply unskilled and the remaining 10% will be tightly invested in a meta of dominant strategies. You’d need the bots to be able to consider this and also not just equalize every character.
I found that to design games for the crowd seperatly and merge them, works wonders. One crowd gets a hyper-challenging rts, the others get to play heroe units making all the difference in a small dota game, playing off the the hyper-rts. The OPs can take over and micro, but they wont never micro as well as a human, for whom it is the whole game.
One example.. of course, you goto keep it civil. No pro players dunking on the mom&pop gamers who just want to have 5mins of fun on a tablet.
This can be accounted for by training bots using player inputs from historical games, no? If you then partition the training set by player ranking, you'd presumably get a set of bots that approximate a player from each ranking. With that, you could simulate the effect of a balance change on players of various skill levels.
I agree that a rudimentary evolutionary algorithm probably wouldn't work since they often don't take into account multimodality. There are global stochastic algorithms that take into account this sort of multi modality. Most particle swarm framworks could handle this sort of bipartite nature with a more complicated fitness function. Differential Evolution frameworks in R also allow you to do a post operation on each candidate, which include something like rejecting it because it does not seem to lie in one of the two modes.
Programmers always want to automate content creation. I get it as I’m a coder and it’s a fun problem space. Plus creating content is super time and skill intensive. It’s really hard to get right in my experience. Kind of like trying to automate writing a novel…
OK I read the article. I'm very skeptical of this approach. I doubt we can actually uncover fitness functions that reliably maps to "fun", and I believe it would require huge engineering effort to keep the game "simulable." Their examples aren't convincing. What would be convincing is a full, complex, and _fun_ game using these techniques.
Also the article seems like an ad for their AI solution.
> I doubt we can actually uncover fitness functions that reliably maps to "fun"
You don't have to. Get empirical data and form a proxy evaluator. Usable enough for most evolutionary algorithms. I've done this sort of stuff for very subjective metrics and actually sold something with it.
programd|1 year ago
I would call it a very good implementation of "old school" AI, where the behavior of your actors is all about utility curves, Monte Carlo search, and genetic algorithms. Basically all math/algorithm based stuff, kind of like old expert system AI implementations.
Of course "new school" AI is all about neural networks that can automatically learn those complex actor behaviors without the developer explicitly specifying all those mathematical algorithms.
Like many people here I'm very interested in working on hooking up modern "new school" AIs to virtual worlds, so it's very interesting to see Grail as a good concrete example of the algorithmic approach to game AI. I suspect some hybrid fusion of both approaches may give us some interesting and fun AI behavior.
[1] https://grail.com.pl/media/Grail_Whitepaper_June_2021.pdf
uoaei|1 year ago
bob1029|1 year ago
The biggest challenge with these is coming up with a function that clearly represents the fitness of a candidate. EAs are worthless if you can't provide good selection pressure over time. There are always multiple conflicting objectives in the most practical cases. I've recently discovered that you can skip all the nasty objective weighting business if you just select the Pareto front every generation. You never know when a trip down a less important path might result in the most optimal global solution.
pfdietz|1 year ago
Today's game designers might use this sort of thing to find game-breaking exploits before those damned players do.
NotGMan|1 year ago
Many games were ruined post-release because developers tried to make the gameplay "more balanced". This usually leads to everything feeling the same.
Helldivers 2 was a good recent example, which is suprising since it's not a PvP game at all but a co-op PvE only.
Rhapso|1 year ago
Rhapso|1 year ago
NEAT is really well suited to modeling behaviors in a less structured way and gets used to play videogames.
jncfhnb|1 year ago
PicassoCTs|1 year ago
One example.. of course, you goto keep it civil. No pro players dunking on the mom&pop gamers who just want to have 5mins of fun on a tablet.
10000truths|1 year ago
pfdietz|1 year ago
SpaceManNabs|1 year ago
dartos|1 year ago
You need the power fantasy of being strongest characters and the underdog tale of winning against the strongest characters as a less meta one.
unknown|1 year ago
[deleted]
shortrounddev2|1 year ago
aschearer|1 year ago
OK I read the article. I'm very skeptical of this approach. I doubt we can actually uncover fitness functions that reliably maps to "fun", and I believe it would require huge engineering effort to keep the game "simulable." Their examples aren't convincing. What would be convincing is a full, complex, and _fun_ game using these techniques.
Also the article seems like an ad for their AI solution.
delichon|1 year ago
We have a god complex that brain surgeons can only envy. How many universes have they built?
SpaceManNabs|1 year ago
You don't have to. Get empirical data and form a proxy evaluator. Usable enough for most evolutionary algorithms. I've done this sort of stuff for very subjective metrics and actually sold something with it.
cubefox|1 year ago
So you are saying procedural level design could be solved with generative AI?
fcukdei|1 year ago
[deleted]
unknown|1 year ago
[deleted]