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.
This has been downloaded 48 time(s).
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?
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
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.
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
^ 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.
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:
- 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.
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!
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!!
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.
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.
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.