Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Soundblock

Did anyone ever do good sidekick AI in a Doom engine?

Recommended Posts

Like... AI controlled marines that tag along, port in from time to time, can be summoned or otherwise? A dog? A robot? Anything?

EDIT: ...only counting AI that worked inside the game's unaltered framework. That is, no console commands to drop in bots, but something that was incorporated and play-balanced inside the gameplay narrative.

Share this post


Link to post

Old versions of ZDoom supported ZCajun bots that did kill monsters, but they died an embarrassing amount of times. It's a lot like playing Doom with a child.

I remember seeing videos on Skulltag forums of a DECORATE friendly player that followed the player around, and could kill monsters pretty well without taking too much damage. I forget what other features it had but it wasn't recognized as a player, as in you couldn't name it, keep track of its kills and deaths, or respawn after dying.

EDIT: just reread your post, I guess this doesn't apply. The only thing I remember playing that had something like that was Ultimate Torment and Torture, there was a single level in the episode that involved an entire invasion in a church or something and there were many scattered marines with various weapons that helped you fight against them. They didn't last long before they were splattered all over the place though. They left behind some cool weapons and ammo though.

Share this post


Link to post

At times, Brutal Dooms helper marines that you can "rescue" here and there do come in handy. Think of them as a reverse Arch Vile that runs around the level and fucks shit up for you. They also follow you from place to place and can fare well in a tough fight. Summoning a lot of them through the console is kind of funny too.

Share this post


Link to post

When I read the thread title I only thought of something like the Netricsa or Cortana. Like an entity that is actually in-universe supposed to be an AI helping the main character along his journey. Just out of sheer curiosity, would that be possible to make in zdoom? Like a sort of journal thing that gets entries on enemies as you kill them, or general text messages as you progress through the game? Actually I think I saw something like this in some unfinished wad about a space station that had been recommended to me once, but I remember that it worked rather strangely in there.

Share this post


Link to post

Anyone capable of making a good sidekick (one able to play at least with human skill) for ANY FPS game with a non-trivial gameplay, would actually be an innovator in several fields.

Having a good sidekick A.I. would also imply being able to make good enemy A.I.s capable of outsmarting and outmaneuvering the player without resorting to shortcuts and cheating.

I suppose it's relatively easy to give an A.I. "robotic" reflexes in tactical situations like e.g. instant dodging, automatic searching for cover without leaving an enemy out of their sight, switching to the most suitable weapon, taking incredibly long shots even beyond human sight/display limitations, being able to backpedal blindly without bumping into things, orbiting and circle-strafing a target without bumping into things, etc. but programming any long-term, wider-scope strategy would be quite difficult.

BTW, some of the above behaviors are implemented by TASers, and may even culminate into e.g. BFGing a room just moments before monsters teleport in. To a "plain" player, that might look just the same as cheating ;-)

Even making an AI capable of navigating an arbitrary map layout and finding the exit is still an unsolved challenge in Doom (then again, modern FPS have way, way simpler layouts, once you break them down...)

Share this post


Link to post

Maes said:
Even making an AI capable of navigating an arbitrary map layout and finding the exit is still an unsolved challenge in Doom (then again, modern FPS have way, way simpler layouts, once you break them down...) [/B]

You probably know this, but there is such a bot for Wolf3D :-D

The demonstration videos are mesmerizing ;-)

Share this post


Link to post
VGA said:

You probably know this, but there is such a bot for Wolf3D :-D

The demonstration videos are mesmerizing ;-)


They are indeed, but the maze solving/pathfinding problems in Wolf3D are almost non-existent compared to Doom: no height differences, no elevators, no jumping, no remotely-activated doors or obstacles, no teleporters, no need for special maneuvers etc.

I don't know if Automatic Wolfenstein can handle door keys and push-walls though: e.g. is it smart enough to identify finding a key or requiring to push a wall as a specific "subgoal" to be completed before going for the exit or to reach a secret area?

Share this post


Link to post
Maes said:

I don't know if Automatic Wolfenstein can handle door keys and push-walls though: e.g. is it smart enough to identify finding a key or requiring to push a wall as a specific "subgoal" to be completed before going for the exit or to reach a secret area?

From what I've watched/tested, it quite literally finds everything in a map.

Share this post


Link to post

It probably parses the map info itself, that's why it's a fork of a source port and not just a "bot" for a source port. Right?

Share this post


Link to post

The easiest way to code such a bot is to exploit the "perfect knowledge" of the map that it's possible to get from having direct access to the engine itself: e.g. the bot knows exactly where keys are, and can "home" to their coords. Same with secrets and items, while moving monsters are treated more like temporary nuisances to deal with in a special "combat mode", which is distinct from pathfinding/goal setting.

