Jump to content

[AutoDoom NEW WEBSITE] You can now play Doom coop with a bot


Recommended Posts

Death Egg said:

Nice! If this ever gets advanced enough, will it get merged back into Eternity Engine as an option?

I hope so. I wonder what would block me from doing so. What do Quasar, Altazimuth think of this? Especially if I make the bot not a default setting (so you don't automatically start as a bot or with a bot companion).

EDIT: indeed, this would work as a nice upgrade to the MBF number of single player helper dogs.

Share this post


Link to post

Looks fun except for when it escalated quickly after you got blasted in the back by the bot (0:21). Can friendly fire be disabled?

Share this post


Link to post
printz said:

  1. If you don't use the -bots command-line parameter, the main player (you) will be the bot, so it will be like a non-interactive demo.
  2. To be able to control your player and play coop with bots, add the -bots n command-line parameter, where n is the number of coop bots. For example if it's you and one bot, use -bots 1.

Is there a way to add multiple bots and still have them all be controlled by the AI? Although mostly for the novelty factor, it would be fun to spectate a team of bots taking on a level, just as it is seeing one bot do it alone.

Share this post


Link to post
Nevander said:

Looks fun except for when it escalated quickly after you got blasted in the back by the bot (0:21). Can friendly fire be disabled?

Trust me, it happens rarely enough :P The bot avoids firing if an ally is in the way, but because of the small delay between clicking and firing, there is sufficient time for others to get in the way of the bullets.

Revenant100 said:

Is there a way to add multiple bots and still have them all be controlled by the AI? Although mostly for the novelty factor, it would be fun to spectate a team of bots taking on a level, just as it is seeing one bot do it alone.

Yes, by using -bots 2 or -bots 3. The problem is that they can get deadlocked like the chess pawns sometimes, but otherwise they cooperate nicely. They tend to go in tight groups.

And if you omit -bots, the main player will be the bot, in single player.

EDIT: I've updated the Windows release.

Share this post


Link to post

That works, but I meant also having the "player" become a bot too so everyone in the game is AI-controlled. I've realized just now I can simply leave my player idle at the spawn and spectate the bot team doing their thing, effectively identical in practice unless the spawn area becomes a danger zone. Edit: Also, a full team of 4 bots isn't possible this way.

Share this post


Link to post

I may consider adding a -selfbot parameter which turns the console player into a bot. This means that by default AutoDoom will run like Eternity.

I'm thinking about making the bots ape tricks from human players. Currently nothing like this is implemented. This would make coop sessions more constructive for bots than all-bot ones, but would also turn bots into "second fiddle" players, who only do things which other smarter people already did.

EDIT: Updated Mac link.

Share this post


Link to post

Cool stuff! But these bots don't know how to obtain red key from MAP02 Underhalls. Probably they unable to "jump" to red key building.

Share this post


Link to post

Yeah, I'm working on that now :)

I'm thinking of making it learn either from the human players (or demo recordings) or even better, learn about jumpable slopes from invisible random roamers who are subject to Doom's physics. Might be easier than trying to calculate at startup time based on some analytical quasi-accurate formula.

Share this post


Link to post

UPDATE: AutoDoom now has its own website, AutoDoom.net. Since it's at the start, it looks like a regular Wordpress blog. What's more important about it is that releases will be published there. Visit it regularly for updates. I'm planning to automate the update later, so you no longer have to worry about this, and the bot will be up to date. I'm planning frequent releases.

Share this post


Link to post

Windows link doesn't work for some reason. Gives me the "site can't be reached" page on both Chrome and Firefox.

Share this post


Link to post

I've no idea why it happened, but it was frustrating as hell. Hopefully now it's fixed. I had to change the pattern of the name of the zip file for it to work. So the download link is also changed now.

Share this post


Link to post

Printz, This is massively impressive! Your bots have very intellegent, human-like movements and abilities - great job! You'd almost have to dumb them down to use them as coop helpers!

 

The only indication I saw that they were bots was when the bot would ride up a lift and aim at a not-yet-visible monster. But that could be equated to a player that has played the level before.

 

When I get some time, I'd love to check out your decision tree and how it resolves conflicts. Keep up the good work!

Share this post


Link to post

Played vanilla episode 1, and I was very, very surprised and impressed they activated all the secrets themselves. The second they stood on the secret elevator across from the shotgun, they immediately ran to the exit, but I was impressed they knew how to trigger the elevator and then get on it nonetheless.

Also it's real fun to turn on the automap, activate IDDT cheat twice, and watch the dude run around shooting all those triangles almost like a Geometry Wars screensaver.

Share this post


Link to post
24 minutes ago, AlexMax said:

Could they work as deathmatch opponents?

Maybe, but that requires improved combat skills. Currently it doesn't hunt players in DM. I can maybe look at how other bots do the combat, but I've always been more interested on single/coop however, because deathmatch bots are pretty common by now, and not just in Doom.

Share this post


Link to post
  • 1 year later...

I just want to say printz, thank you so much for this project. For years I always wanted something like this..a true coop bot. The bot works great cooperatively. I was wondering, on certain levels where a specific monster needs to be killed (for example, tower of babel in ultimate doom) the bot will most likely freeze due to an end of pathing to an exit. Is it possible to code him to attack that monster thats flagged as an exit, or maybe have the bot roam or hunt in such a case?

 

A second question would maybe be some kind of follow mode implementation?

Share this post


Link to post
  • 1 month later...
36 minutes ago, Malcolm123 said:

Hello, i have a question, how to add the -bots n command-line parameter in autodoom?

 

You can create a shortcut to autodoom.exe then right click go into the properties and add it there in the target field. Each launcher (ZDL, Doom Launcher, Doomseeker) also has a field for command line paramaters when launching a wad.

 

Here's a screenshot, I'm at work so just pretend it's a shortcut to autodoom.exe and not Chrome. Also, I don't think -bots 4 works, the max is 3.

 

coop.PNG.7108ea2ce6cace5e3f9331906436faf0.PNG

 

 

Share this post


Link to post

@printz: This is incredible stuff, as usual!

Some serious questions for you:

  1. Would you be ok with someone porting your bot code to a different Doom port (with all credits given, of course)? Either code derived from your, or directly lifted and altered minimally to fit. I know your source is released to be shared, but I would not want to use your code disrespectfully, and I'm very interested in the idea of adding your bot code to my port.
  2. Have you considered, and how do you feel about an AutoDoom API? This would be something like a DLL that could add AutoDoom bot functionality to a port in a generic way. For example, there might be a call: autodoom_InitMap that would pass the port's loaded map structure to AutoDoom to allow AutoDoom to initialize its internal map data structures. Then, another call: autodoom_UpdateGame that would give AutoDoom a picture of the mobjs, the state of doors, etc.

What I'm suggesting is that, with a lot of effort, maybe the entire set of variables that AutoDoom needs could be formalized in a way that the same AutoDoom library could be added to a number of Doom ports. I find this idea fascinating.

 

So, are you comfortable with large-scale modification and implementation of your source? I would not consider doing so without your full blessing.

 

Again, great work! Getting DoomGuy to navigate Doom maps is (as programmers would say) a "non-trivial problem" :)

Share this post


Link to post

I'm crossing my fingers for you @kb1. I've spent a lot of time just watching Autodoom blast through maps and would be stoked on any expansion to it.

Share this post


Link to post
On 7/9/2018 at 10:55 PM, xvertigox said:

I'm crossing my fingers for you @kb1. I've spent a lot of time just watching Autodoom blast through maps and would be stoked on any expansion to it.

Thanks, I need all the luck I can get! But I've got so many other things to get done first that I'll be lucky to just get to it :) It is fascinating to watch, isn't it? It would be really cool if AutoDoom bots became a standard. It's the best Doom bot code I've ever seen.

Share this post


Link to post

I wonder how this will handle OBLIGE maps, heh heh (gonna test this)..I'm not speaking over the top Hordes, lots of traps that kind of stuff, but a modest amount of enemies, adequate amount of health, ammo, secrets, etc.

Also, you really should add this port information to the Doom Wiki.

Edited by Glaice

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...