I have got to admit, rcbots are the worst kind of bots ever invented. Not only are they stupid, they can head-shot you with a pistol from more than 3,000 ft away. It sucks!
So I decided to build a framework for AI in my head for some really good bot AI.
Here's what I have so far:
1. Waypoints ("nodes") are built from surfaces. A surface is a plane in which any node on the plane can be connected with any other on the plane. After all surfaces are defined, a couple passes will be made to connect the surfaces together, usually with an identifier to get to another such as "from where you are you can jump there," "from where you are can only long jump there," and etc. for "you can jump up onto this high ledge if you have the tau cannon with this much ammo." Surfaces also have a sound-type identifier, which allows the bot to know which surfaces you could be in if it heard the specific walking sounds (ie grass, duct, metal, etc.).
2. Listening. The bot will only know (about) where you are if it can put together a sequence of sounds. It will never know where you will exactly be unless it sees you. Especially for chargers, like the healthkit and the battery charger, where if it were to hear for example, a series of sand-type walking sound, and then the sound of a healthkit charger being used, then it will search for all surfaces that has the sand-type walking sound, and will check where in that surface you can use a healthkit charger.
3. Learning. This is very difficult, but I've decided to use a list that the bot knows and will check at every event. An event may be something like "when I was here, and he about here hunting me with this kind of weapon, I died" and will learn to evade quickly when in this kind of situation. Or maybe something like "When I was hunting for this player, and I was in this area, I was sniped" and will learn to be careful around that area where it died. If it saw the player sniping it, it will definitely mark the area the player was in as a sniper-point. Oh, and definitely: "When I heard this player moving at this speed, he most likely had this kind of weapon, if he hadn't noticed me, find a quick place to hide!"
4. Conflict. This is the most difficult part, since you don't want it to be too accurate and not too stupid either. It will definitely use predicting, and with the gathered information in its learning, will determine weather to evade completely (to another room), or prolong its death by trying to defeat the player with all it has.
Anywho, these are all based on my experience playing hl1dm. It sounds to be like much fun. Note this will probably not be one of my projects yet, since it is still under what I call a framework.