Hello, and welcome to the NVIDIA AI Podcast.
I'm your host, Noah Kravitz. Originally launched in 1993, Doom is one of the most iconic and successful video game franchises of all time.
On the way to selling over 10 million copies, Doom helped pioneer several mainstays of modern gaming.
3D graphics? Now, this is back on MS-DOS base PCs, but still, 3D graphics. networked multiplayer, and user-created game levels.
Today's guests have taken that last concept, gamers creating new levels for the games they play, to a new arena.
Deep learning. Daniele Locono is an assistant professor at Italy's Politecnico di Milano and was the core advisor on Eduardo Giacomello's thesis, which involved using the data from user-created doom levels to train their own deep learning algorithm to generate new levels of its own.
Can AI create video game levels that are authentic and more importantly, fun to play?
Could this sort of technique do some of the time consuming and expensive work of content creation for the gaming industry?
And how does this work, anyway? Daniele and Eduardo are here to talk about their work and what it might mean to the future of games and content creation.
Gentlemen, thank you so much for joining the NVIDIA AI podcast.
Hi, thank you for having us. I'm Daniele.
I have a daughter and I am happy to be here.
Very happy to have you joining from from Milan right now.
So thank you for making that work. And even though you helped train me before we hit record, I'm pretty sure I mangled your family name, so I apologize for that.
No problem. So let's get right into it.
We came across some articles online about your thesis work, Eduardo, and just Super cool from the beginning.
Anything involving Doom catches the eye.
But the work that you did using... user-generated levels to train your algorithm to create new levels.
Just fascinating stuff. So tell us about it.
We designed the system to... generate levels for a first person shooter.
And we decided to use Doom as our training data.
So we applied the generative adversarial networks from a young fellow.
Actually, we used variants of this model, which help in the stability.
And we basically did this work first of all to prove that GANs are capable of generating this kind of data.
And then we tried to give the opportunity to a level designer to specify some high-level features that he can see into the generated levels.
For example, if you want to generate a particular shape of a level, you can ask the network to generate a level which has some similarity to the level you're thinking about.
Right. So a bunch of questions here, and you can feel free to reorder these in the order that makes the most sense.
But you got started there. There are Doom levels for Doom and Doom 2, I believe.
There are thousands of of levels available online, some of them official levels, some of them user generated.
And so my understanding is you started with about a thousand of these levels, just a great data training set, pull them down from online and use them to start training your year again.
And you mentioned talking about some of the actual objects and features that you would create.
I'll admit I'm familiar, but I'm not a long-time Doom player or expert.
So were there particular features of the game or features of the levels that were interesting easier, or maybe more interestingly, harder to train your system to generate.
Well, we tried to keep the model as generous as possible.
Okay, we only used doom because of their particular format of the levels, which are easily representable as images.
So your system is actually meant to be more of a universal first-person shooter system.
The actually generated level can be ported to even brand new video games.
Oh, very cool. OK. But they actually rely on patterns that are learned through layers.
So are the – and not to go too deep into gaming, but it's NVIDIA gaming.
That's fine. Are the different – Game platforms are games now designed to be sort of interchangeable in that sense.
And you talk about porting it from from one game to another.
Well, yeah, the point is right now we try to design the system to be as general as possible in the meaning that you basically... you basically in principle could apply this approach to any kind of content that can be visually represented in an effective way.
So basically, Right now, for example, all the features we used to evaluate the content generated by the network in this work, are mainly based on basically graph theory, so it's just metrics on graphs, so any kind of content in this case that is actually a map can be generated in a evaluated by this kind of model.
And what the other was basically meaning is that in principle, If we have access to a game format, for example, we did a previous work not with deep learning, but with evolutionary computation on an open-source first-person shooter that is called CUBE.
In principle, we could take the level generated for this work and create maps for these other multiplayer first-person shooter.
Of course, the problem is that these levels are generated by learning the structure and the patterns of Doom levels, so you could expect them to work better in the original game because the game mechanics are matched by patterns you find in the level, actually.
That's the point. Right. Through the course of your work, have you given access to your system to game designers to kind of get their input or to talk about how it might help their work? going forward, whether they're professionals or amateurs?
Well, unfortunately not. It would be very nice.
We, as I mentioned before, This is not the first work we did in the field of content generation with AI.
This is the first time we applied actually deep learning to do this task.
We tried in the past to... and get some designer involved and try to understand how designer, if designer could find this useful.
It's promising as an approach. Some designer are attracted by the point that Eduardo stressed before and the answer before that is basically the possibility of working at the more high level, at the higher assumption level, so basically They can, for example, focus not on the design of the low-level patterns, but more designing the target, the goal that you have in mind for the player, and leave the algorithm to do the actual work of putting together everything in order to satisfy the requirements from the designer.
Right. We've had in past episodes, I talked to a company who's doing something similar for graphic design. very similar thing and sort of concept that they outline that it's giving the designer that sort of high level, you know, dictating sort of how you want to go and letting the system do the grunt work, if you will.
You know, the implications, and I would assume the same for gaming industry, for any kind of content really, free the artist up to sort of work on the vision.
And it also saves time and resources doing that sort of lower level execution work.
So how long ago did you first, either together or separately, start working on this general type of, whether it was using deep learning or not, This general concept.
I think it's five six year. We were working.
Okay stop in game research community in the past few years.
So that's long enough. It's a good long chunk of time.
What, if anything, has surprised you? along the way or were there any things that were kind of unexpected but turned out to be sort of breakthrough moments for you?
Well, I would say that mainly the thing that is very interesting is that Right now, we start having really computational power to really scale up to realistic gain content I mean when we started at the very beginning we mainly focused on trying to to generate content that is very simple.
Right now, we are really starting being able to at least try to generate content that can actually be used for real productions.
Right, right. one of the most interesting thing right now as a trend.
And how much of that is a function of you know, you just needing the time to put in the work to to make your your algorithms and your sort of conceptual thinking better?
And how much of that is a function of the hardware just having improved so much over the past five years? really a lot i mean the especially this is really highly dependent on the hardware capabilities yeah That's definitely the most important aspect right now in respect to this.
I would say also that along the evolution of this field, another interesting development is a very recent trend, is also the possibility of having the human factor, let's say like this, more involved in the process.
With respect to the early work, right now there are much many models, much many work that actually try to keep the human designer in the loop. while in the past was more, let's try to see if a computer can generate something from scratch. right now is can we build something that can assist human designer is work better?
And sometimes this is dependent also on the technique, on the approach, and ultimately on the hardware, for example. in the work of Eduardo, the nice things about working with the image, and with the deep neural network is that you can try to make the algorithm work by example,
That is, as a designer, I could provide to our network a few levels that I like.
Sure. I design myself and ask to the model, please generate similar new level to the one I provided you.
And the learning by example is something that is possibly thanks to the capability of Deep Neural Network to really crunch this huge amount of data that is actually all the pieces in the images.
So that's also a function of the other capability you have right now.
So it's a more mixed thing. There are some advancements that basically are more related to A new paradigm that we are developing as researchers are many other advancements that actually depends heavily on the new capabilities we have with the new power of the new hardware.
So basically, both of them are important.
We're speaking today with Daniele Luacono and Eduardo Giacomello. both of Politecnico di Milano in Milan, Italy.
Danielle is an assistant professor. Eduardo, you just graduated, correct?
Yes. Congratulations. Eduardo's thesis was about using deep learning and GANs to create levels for the video game Doom, training the algorithm off of levels already out there in the public sphere, thousands and thousands of levels created by the game makers themselves and even more created by the players of the game.
Let's shift focus just a little bit. And Eduardo, how did you get into this?
Are you a gamer? Were you more interested in kind of the broader implications of gaming?
AI on content creation? Was it just a happy accident somewhere along the way?
How'd you get into doing all of this? Well, let's say I always have been a gamer, so I got the passion of about video games that in university i could attempt to video game design course there i actually knew that making a video game is possible without enormous effort.
So I also got interested in AI and I was looking for research project that could merge the two things.
So I asked my advisor and they proposed me this new field, which applies machine learning to the procedural content generation. which is the current state of the art in automating the level design.
So I had the opportunity to work on this brand new concept.
Eduardo, what's your game? Are you a Doom fan originally?
I always liked first-person shooter, so I remember playing Doom and since I read research papers that Some are real and other researchers from University of California proposed.
I decided to take a step on this because the majority of the work in this field is focused on platform games.
So I thought it was an opportunity to extend these concepts also to FPS games.
Right. So this was the is this the Super Mario work that you were talking about from Cal Berkeley?
Yes. Yeah. OK. Right. So a platformer. Sure.
So you took it into first-person shooter land?
Yes. Very cool. And Daniela, are you a gamer as well, or is this just sort of one of the...
Perks of the job that you get to work with.
Unfortunately, I'm older than Eduardo, so I was there when Goomba...
Yeah, I can relate. I can remember very well, so I was really into Doom when it was...
It was released past then and so it was really exciting to I admit that I discovered recently that the community is still so huge, you know, There are still a lot of people playing, there are still a lot of people creating levels, so it was really exciting to... see the game again play again the game after summer here so yeah definitely very cool And beyond the work on this project, are there other things that, Danielle, I'm sure as a professor, you have your hands in? different implications of the research.
And Eduardo, you've probably been focused on this, but are there other Either applications for, you know, you mentioned this wasn't set out as specific to Doom, and it's portable to other platforms.
Other implications for the work that you're doing either within gaming or other types of content creation that you're excited about?
Yeah, well, actually the possibility of taking these, trying to generalize this kind of approach to a family at least of games is one of the direction we are headed toward.
Of course, Right now, still there are some game-dependent components in each game. approach more than you find out in the literature because basically at least the evaluation, at least the way you compute the feature are specific to at least the family, the genre of games, but definitely really the Interesting thing, the promising direction will be try to make this kind of a technology available in some tool really used by the designer.
For example, Unity 3D. So we, for example, worked on trying to make some intelligent component plugin for Unity to improve the knowledge of the designer as soon as he's creating new levels so we did for example project on platformer where Unity environment is enriched with some AI tools algorithm that allows the designer to understand which are the more difficult area of a level is designing.
This for sure is a fascinating perspective.
Besides the gaming, I think that There are other areas where content in general is critical.
If you think about, for example, the assets in general in any entertainment experience, This is the area where computer generated stuff can be important, not only in gaming, Or, for example, in education, you might think that a problem generated by a machine can be in the future be helpful to create, for example, problems that are specific for specific students for his need, for his learning curve.
Right, adaptive content, yeah. Yeah, that's a possible scenario.
Yeah. this kind of algorithm can be really proved to be effective in different areas.
Now, if you can put them together and have real-time generated doom levels that also teach history and ethics and mathematics along the way, I think you'll have something there.
Yeah. So, Eduardo, we mentioned at the top that this is your thesis and you're just graduated.
What is on the horizon for you personally and also for your work?
Well, I hope to, let's say, increase my knowledge of this area and possibly work more on these or maybe to apply machine learning even to other problems.
I think that machine learning is a powerful tool.
So I'd be glad to apply machine learning in contexts that are maybe even helpful from a human point of view in health applications.
But I think that even the entertainment area is quite fascinating.
Absolutely. And we sometimes take for granted because it's so fun that When the folks who are working on the hard problems of the world, they need to be entertained too.
So entertainment itself, I think it can further the overall. purpose of what we're trying to do.
One question that I have to ask is, have you thought about it all?
And this may not even be a possibility. of kind of flipping it around and using AI to create the ultimate Doom player.
Someone who can kind of figure out on the go from scanning the environment, figure out what's going on, and just be the best robot Doom player ever.
Yeah, I read about... some research that is done in this field.
They are actually even competition between bots in Doom.
It could definitely be interesting to see how a bot can learn to play in a generated level.
So, more than trying to make a boat, I would be interested to see how it changes in the environment. in a procedural generative environment could affect the behavior of an AI bot.
Yeah, it's where it's all headed. Absolutely.
It's fascinating stuff. Daniela Eduardo.
Thank you so much for coming on the podcast to talk about your work.
I know that some of your research has been published, and I think there's a YouTube video of one of these levels being played.
If people want to find out more, want to see the Doom levels in action, where can they go online?
Yeah, there is an archive with the report of the people we... that will be also published as a proceeding of the conference that will be in Ireland in August.
And there is a GitHub repository that we created to provide some, there is an example of the generator level We'll soon release more examples of generated levels. as soon as possible, also hopefully some tools to allow people to generate their own level.
Oh, fantastic. And then there is a video, a short video on YouTube about the project that just show high level structure of the project so basically these are the most important channels so the report and the GitHub repository Fantastic.
So you can go check that out, whether you want to dig into the technical details on GitHub or...
Watch the video on YouTube. Both. Read the proceedings.
Read the papers. Excellent. Well, good luck at the conference in August.
I'm sure it will be a success. Well-deserved.
And again, Eduardo, Daniela, Thank you so much for coming on to share a little bit about the work you're doing with Doom and the future will be interesting.
It goes back to that thing about how the robots, so to speak, are here to help the humans, not replace us.
And it sounds like. For the world of video games and content creation, you're working on some tools that may take, you know, may spawn the next Doom, whatever it is. with a lot of the low-level content being created by computers.
That would be fantastic. So gentlemen, thank you again.
Thank you. Thank you for having us. Thank you.