Genetic Programming in Games

Started by
16 comments, last by Ronnie Mado Solbakken 12 years ago

The dirty secret is that it is not hard to make a bot that will completely crush people.


Damn you Quake ReaperBot! Damn you!

[update] Actually, i think some of the 3rd Gen roguelike AI was actually almost un-killable now that i think about it since it learned player weaknesses and attacks and adjusted its skill choice based on that information. I believe it pre-dated quake.
Advertisement

[quote name='willh' timestamp='1331658419' post='4921692']
None of the bots in the game are smart enough to do that.

I think you will find that they are intentionally not smart enough to do that.

It takes very little effort to make a bot with perfect aim, perfect reflexes, and the ability to share perfect tactical information with fellow bots. That's probably the easiest type of bot to create.
[/quote]

That's not what I meant. In BF3 there are all kinds of way players can work together with devastating consequences. Take jets; when one player acts as bait, so another can get on the tail of an attacker and gun them down.

These are very complex behaviors with no immediate reward for either player. I haven't seen a bot that is able to spontaneously take part in complex adaptive team work. In the campaign mode of BF3 the enemy NPCs are fun, but not so fun that they would enhance the multiplayer mode.

This free e-book may interest you: Evolved to Win (2011; 193 pages)

Title: Evolved to Win
Author: Moshe Sipper
Abstract: Recent years have seen a sharp increase in the application of evolutionary computation techniques within the domain of games. Situated at the forefront of this research tidal wave, Moshe Sipper and his group have produced a plethora of award-winning results, in numerous games of diverse natures, evidencing the success and efficiency of evolutionary algorithms in general—and genetic programming in particular—at producing top-notch, human-competitive game strategies. From classic chess and checkers, through simulated car racing and virtual warfare, to mind-bending puzzles, this book serves both as a tour de force of the research landscape and as a guide to the application of evolutionary computation within the domain of games.[/quote]

But it doesn't directly deal with modern games.
I would agree that it's not hard to make a bot that crushes people using non-human advantages, e.g. perfect instant aim and perfect knowledge. However I think it would be much harder to make a competitive bot starting from the same assumptions that human have to play under, e.g. 200ms reflex time, need to visually find enemies from pixel data, occasionally faulty input devices (think of general mouse issues and the need to stay on the mousepad etc). Some of the sneaking type games incorporate facets of that. Bring in cheatiness like rocket-jumping type manoeuvres which AIs can't be expected to pick up... the human has an advantage unless they're dumb or don't co-operate. I think limitations can contribute to human likeness as much as specific features.

However I think it would be much harder to make a competitive bot starting from the same assumptions that human have to play under, e.g. 200ms reflex time, need to visually find enemies from pixel data, occasionally faulty input devices (think of general mouse issues and the need to stay on the mousepad etc).

Harder? Ye gads, make that near impossible. You could throw *all* the available processing power at implementing computer vision, and still not reliably "see" opponents.

The point was not that it's too easy to build a decent bot, the point is that it's quite hard to build a bot that plays at a slightly-worse-than-human level. Making it considerably harder to write a human-level bot doesn't help us at all...

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Having to recognize the scene from pixel data is unfair to the agent. It would be like giving the human an ASCII dump of the current situation every frame. Humans are better at recognizing visual patterns, and that's how the game communicates the information about the current situation to them, but it would be ridiculous to communicate with an AI agent that way.
I did wonder whether people would focus on that one phrase. ;) What I meant is that an agent which is given an object reference and a position doesn't have to cope with issues such as having difficulty spotting an enemy hiding in the dark, that only has one pixel visible from behind an occluder, that is so far away that they only appear as 1 pixel high, that are wearing an outfit that camoflages well with the background, etc. Most of that can be emulated at much lower cost than burning all your CPU power on true computer vision.
I think the AI in many games could've been tons better if the devs just knew wth they were doing. I remember Total Annihilation, a game that had a ton more AI (effectively, not actually) than almost every other RTS to date, because of how the in-game commands were designed and how the AI was scripted with that in mind.

To me, the gaming industry seems to be showing off LESS intelligence nowadays than in certain games before. I guess they're all trying to implement actual AI but at the same time being allergic to illusory AI (an incredibly powerful game feature if implemented correctly, because you can potentially make the AI smarter than the player). Let's call it "reactive AI" instead, as that's more accurate.

I like to think that a good AI is an AI that is hard (if not impossible) to predict. But most games nowadays, maybe with the exception of Starcraft 2 and similar (although that too could've been a lot more unpredictable), are horrendously predictable. I'm thinking that a given mob should be choosing somwhat randomly between more than one AI construct, depending on the information that the mob gets of the player. If the player is passive, the AI should be aggressive and vice versa. But also break it up and then suddenly be behaving differently 30% of the time (not just because something happens that changes its behaviour).

You know, simple Texas Hold'Em psychology. :D

I think one of the biggest mistakes of the gaming industry is to exclusively try to make the cpu as smart as possible. At least that's what it looks like their doing, from a gamer's perspective. The best form of AI, IMO, is one that breaks up smart decisions with a little bit of stupidity here and there, so that it leaves the player wondering "what the heck just happened"? It's kinda embarassing when you see a human NPC having the exact same behaviour as a Wild Boar.

- Awl you're base are belong me! -

- I don't know, I'm just a noob -

This topic is closed to new replies.

Advertisement