Opened 19 years ago
Last modified 17 years ago
#134 reopened task
Artificial Intelligence for NPCs
Reported by: | patrick | Owned by: | nobody |
---|---|---|---|
Priority: | minor | Milestone: | Old Orxonox tickets orx-v0 |
Component: | AI | Version: | |
Keywords: | Cc: | ||
Referenced By: | References: |
Description
Create a plugable AI module for all NPCs:
- Ractions triggered by:
- entering a region in the world
- doing some action (shooting, pushing bottons)
- Some simple default reactions implemented in c++
- Reaction can be defined via Lua scripts
Change History (7)
comment:1 Changed 19 years ago by bknecht
comment:2 Changed 19 years ago by bknecht
Another addition which came to me while running in the forest:
A friend of mine once programmed a simulation of flock behavior (Schwarmverhalten). Since we will probably have some mid-"air" combats with spaceships, the AI should be able to fly in flocks and formation.
If needed I can get my friends concept of flocks (of course it's all open source).
comment:3 Changed 19 years ago by patrick
I would like:
- AI that learns. I am so sick of AI not keeping a log of encounters. There are many learning algorithms out there and none of them apply to full emersion games (like SWG or WoW) and its because there are too many variables—too many parameters to build the small dimensional vector fields of the Win or Learn Fast (WoLF) algorithm. This isn't the only kind of learning though, what about statistical analysis of prior opponents? "I'm a level 54 mage encountering a level 52 warrior, my odds of survival are x% based on past encounters with warriors two levels below me…" Yes, it's pre-canned statistical analysis but things like this could seriously act as a good heuristic for many games.
- If you reduce the game space or find some really good heuristic (as in the above), dumb it down. Meet the user's pleasure level. It should be a challenge but not such a challenge that victory is unattainable.
- Use your imagination. That's all I'm going to say about that one. There is no cookbook for heuristics … learn to throw things at the user.
- Introduce long term "bounty hunter" style AI. I would enjoy an AI that sleeps and is constrained like I am. Introduce simple work parsers to our enemies. The closer you can come to interacting with me on the level of a real human, the more I'm going to like it. I know there are robots out there that understand basic human speech, why can't there be games where we receive phone calls or e-mails from assassins in real life? I know this sounds ridiculous, but make me afraid of my foe outside the game. Get in my head.
- Introduce random variables. I don't care if you have to build in mechanisms to your game that are illogical so that the AI sometimes goofs up. All humans are fallible at a certain point and if you have differing levels of predictability in your AI, the user will love it.
No NPC should stand by idly as I charge toward it with weapons drawn.
- If I swiftly and easily kill all N-1 enemies in a group, the Nth one ought to get a clue and run away with its tail between its legs, beg for mercy or at least try a different strategy.
- No NPC should forget about me simply because I walk out of its view.
- NPCs should use teamwork.
comment:4 Changed 18 years ago by patrick
comment:5 Changed 17 years ago by bknecht
- Resolution set to invalid
- Status changed from new to closed
comment:6 Changed 17 years ago by bknecht
- Milestone changed from 0.5.0_basic_single_player to Old Orxonox tickets
Milestone 0.5.0_basic_single_player deleted
comment:7 Changed 17 years ago by bknecht
- Resolution invalid deleted
- Status changed from closed to reopened
Note: See
TracTickets for help on using
tickets.
AI theory
AI of NPCs is mainly a bunch of rules the NPC follows when something is happening. There are three tasks when programming an AI for NPCs:
AI can be easy or complicated. In Games we know there are three different AI's: