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

AutoDoom demos

Recommended Posts

I've done some progress with the single-player Doom bot, now it can find the way to the exit by itself. Of course there's a lot left to do, not the least real combat (this IS -nomonsters) or at least avoiding barrels :P. I struggled to find a successful map, but here goes (for Doom 2 1.9 or Doom2+): MAP10 Refueling Base.

autodm10.zip

Share this post


Link to post

haha this is great. I love how it obsessively collects health/armor bonuses, and the fact that it consistently hits switches seemingly the very tic it comes in range.

Pretty cool stuff. I'd love to read a bit more on some of the logic going on behind the scenes.

Share this post


Link to post

This is also great for cooperative testing, the bots I know rarely get past the first room.

Share this post


Link to post

Very very interesting! The bot should thank Tom Hall for making such a flat level: I suppose height variation in maps is one of the main obstacles, along with complex triggers like lifts? Then MAP31 should be doable for it as well I guess, and maybe 18 too?

Share this post


Link to post
Memfis said:

Very very interesting! The bot should thank Tom Hall for making such a flat level: I suppose height variation in maps is one of the main obstacles, along with complex triggers like lifts? Then MAP31 should be doable for it as well I guess, and maybe 18 too?

Yeah, I have to implement Doom lift awareness... it's not very hard.

Regarding jumps: it's just a question of how fast it should move, platform height difference and platform distance. Then I'll just have to link the platforms together in the navigation map, if I can detect them somehow.

MAP18 can't be beaten yet because it doesn't know how to shoot switches yet :P

Share this post


Link to post

Bahaha the demo looked just like some of my ancient nomo demos. Thankfully I've improved since then. :P Nice work; I don't think I've ever seen anything quite like this before.

Share this post


Link to post

Here's another demo, for Ultimate Doom. Now it can fight monsters :D It plays through E3M1 till E3M3, where it stops because (due to an oversight) it doesn't know it can take the lift.

autoe3m1.zip

Share this post


Link to post

LOL, I was watching this, in the middle of E3M2 I thought "no weapon switching policy works very well here, but will be hilarious if he finds BFG" and then it happened.

This is very good, if I hadn't run your Wolf3d bot by myself, I would demand a proof this is a bot and not you playing bot-style.

Also, he doesn't finish E3M1 with 100% kills, but the time is quite comparable to earliest compet-N Max entries (1:57 by Eelco de Vries in 1995).

Share this post


Link to post

Wow wow wow! Now this is getting really fascinating. E3M2 was pretty intense with these low health moments, I was cheering for the bot. :D Loved that aggressive punching. The weird shaky movement while shooting is damn annoying though but I understand that watchability isn't the primary concern at this point heh.

Share this post


Link to post
odysseyofnoises said:

This is quite fascinating! Please, continue working on this. I think it will get very far.

If in ~50 years robots will do EVERYTHING for humans, including recording speedruns (and these speedruns may be faster than current world records), that will be not good. There will be just no meaning of life. :-p

Share this post


Link to post

^ That's exactly what I want regarding Doom. Make it machine-solvable, so people will build more complex maps. In fact I think that ACS-like scripting will increase the complexity considerably, so go for that.

You know what's the fun part? Almost all the combat movement is random. If you think you saw it circlestrafing or evading most projectiles, it's actually due to randomness. I think I can save a lot on calculations if I just let the bot roam "free". Which brings a nice parallel with real life: sometimes you just need to be random and creative without thinking too hard, though skill/training is still needed (i.e. I still have to program a lot here).

If I tried the same random movement in AutoWolf, the bot would sooner get itself killed there, as Doom seems to offer a lot more space to the player than Wolf3D, and the monsters are far less vicious. Now I wonder if I should program some "fight-or-flight" mechanism here: depending on how bad the odds are, either shoot back or run away. If I face a baron and all I have is a pistol and I'm on slime, I better run off.

Share this post


Link to post

It's awesome that it can fight now too. When it's in shooting mode, it shakes left/right very quickly and reminds me of gggmork when he gets pissed in a demo. :)

