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

Neural nets sort of generate Doom maps but not really

Recommended Posts

Here's the research paper if anyone is interested, sadly i don't think there are any download links for the generated levels, but there are some layout screenshots that are interesting

Fascinating stuff

Share this post


Link to post

All the articles about this paper are BS. In no way did they generate new Doom levels. They generated 128x128 images that look vaguely like a really small picture of a Doom level's layout.

Share this post


Link to post

This is really, really, really old news. By 17 years. All you need to mimic this is a computer that runs SLIGE or Oblige.

Share this post


Link to post
12 minutes ago, Pure Hellspawn said:

This is really, really, really old news. By 17 years. All you need to mimic this is a computer that runs SLIGE or Oblige.

 

Nope.

Share this post


Link to post

would love to witness what a neural net mapgen bot would create if it wasn't allowed to look at doom.wad or requiem or scythe or any of that

train it on weird stuff like ALT, Swim with the Whales and Hellcore

marvel at the neurotic results

Share this post


Link to post
Posted (edited)

I'm just here to say how awesome Oblige is!

 

* back on topic without a new post *

 

I read the article and it feels like its a staggering lack of proof to take this article seriously and be wowed by it. This single line to close the article summarizes it entirely: "Both are currently prototypes and are not available for players to test."

 

A selection of 1,000 - 9,000 human made maps for the AI to study can turn into some outstanding garbage. Sure its a feat of human engineering to make an AI that can make levels, but from the sound of it... these levels will be too mundane. I say sound as there's again little to no proof. Is it just giving vertex points and a human plays connect the dots?

 

The article never specified how its designing these levels. Is it using Wad Ed 1.83? Doombuilder? Lunar Magic? Is it just designing the levels on paper then a human turns them into reality? It doesn't just magically happen. Is there a robot working a keyboard? Is the .wad authoring program on the same computer as the AI?

 

"The human designers can focus on high-level features" ... If humans can focus on high-level features... why not make the little fluff pieces too? The lifts, the doors, the corridors, the mundane? All that stuff takes time, sure, but won't it take time to tear out something a computer made to enhance it? Perhaps the idea is to stick a door and then a human would add a high-level feature?

 

For an article with "Super Mario" in the title it gets a mere mention at the bottom.

Edited by geo

Share this post


Link to post
2 hours ago, yakfak said:

would love to witness what a neural net mapgen bot would create if it wasn't allowed to look at doom.wad or requiem or scythe or any of that

train it on weird stuff like ALT, Swim with the Whales and Hellcore

marvel at the neurotic results

Don't forget nuts.wad, gotta have it learn that more monsters = better monsters

Share this post


Link to post

Aw hell, this is what I've been trying to do with Wolf 3D levels!  I converted over 7500 Wolf 3D levels and tried to do both a variational autoencoder and a DCGAN but both of mine gave me pure junk; I'll have to look at how they actually set up their networks to get such nice output.  My last attempt is to use a LTSM RNN to treat a Wolf 3D map essentially as text - trying to build a "sentence" (map) of "words" (rows) of "characters" (tile type - solid wall, empty, door).  That at least won't give me a blurry mess but we'll see if it can figure out rooms that way.

 

I wasn't planning on actually spitting out a playable level either, but at least it would be a lot simpler with a Wolf 3D map since they're so rigidly structured.

Share this post


Link to post

hmm, the claim I'm seeing is that the thing isn't producing actual levels, but the conclusion does seem to talk about "playing" the levels as if they were loading them up in game and checking them out. I'd figure maybe they'd show screenshots of that to demonstrate the presence of height, though? Part of the paper does seem to be about filling out heights and the like.

Share this post


Link to post

