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

Visual Doom Bot Competition

Recommended Posts

I suppose the depth buffer access is intended to shift the focus on the competition to reacting to the situation a lot more than trying to just read it. It does foil the description a bit, but it's still a valid challenge, I think. Probably without this access most of the time developing a bot would be spent just on figuring out a reliable method of figuring out how far something is, rather than the actual gamey parts. Doom on its own is a lot more complex than what most visual learning game bots have been made for (2D platformers like Mario with simple graphics and few colors, no varying lighting conditions, etc.) Doom's lighting is made even more complex to read thanks to its fake contrast. So the depth buffer access just helps to bridge that gap.

My question is exactly what access the bot has - can it access the console? Can it change its player color to try to blend into the map? If other bots are programmed to look for a green marine that sure could throw them off. Can the bot read data from the WAD itself to know best what to look for? I guess not, because that's also more than visual input.

EDIT: In fact, I don't see anything about depth buffer access on the competition page, just "access to the screen buffer as the only information". Only the ViZDoom page mentions the depth buffer. Possibly the competition doesn't use the depth buffer feature of ViZDoom. Though this should be clarified for sure.

Jon said:

I guess that implies GL-only too.

The lighting and color falloff looks distinctly software-rendered.

Share this post


Link to post

You should be able to pre-calculate a hash of vertical wall slivers of various heights (if they use standard textures). If not, an algorithm could still guesstimate how close a wall is by how often pixels are repeated down a vertical strip. This is, of course, complicated when a pixel is actually doubled in the source texture. But, for a given wall sliver, you just need to find one non-repeating set of pixels to determine distance. Two adjacent strips lets you approximate wall angle.

Monsters/players could be measured the same way, and angle calculated by which image you detect. Floor and ceiling would further complicate things, but, most of the time, you can assume that the floor and ceiling will be at the lower and upper portions of the screen, with the walls in the middle.

Doom, being Doom, allows for some exploitation of the idiosyncrasies of Doom's method of rendering, smoothly-scaling textures being one of the biggest.

Still, that's a lot of screen scraping. It's an interesting concept, but I'd be more interested in a bot competition where the bot has access to dynamic map data, mobj positions, including self and other players, weapon states, etc. There's a lot of neat AI that can be done in that scenario, without having to blow your CPU (and programming time) budget on making electronic eyes and visual cortex.

Either way, if enough time is given, this promises to be fascinating!

Share this post


Link to post
kb1 said:

You should be able to pre-calculate a hash of vertical wall slivers of various heights (if they use standard textures). If not, an algorithm could still guesstimate how close a wall is by how often pixels are repeated down a vertical strip.

I had similar thoughts myself.

However it seems to me that this competition is NOT targetting people like us who have an intimate knowledge of how Doom's software renderer works, but rather the deep-learning AI people, like the nVidia guys who trained a neural network how to drive a car based solely on the pixels from a camera.

Share this post


Link to post

And after a long five months our results are...


Um
You can find a few test runs (and the full match once it's uploaded), on the contest's YouTube Channel. And the contest results themselves can be found here, on the main site.

Share this post


Link to post
×