Share this post


Link to post

Really fascinating stuff. Would like to read more on the algorithms you use. You got a conference paper somewhere? :)

The shaking didn't bother me much. What impressed me was the accuracy of the shooting/punching, there was one or two cases where it missed though. It would be cool to see the following improvements next:

- dodging
- more weapon awareness (switching, low ammo awareness, splash damage awareness, distance (e.g. don't use SSG from afar), running past monsters to get better guns first, etc.
- instigating infighting! :)

I'm also wondering if it can learn from FDAs? In other words, learn how humans learn, and then implement it, but only better. That'd be cool.

Share this post


Link to post

Here's another Hurt Me Plenty recording of E3M5 (and E3M6 where it does something stupid). If I either develop the combat mode to be more survivable, or I team it with the player in coop, it will get better.

Video of this hopefully soon so you don't have to open some lmp!

autoe3m5.lmp.zip

Share this post


Link to post

That's really awesome, I hope you open-source this once you feel it's sufficiently fleshed out.

Is it some sort of standalone program interfacing with the game, or is it built into a source port like PrBoom or whatever? Probably the latter, right?

It would definitely be neat to spawn co-op bots that tag along with the player. Or you could combine this with OBLIGE and have your computer play with itself forever!!

Share this post


Link to post

It's already open source, I just haven't bothered linking to it :) https://github.com/ioan-chera/AutoDoom

I haven't uploaded any release yet because I'd rather improve things so it doesn't flop all the time (believe me, it does; the demos here are lucky examples after many tries).

It's based on Eternity, which can subsequently record vanilla demos.

EDIT: here's the video. YouTube thinks it's shaky and would like to stabilize it!

Share this post


Link to post

I meant to post in this thread a long time ago but I kept forgetting. Anyway I've been watching these demos and I love it! This is an enormous leap from autowolf it seems. At the time you made autowolf i was sure I'd never see something similar for Doom. Im really impressed!!

the way it runs up to monsters and effortlessly berserk punches the shit out of them is my favorite. If i had developed it myself id probably never make any progress as id be constantly be running it through different wads to see if i can kill it!

id love to see it some day perform that sidestep left, right, left maneuver with mancubi and show the most efficient way to shake a revenants homing missile. So cool, printz! Can't wait to see more!!

Share this post


Link to post

The Tyson bit was impressive.

Looks like the next step would be teaching it how to deal with hurtfloors.

Share this post


Link to post

The funny thing about projects like this is that the impressive-looking stuff (like effortlessly berserk punching enemies) is relatively trivial, and the banal parts (like the bot actually moving around properly) are the really impressive stuff.

Share this post


Link to post
Linguica said:

The funny thing about projects like this is that the impressive-looking stuff (like effortlessly berserk punching enemies) is relatively trivial, and the banal parts (like the bot actually moving around properly) are the really impressive stuff.


printz already created AutoWolf (more details in his signature) a year or two ago, and that was really fascinating at the time too. It looks like a good bit of that carried over, but obviously Doom is much more complex than that, regarding the weapons, variety of enemy attacks, and much more complex in-game map actions.

Share this post


Link to post

Wow, this is really fascinating to see Printz! If I didn't know that was a bot, I'd probably buy that it was a human player just at a glance. Great job!

Now pair it with Oblige and have it play Doom until the heat death of the universe.

Share this post


Link to post

Thanks everyone! Now things are getting less trivial and I need to put my head to test, because it's no longer easy.

ASD said:

Can AutoDoom run multiplayer? Would the bots avoid friendlyfire in coop?

Sadly not for now. It's based on Eternity, which I believe has broken multiplayer (I did try AutoDoom on multiplayer once, and one peer suddenly quit, while the other froze -- it's possible that even if it worked, one peer would fight for bot control with the other). I should think of a vanilla-demo-compatible way to put bots in the level, probably from one node or from some choco-compatible server. Or maybe a way to connect to Chocolate-Doom servers to screw those games up.

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
×