Mr. Elusive's Omicron
Version 1.0
By Meanstryk
Introduction:
For too long, we have been made to suffer at the hands of an inhuman intelligence. Fighting against opponents with super-human speed, accuracy and situational awareness, we have grown weary at the prospect of once again being beaten into an unrecognizable mass of red pixels.Combat: GeneralSadly, unleashing our magnificent intelligence on our adversary seems almost like bringing a gun to a knife fight. Against common sense and reason, a mere bot has no defense. Though fast and accurate it might be, it is still nevertheless predictable, and thus easily defeated by one who has learned its methods.
So, until this day, we have had basically two options available to us: Play the bots on their terms or play the bots on ours. The first option can produce endless frustration, while the other option runs the risk of causing insufferable boredom.
Today, we have a third option; we have the omicron. A hybrid of human and bot behavior, the omicron is designed not merely to provide you with a challenging deathmatch opponent, but also to provide one that will give you an experience similar to that of playing against a human opponent. Don't get me wrong now, the omicron is indeed still a bot, but it easily the most human-like bot ever written.
Though lacking the super-human qualities so common among its cousins, the omicron is a formidable opponent. Once it sees you, it will probably immediately engage you, but it may not --it all depends on what its priorities currently are. If it is currently engaged with another opponent, or if it's trying to get something that it really wants, it might actually ignore you, much the way a human player would.Once an omicron sights you, there is a small amount of time (determined by the bot's skill rating) before it will react to your presence. It is possible, for instance, to run into a room, see that an omicron is present, and then quickly leave before it has had a chance to notice and react to you. Against many bots, this isn't possible, but against humans it frequently is. This characteristic makes it more difficult for the lower-skilled bots to hit a falling opponent, as the target has often finished its descent before the bot has had a chance to react.
Having sighted you, and prepared to react, an omicron will select which weapon to use based on a combination of what it has available and how far away you are. If you're at long or medium range, the omicron prefers to use the rocket-launcher. If you're at close range, the omicron will either back up in order to use the rocket-launcher or (if it has one) it will switch to the lightning gun.
Should you ever decide that you've gotten yourself in over your head (and you will eventually decide this) you might want to run away from your omicron adversary. Take care though, as the omicron can pursue more competently than any bot that has come before it. It can follow you around corners, through teleporters and off ledges. It can even use its hearing to assist its pursuit of you.
If the omicron feels that it has the short end of the tactical stick, it also might decide to make a break for it. It, however, will usually perform a backward retreat, firing at its opponent as it does so. Once it leaves the enemy's line of sight, it will again return to forward movement and will begin looking for whatever it feels that it needs to remedy its situation. Should you decide to chase after the fleeing omicron, you have your work cut out for you, as this guy really knows how to move.Combat: Weapons
At last I can say that there is now a bot that doesn't possess godlike accuracy with instant delivery weapons. Though still quite effective with them, you'll notice that only the more skilled among the bots demonstrate significant ability in this area. Even then, the accuracy of the omicron doesn't come anywhere near that of the reaper or the zeus. When firing the lightning gun, for instance, you will note that the omicron waves the shaft around in a small circular pattern in order to find its mark (unless the opponents is very close to it, in which case it just holds the shaft on target). Don't think you'll get off easy against the zapper though, as they're still a pretty damn good shot.The omicron has shot-prediction, and thus, is quite accurate with slow delivery weapons such as the nailgun. In the hands of an omicron, however, a rocket-launcher is especially dangerous due to its understanding of "shooting ground". Rather than fire at you, the omicron will fire at your feet, thus increasing the likelihood of hurting you with splash damage from the resulting explosion. Normally this tactic would be countered by jumping in the air just prior to the rocket impact. As you probably know, the idea is that you can either jump over the rocket or, at the very least, minimize the splash damage. Be careful though, as you are very likely to find yourself hurled through the air by the blast. If you become disoriented while in the air, you can bet your bottom dollar that the omicron will see to it that you return to the ground as a spray of red giblets.
Though not nearly so dangerous with a grenade launcher, the bot is still quite competent with it, and understands some of the finer points of its use --it knows, for example, not to fire grenades at a target directly above it and that the grenade launcher makes for a very poor sniping weapon.Combat: Defensive
The more skilled omicron can and will strafe while firing and can circle-strafe with ease. Having a skill 3 bot right in close to you can be very disorienting, as it will make every attempt to be wherever you're not looking. At longer ranges the bot's strafing still proves relatively effective, making it a challenging target to hit.Navigation:The omicron understands the pain that explosive weapons can bring. It tries to avoid rockets and grenades like the plague. If they sense rockets in their midst, they will begin jumping around like kangaroos. The same goes for grenades. An omicron will avoid walking over grenades unless it absolutely must, and even if it must, it will *jump* as it does so. With all this jumping going on, a rocket duel between two omicrons can become very airborne as they blast each another into the air with forced rocket-jumps.
Skill 2.8 bots and higher can perform the dreaded "jump-strafe". This means exactly what it sounds like: The bots can jump in the air while simultaneously strafing to one side or the other. This makes the better bots much more difficult to deal with. They will not, however, jump-strafe if doing so would take them it into a hazardous liquid.
Lastly, the omicron sometimes demonstrates the ability to snapshoot. That is, they can pop out from behind a corner, take a shot, and then duck back behind cover. This is a tactic that I usually see them perform with the grenade launcher. They jump from around the corner, lay some grenades and then duck back from whence they came. I only rarely see this characteristic demonstrated though, but it exists.
The omicron uses dynamically spawned waypoints to learn a level, exactly like the reaper. As it moves through a level, it lays waypoints that point to other waypoints, creating a network of paths that the bot can follow. Each waypoint records what items are present in the area where it is placed, thus allowing the bot to "remember" the area when it again finds itself there. It just looks at a waypoint and says "Oh yeah, there's a rocket-launcher around here somewhere... better get that while I'm in the area."Mobility:Although you, the player, may not be aware of it, you also are spawning waypoints for the omicrons to follow. As you play against the omicrons, you are basically "teaching" them the level. By following *your* waypoint trails the bots are able to figure out how to get to some of the more difficult-to-get items by following the path that you unknowingly laid for them. If for some reason you are opposed to the idea of a bot learning from you, there is an option that allows you to shut this feature off.
Once an omicron gets its bearings, the true power of the bot becomes apparent. Ladies and gentleman, this bot can *route* like a mother. It not only can figure out how to get from point A to point B, but it knows how to take the shortest route between two points. It even understands how to use teleporters as shortcuts! If it wants to get somewhere, odds are pretty damn good it'll get there pretty quickly. This includes, by the way, tracking a foe, and it is the bot's routing that makes it so effective at pursuit (see above). Using its shortcutting ability, the omicron is sometimes able to cut its opponent "off at the pass". Don't be surprised when you find an omicron in front of you when it was behind you just moments ago.
If you want the omicrons to start off already knowing a level, that too is possible. Mr. Elusive has supplied a means by which you can permanently place a group of waypoints directly into the .BSP of a particular level. This ascertains that the omicron always starts off with a waypoint map to follow, and thus will not have to run around learning the level on their own. If you decide to play the bots in one of quake's original DM levels, by the way, you'll discover that they already know their way around; the knowledge of these levels is hard-coded into the bot itself.
Unique to the omicron is a special type of waypoint that assists the bot in using moving platforms. When a bot recognizes a moving platform, it drops a special plat-waypoint that contains information about that particular platform that helps the bot to use the plat. This feature is what allows the omicron to get the grenade-launcher in DM2. It also allows it to survive the shifting lava-plats in that same level.
Until an omicron establishes itself in a level, it has some minor difficulty getting around. As the omicron learns more and more about its environment (How long this takes depends on the size of the level), however, its mobility quickly improves. Once it's set up, this thing looks very much like a human player, as it quickly moves through the level, full of purpose and harmful intent.Having its own incredible movement code, the omicron is not inhibited by the sorts of things that would normally hamper a bot's travel, like broken ground or significant obstacles. They move almost as fluidly and as smoothly as a human player would. This is especially remarkable when you consider how "safe" their movement is. (see below)
The omicron is a great jumper. Not only can it predict and execute jumps, but it also is pretty good at seeing when a jump is an option (such as the case with the yellow armor in E1M2 for instance). It also knows how to use jumps to perform little short cuts, like jumping across the bend of a bridge rather than following the bend. Like the reaper, it can fight while in mid-air, only to a lesser extent compared to its botty ancestor. Also like the reaper, the bot appears to take into consideration current gravity when predicting jumps.
The most famous sort of jump that the omicron is capable of is, hands down, its rocket jump. By using its rj, the omicron is able to get many places that would be very difficult for other bots to get to. As of this writing though, the omicron's rocket-jump-prediction is a little on the unreliable side. Sometimes they'll miss what they're jumping to, and other times they'll appear just to jump straight up in the air. Still, it does work, and they are able to get the job done a majority of the time.
The screenshot below was taken from Ironman's chasecam. Poor Ironman had the misfortune to be near someone as they respawned (very dangerous in deathmatch 4 rules). As his body lay upon the ground, his killer, Raphael, rocket-jumps up to some goodie on the ledge above.
Perfectly at home in the water, the omicron swims with all the grace and lethality of a Navy Seal. They can get both into and out-of the water with little difficulty.Item Acquisition:Sometimes you'll notice that the omicron displays symptoms of "camping". Well, the omicron isn't a "camper" per se, but it will stop to look around from time to time. You might see it stop at a ledge and look over the side, for instance, trying to see something. Sometimes, you'll see the omicron appear to stop moving altogether --this most probably means that it is typing (see below). Warning: A typing omicron isn't as vulnerable as a typing human opponent.
Overall, the omicron is far more mobile than any other bot ever made (save for the possible exception of the eliminator and the CTF bot), but it still does have a few problems. When going up stairs, for instance, the omicron sometimes has the tendency to want to walk up and down them, like it is exercising on a stair-master or something. When in a small room, they sometimes have trouble figuring out where the exit is. When confronted with a long winding path-bridge, such as the one that leads to the red armor in DM3, they often get distracted by things laying along the wayside, and jump off. Most of these problems exist because the author, Mr. Elusive, had to write his own movement code from scratch, and because he also had to write several work-arounds in order to overcome various limitations imposed on him by quakec. Some of these "bugs" could be fixed, but doing so might come at a hefty price.
There is one more problem that exists that can make the bot appear to be permanently "camping". The bot's not really camping --it's stuck. Some features, such as low ceilings and those thin "spawnpoint brushes" on the floor, cause the bot's stair-checking code to go a little haywire, resulting in the bot just standing in one place. From what I understand, due to the limitations of quakec once again, this is a very difficult bug to fix without sacrificing some important code. When playing the omicron, just take note to avoid maps that have such features. It is worthy of note, by the way, that this the only case where the omicron really gets "stuck". In nearly all other circumstances the omicron will eventually figure out how to extract itself from the situation.
Very few items are unattainable to the omicron. Since it is so very good at following human-laid waypoints, and since it also is very good at figuring things out, just about anything is possible for these guys. Usually, if it sees something it wants it can eventually get to the item in question. Once it has established its waypoint map, the omicron can very quickly make its way through the level, picking up those items that it needs.Perception:Here's a short list of "difficult-to-get" items that the omicron can get to:
The omicron does occasionally get stuck "window shopping" (i.e. when a bot gets obsessed with trying to figure out how to get something unattainable), but they usually snap out of it fairly quickly.
- The grenade launcher and mega-health in DM2 near the moving platform.
- The quad in DM2 (By taking the long route, or by rocket-jumping).
- Both red armors in DM2.
- The quad in DM4 (Again, by normal means or by rocket-jumping).
- The "outside" mega-health in DM3.
- The rocket-launcher, megahealth, lightning gun and 666 in DM5.
- The yellow and green armors in E1M2.
- The rocket-launcher and quad in E1M1.
When engaged in combat, the omicron will strafe over to get those items that it needs. As a matter of fact, it seems even more determined to get the item if it sees that you're in a position to try for it. Or at least that's how it seems.
The omicron has a limited field of vision that is dependent on the skill level of the bot, with the higher skilled ones having the widest field of vision. This limitation also applies to their up/down vision: an omicron will be much less likely to spot an opponent the steeper the angle is to that opponent. Attacking an omicron from outside its field of vision is a real possibility.Interactivity:As advertised, the bot can, in fact, hear. Not only can it hear, but also it has some ability to understand the significance of what it's hearing. If it hears you pick something up, for example, it might be able to figure out where you are, at which time it can plot a course to you. I feel I must mention, however, that the bot's hearing is much less sensitive than that of a human
The omicron cannot detect an invisible opponent until that opponent fires on it. Once the opponent does so, however, that particular bot will have little difficulty keeping track of the opponent from then on.
The omicron can see through a waterline. This means that if you're swimming beneath the waves you might find yourself sniped by a bot that's sitting on dry land. Conversely, while running past a body of water, you might be attacked by a bot that is completely submerged. This "problem" could've been easily corrected, but in so doing, it would have limited the bot's routing AI when it came to dealing with water. In any case, it is seldom a problem.
The omicron supports full model tilting. This means that when the bot is looking up or down, you can tell by looking at its player model. It's kind of neat to see a bot standing atop a bridge, quietly surveying the ground below for potential targets.
The omicron knows how to use buttons, doors, shootable-triggers and much, much more. They even have a strong grasp of the concept of a trigger/target relationship. In DM2, for instance, they know how to use the shootable-trigger to get the red armor, and in DM5 they know how to press the button at the end of the bridge in order to open the door to the rocket-launcher room.Suicidal Tendencies:The omicron is also quite good at using elevators and trains (moving platforms). It will usually finish the ride unless distracted, although sometimes it jumps off as the ride is completed.
There are few bots that have a safer movement code than the omicron. It avoids lava and slime quite effectively. However, the fact that the bot is fully affected by blast impact means that the bot will occasionally get smacked into the stuff. Fortunately, if the bot ever finds itself swimming in a hazardous liquid, it will immediately try to extract itself. If it is possible, the omicron will most likely be successful.System Demand:Although the omicron selects which weapon to use based on its distance from the target, it still winds up killing itself with blast damage every so often. The most common cause of this occurrence is the age-old problem of the bot not being able to tell when something is blocking its rocket-launcher's line of fire. Usually, this sort of thing happens a bot is firing near a low wall or a pillar. It is a common problem among bots.
Be very careful while in the water, as the omicron isn't afraid to discharge the thunderbolt if it feels that doing so would be worthwhile. Note, by the way, that when this happens, you sometimes get the wrong death and suicide messages; this is purely cosmetic, however.
The omicron has a LOT of code to run through, and thus, can be quite a handful for lower end machines. The author recommends that you turn botpathing OFF. This will result in the bot taking a little longer to learn the level, as the bot will be relying on *you* to teach it, but it will take some of the edge off of the system demand.The Omicron Characters:
The omicron comes with it's own player model, skinned with 24 skins. Each skin corresponds to a particular omicron character. The list of characters is as follows:Deathmatch Modifications:
Although each skin does not come with its own head-gib, the model does come with Kenneth Scott's universal head-gib, which has the appearance of a really cool looking skull. If you're going to be playing in glquake, by the way, you will need to make sure that both your h_player.mdl and your eyes.mdl have the same number of skins as your base player.mdl, which in this case is 25. If you don't, you'll get "missing skin" errors. Thanks to fellow omicron beta-tester oOxOo for pointing this out to me.
- Klingon
- John Carmack
- Bill Gates
- Happy Slappy
- Terminator
- Tigger
- Ironman
- Predator
- Sven
- Raphael
- Bob
- Qspy
- Iceman
- The Tick
- Tim Willits
- Slaine
- Robocop
- Cowboy
- Hitman
- Mountie
- Babe
- Punisher
- Elvis Presley
- Omicron Demigod
The omicron also supports bot-chat, with each character having access to its own customized chats as well as a very large list of general chats. Normally, I don't much care for bot-chat, but the omicron is the exception, as its chats are often appropriate and humorous. The omicron also doesn't demonstrate the annoying habit of repeating itself over and over the way that most talking bots tend to do.
When a bot decides to chat, by the way, it stops moving, just as a player would, to "type" what it wants to say. It is very possible that you might kill a bot while it's typing, but generally they're able to shift gears fairly quickly, so don't count on it.
I don't want to burst anyone's bubble, but as far as I know, all the bots fight with equal skill. No one bot has any advantages or disadvantages over any other. The only thing that makes them different from one another is the skins and the chats.
The omicron provides several features that can be used to alter your deathmatch environment significantly. Included are commands that allow you to omit just about any particular weapon from your game, or even all weapons if you so choose. There is also an option that will allow you to exclude the presence of quake's potentially unbalancing powerups.Bot-Cam:Having a problem with campers? Well, the omicron patch offers a means by which those dreaded tent-lovers can be detected. If you crank it up all the way, the camper routine will not only detect campers, but punishes them as well... often in rather strange and amusing ways. Worthy of note, by the way, is the fact that the camper detector will not detect camping bots.
The omicron patch allows you the luxury of creating a list of your favorite maps. When, for whatever reason, you change level, the omicron patch will randomly select a map from the list you supplied. This gives you control over which types of maps you'll be playing on while at the same time keeping level switches from becoming too predictable.
Lastly, the omicron also supports both deathmatch 3 and 4 modes. Try playing the bots in deathmatch 4 and you'll see a whole lot of bots flying around from blast impact.
The omicron has the most advanced bot-cam available. While in observer mode, you may engage the botcam in order to look through the eyes of a bot. The view that you will see looks exactly like the one you'd expect to see from your own eyes; the flow of the interface is as smooth as silk. If you prefer, you can also engage the chasecam mode, which will show you the view from immediately behind the bot you are viewing from.Teamplay:
There are many bots that support teamplay, but there aren't many that support teamplay with more than two teams. The omicron can support a game with up to 8 different teams.
Administration menu:
Using the bots administration menu, it is very easy to add and remove bots from your game with the touch of a button. It is especially useful when conducting teamgames due to the fact that includes an option that allows you to STOP the game while you finish adding the bots to their respective teams.Recommended Levels:
The omicron does very well on most levels. Levels with low ceilings, and some levels with "spawnpoint brushes" can cause problems for the bots, so once you detect such a problem, simply avoid that level in the future. Of the original ID deathmatch levels there is only one that poses such a problem, and then only in a single area; I speak of the "spawnpoint brush" near the nailgun in DM2. Other than that, they should work fine on these levels.Note, by the way, that each screenshots in this review was taken in one of Headshot's levels (Thanks for not closing up shop Dennis). Unfortunately, however, the problematic terrain features mentioned above are fairly common in Headshot's maps. Darn!
Say, you guys like those model skins on the super-nailgun and rocket-launcher in the screenshots above? Those are by Allen Yen (So is the Punisher skin by the way). Go take a look at his stuff over at the Quake Gallery. (http://www.geocites.com/siliconvalley/lakes/5544/)
Mr. Elusive, the creator of the AI, can be contacted at obots@demigod.demon.nl The bot itself can acquired right here at Ramshackle.
I just wanted to say that it was a pleasure working with Mr. Elusive, his partner H2SO4, and the rest of my fellow beta-testers. I could never ask for a better group of associates, and am proud to have been a part of their efforts.
|