Trying to simulate a human player that knows nothing of the map and needs to discover/guess not only the positions of items but also infer subgoals (e.g. you need this key to open this door) or wall-hump exhaustively to find secrets, would be much harder.

Also it would be incredibly harder to build a bot that only has the same inputs/outputs as the player, and the problems that would need to be solved (e.g. simulating human vision and hearing, etc.) would make this more of a funded AI & robotics vision research project, than a hobbyist mod.

So yeah: the "bot" also needs access to the engine data, hence it can only thrive within its own source port.

Share this post


Link to post
Maes said:

Even making an AI capable of navigating an arbitrary map layout and finding the exit is still an unsolved challenge in Doom (then again, modern FPS have way, way simpler layouts, once you break them down...)

I think it can be abstracted this way: in vanilla Doom, a tagged platform will be in two or more states. So find the combination of platform states (as long as the switches to modify them are accessible) that exposes the exit and any other goals.

In Doom it's quite hard to know when to use repeatable switches. If you need to know if they're worth seeking, you need to know what they trigger and if the targeted sectors reveal anything once their state changes. And heh, doors are such repeatable switches. And you can't tell them from other movable sectors. You can't just assume they're of door-type specials, or with the switch on the door. They can be lifts, permanent floors etc.

In Wolfenstein every goal is permanent: enemies die (they don't respawn), walls push only once, items don't respawn, and doors are easy to tell from the rest of the tiles. Applying the same logic to Doom is not enough.

Maes said:

Also it would be incredibly harder to build a bot that only has the same inputs/outputs as the player, and the problems that would need to be solved (e.g. simulating human vision and hearing, etc.) would make this more of a funded AI & robotics vision research project, than a hobbyist mod.

CHALLENGE ACCEPTED. I'd have no other choice anyway, if the game is closed source. I'm tempted to modify DOSBox to have this feature on games like Blake Stone: Aliens of Gold. (if you ask, Planet Strike is open source, not AoG)

Share this post


Link to post
printz said:

CHALLENGE ACCEPTED. I'd have no other choice anyway, if the game is closed source. I'm tempted to modify DOSBox to have this feature on games like Blake Stone: Aliens of Gold. (if you ask, Planet Strike is open source, not AoG)


I'm a bit surprised, but if you do have solid knowledge on applied robotics vision, it might be feasible, at least for Wolf3D's simple visuals.

You can exploit e.g. the single-color ceilings and floors, absence of lighting, walls with fixed projection etc. to extract features/segment the screen into clear-cut areas, and infer what's going on (e.g. where are the enemies, what's the map layout so far etc.). You need to make, in essence, a "Wolf 3D looking robot", which could then be coupled with your "Wolf 3D playing robot", which however would have to make do with much less information at its disposal, this time.

A minor challenge would be somehow "tapping" into the VGA output at real-time in order to have a pixel-perfect display. If you're ambitious, you could try to make it work with a camera pointed at a wolf3d display.

With Doom however, it would be already much, much harder.

Share this post


Link to post

(This may be hilariously buggy as hell and often stupid looking idea) Maybe a bot could be made to run around the map using a recorded demo?

It would be great to watch, but not useful in actual combat as it is just a recording instead of an actual AI.

Share this post


Link to post
mrthejoshmon said:

(This may be hilariously buggy as hell and often stupid looking idea) Maybe a bot could be made to run around the map using a recorded demo?


You can already do that with vanilla Doom: load a random map, throw in a random demo (not necessarily from the same map), and watch Doomguy getting killed and bumping into things. That wouldn't be a "bot" though, just a replay of the player's input already present in the demo....which is what demos are, essentially :-p

Share this post


Link to post
exl said:

The MBF port has friendly helper dogs.


Almighty. Those puppies will chew up a Cyberdemon? Should give old Cybo a kick-animation before letting those critters loose on him. Fantastic stuff. I'm downloading things and think I'll actually have to play this UT&T I've heard so much about...

Share this post


Link to post
mrthejoshmon said:

(This may be hilariously buggy as hell and often stupid looking idea) Maybe a bot could be made to run around the map using a recorded demo?

It would be great to watch, but not useful in actual combat as it is just a recording instead of an actual AI.


During my early experiences with demos I believed there had to be some way to utilize that feature to play alongside a player created by a previous playthrough of the game like in racing games, but then I remembered how sensitive demos are to desyncing. Having a second player lure a monster away when it is expected to go a different direction would make the demo recorded bot player shoot where it was supposed to be instead of where it's going.

It would be cool if a -nomonsters demo could be used to set waypoints or something; i.e. document the player's coordinates every couple seconds or so and have the bot kill monsters first, collect items second, then follow the coordinates in sequential order when there's nothing left to do, and eventually locate the exit.

Doom's maps are still a little too complicated even for that though.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×