I think their figure 13 is wrong; there’s clearly some duplicated images. I wish they would have posted their source code somewhere :(

 

I don’t get their conclusion, either. Translating that output back to a playable Doom level would be a fairly massive project by itself. 

Share this post


Link to post
19 hours ago, yakfak said:

would love to witness what a neural net mapgen bot would create if it wasn't allowed to look at doom.wad or requiem or scythe or any of that

train it on weird stuff like ALT, Swim with the Whales and Hellcore

marvel at the neurotic results

Why not throw in The Sky May Be and see what the bot learns from that?

Share this post


Link to post

When I speculate about this kind of stuff on here, it's taken as a joke. I suppose it's only worth discussing when it actually occurs.

Share this post


Link to post
Posted (edited)

The problem with ideas like this is that there are so many small little things that collectively contribute to the overall layout of a level that making the AI take all of them into account as well as the context in which they should be applied would be extremely difficult. Another problem is the AI can only be made to create levels in a single style, so even if they looked good they would all feel the same.

 

And lmao at trying to feed the AI data from thousands of completely different doom levels when the design of these levels are completely different from level to level meaning there might not even be any real design pattern anyway.

Share this post


Link to post

One of the things I like about this research paper is that they various games (Diablo, Starcraft, Rogue, No Man's Sky, etc.) and they include the company as the author (if a single author doesn't exist). So they have authors like B. Entertainment and H. Games.

 

On another note, the set of levels that the authors appeared to use were levels all one one floor (so, either no height variation or no height variation accessible to the player) and could be fit into a 128x128 image (so no sprawling maps). Therefore, the maps that the program learned from would probably be regarded by this community as "not very good."

 

It would be nice to see images from within the game. If copyright were an issue, the authors could use Freedoom (and reference it, of course).

 

That all being said, the outlines of the levels as shown by Figures 12 and 13 look like they would be at least as good as "typical first map."

Share this post


Link to post
32 minutes ago, hardcore_gamer said:

The problem with ideas like this is that there are so many small little things that collectively contribute to the overall layout of a level that making the AI take all of them into account as well as the context in which they should be applied would be extremely difficult.

The point of a Generative Adversarial Network is that you don't have to do this.  One neural network is creating random output and a second one is trying to distinguish real inputs from fake inputs.  You pit these two networks against each other and over enough iterations the generator will get better at fooling the discriminator and the discriminator will get better at spotting fakes.  This is opposed to something like Oblige/SLIGE where a human has to create all rules for making a level.

 

It's an incredibly powerful and neat technique and it's magical when it works.  GANs can pick up some really complicated patterns and can really surprise you.  When it works.  The biggest issue with GANs is that they're incredibly hard to train.  Under the hood this is all math - statistics, linear algebra, and calculus.  It's very easy to get it into a state where the generated output is statistically similar to the real data but looks like meaningless noise to humans (this is what happened to my Wolf 3D attempt).  I would love to understand how they managed to get output that was at least vaguely similar to the real inputs because I didn't even get that far.

 

The real point of that paper is that they tried to improve the process by feeding it more data about the level - not just a snapshot of what the overheard view looks like, but additional information about floor heights, wall outlines, etc.

 

Is this a practical way to create a Doom level?  In my opinion, not really.  One of the hardest aspects of machine learning is representing the problem you want to solve in a way that can be applied to machine learning.  I had thought about using Doom instead of Wolf 3D for my stuff but there's no obvious way to represent a Doom level in a useful fashion (just look at how they had to limit and mangle the maps to get consistent inputs).  Wolf 3D, on the other hand, seems far more suitable.  Probably 99% of maps are 64x64 and they're composed of simple independent tiles (you don't have higher-level concerns like making sure sectors are closed).

 

I suspect that a truly practical Doom/Wolf3D level generator using machine learning techniques would be a hybrid approach.  Break the overall goal of generating a level into smaller sub-problems and try to apply machine learning in each aspect of it.  For example, at a high-level figure out the "script" of a level - explore a bit, light encounters, stock up with a ton of ammo, fight a sub-boss, etc. From the script, create a series of rooms that match these encounters.  Pick a theme and decorate the rooms.

 

Machine learning can absolutely help with any of these sub tasks, assuming you gave provide it good data.  How do you retroactively figure out the 'script' of a Doom level?  How do you translate a script into a series of rooms?  How do you decorate a room?  Some of these steps are way easier without trying to do ML but the concept of taking advantage of 20+ years of user created content is really appealing.

Share this post


Link to post
Posted (edited)

Oh hey I found their source code!!! https://github.com/DanieleLoiacono/DoomGAN

 

This has a video and an example WAD to download(!).

 

EDIT: Yeah ok this isn't the code :( :( :(  I should have looked for more than 5 seconds before posting.

EDIT2: After spending a few more seconds looking at it, it appears they're uploading this stuff now so maybe it's forthcoming

Share this post


Link to post
Posted (edited)

I'll start getting worried no earlier than the neural net creates a Doomworld account and begins asking questions in Wads & Mods.

Share this post


Link to post
4 minutes ago, Soundblock said:

I'll start getting worried no earlier than the neural net creates a Doomworld account and begins asking questions in Wads & Mods.

 

We already have this and its name is Brandon D. Lade

Share this post


Link to post
3 hours ago, GoatLord said:

When I speculate about this kind of stuff on here, it's taken as a joke. I suppose it's only worth discussing when it actually occurs.

That is correct

Share this post


Link to post
Posted (edited)
Just now, fraggle said:

That is correct

Isn't it kind of silly to dismiss something if later it turns out to be true? I literally predicted A.I.s making Doom levels a few weeks ago.

Share this post


Link to post
4 minutes ago, GoatLord said:

Isn't it kind of silly to dismiss something if later it turns out to be true?

Maybe but I think we'll manage regardless

Share this post


Link to post
Posted (edited)

I hate when people make short cryptic statements with no explanation. :(

Share this post


Link to post
23 hours ago, Pure Hellspawn said:

This is really, really, really old news. By 17 years. All you need to mimic this is a computer that runs SLIGE or Oblige.

 

21 hours ago, geo said:

I'm just here to say how awesome Oblige is!

 

It's only superficially similar -- neither SLIGE nor Oblige are powered by neural networks. They're simply random procedural generators. Here we're talking about an artificial intelligence learning to make maps; in SLIGE and Oblige all the intelligence is in the writing of its algorithms and the creating of its data sets.

Share this post


Link to post

Stop this derail now please. Writing in a thread that "maybe AIs will make Doom levels one day" does not make you a prophet.

Share this post


Link to post

One odd thing I noticed looking at the example wad provided is that each wall is divided up into a bunch of small segments, I wonder if this is a sign of how they're getting this output. Take the line image and generate lines from each pixel of it, fill in heights with the heightmap images, and so on. I guess we'll see if they upload the source onto that github repo.

Share this post


Link to post
1 hour ago, InsanityBringer said:

One odd thing I noticed looking at the example wad provided is that each wall is divided up into a bunch of small segments, I wonder if this is a sign of how they're getting this output. Take the line image and generate lines from each pixel of it, fill in heights with the heightmap images, and so on. I guess we'll see if they upload the source onto that github repo.

Yeah, maybe I'm overestimating how hard it is to generate a Doom map from a picture.  Are there any existing tools that do something similar?

Share this post


Link to post

I can't recall anything that does it being developed outside of this, but it feels like they have all the information they need. maps defining what's playable space vs. void, maps defining sector heights, maps defining triggers, maps defining things, etc. It seems like it would be possible to do.

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
×