Readers of a certain vintage will remember the glee of building your own levels for DOOM. There was something magical about carefully crafting a level and then dialing up your friends for a death match session on the new map. Now computers scientists are getting in on that fun in a new way. Researchers from Politecnico di Milano are using artificial intelligence to create new levels for the classic DOOM shooter (PDF whitepaper).
While procedural level generation has been around for decades, recent advances in machine learning to generate game content (usually levels) are different because they don’t use a human-defined algorithm. Instead, they generate new content by using existing, human-generated levels as a model. In effect they learn from what great game designers have already done and apply those lesson to new level generation. The screenshot shown above is an example of an AI generated level and the gameplay can be seen in the video below.
The idea of an AI generating levels is simple in concept but difficult in execution. The researchers used Generative Adversarial Networks (GANs) to analyze existing DOOM maps and then generate new maps similar to the originals. GANs are a type of neural network which learns from training data and then generates similar data. They considered two types of GANs when generating new levels: one that just used the appearance of the training maps, and another that used both the appearance and metrics such as the number of rooms, perimeter length, etc. If you’d like a better understanding of GANs, [Steven Dufresne] covered it in his guide to the evolving world of neural networks.
While both networks used in this project produce good levels, the one that included other metrics resulted in higher quality levels. However, while the AI-generated levels appeared similar at a high level to human-generated levels, many of the little details that humans tend to include were omitted. This is partially due to a lack of good metrics to describe levels and AI-generated data.
We can only guess that these researcher’s next step is to use similar techniques to create an entire game (levels, characters, and music) via AI. After all, how hard can it be?? Joking aside, we would love to see you take this concept and run with it. We’re dying to play through some gnarly levels whipped up by the AI from Hackaday readers!
Paradise means something different for everyone, it could be a sitting by a fire on a rainy night or lying on a sun-kissed beach. But for us, and makers like [liltreat4you], it’s a well stocked scrap pile out behind the house. After buying a racing wheel and pedals for his Xbox, he took a trip out to his little slice of paradise and found nearly all the hardware he needed to build a professional looking race simulator. According to his breakdown, most of the money he spent on this build ended up going into that sweet red paint job and the speed-enhancing stickers.
Not all of us are as lucky as [liltreat4you], and we probably won’t just happen upon a driver’s seat out of a Mazda, or a bunch of perfectly bent metal pipes from an old trampoline out on the back forty. But trolling Craigslist or cruising around for flea markets can still get you parts like these for cheap, so try not to be too discouraged if your backyard isn’t quite as well stocked.
Once he had the metal pipes and seat from the car, the rest of the build came together pretty quickly. After building an oval out of his salvaged pipes, he attached the seat and the arms that would eventually hold the steering wheel and display. A plate was also added at the bottom for the pedals to sit on. By using long bolts, [liltreat4you] was even able to add a degree of adjustment to the wheel position. Being that he got his seat out of a real car, there’s the usual adjustment you’d expect there as well.
Speaking of which, [liltreat4you] casually mentions that you should disconnect the battery of the donor vehicle before taking out the seat, as it’s possible that the removal of the seat or the disconnection of the seat harness can cause the airbags to deploy. We can neither confirm nor deny this, but it’s probably safe advice to follow.
It wasn’t too long ago that one could conjecture that most hackers are not avid video game players. We spend most of our free time taking things apart, tinkering with microcontrollers and reading the latest [Jenny List] article on Hackaday.com. When we do think of video games, our neurons generally fire in the direction of emulating a console on a single board computer, such as a Raspberry Pi or a Beaglebone. Or even emulating the actual console processor on an FPGA. Rarely do we venture off into 3D programs meant to make modern video games. If we can’t export an .STL with it, we’re not interested. It’s just not our bag.
Oculus Rift changed this. The VR headset was originally invented for 3D video games, but quickly became a darling to hackers the world over. Virtual Reality technology is far bigger than just video games, and brings opportunity to many fields such as real estate, construction, product visualization, education, social interaction… the list goes on and on.
The Oculus team got together with the folks over at Unity in the early days to make it easy for video game makers to make content for the Rift. Unity is a game engine designed with a shallow learning curve and is available for free for non-commercial use. The Oculus Rift can be integrated into a Unity environment with the check of a setting and importing a small package, available on the Oculus site. This makes it easy for anyone interested in VR technology to get a Rift and start pumping out content.
Hackers have taken things a step further and have written scripts that allow Unity to communicate with an Arduino. VR is fun. But VR plus physical reality is just down right exciting! In this article, we’re going to walk you through setting up your Oculus Rift and Unity game engine to communicate with the outside world via an Arduino.
Apex Minecraft hosting recently held a scholarship competition. The person who sent in the best essay would win a $2,000 scholarship. The winning essay starts, “Five years ago, at age 13, I built an entire computer from scratch. Assembled from basic components: wires, torches, repeaters, pistons, and blocks, it was capable of rendering images to a display, multiplying and dividing numbers, and even calculating square roots.” I had to read it twice before it clicked that he was talking about a computer built entirely in a fictional universe.
It’s no wonder that he’s now a freshman at college, pursuing a degree in computer engineering. After reading this, I started to reminisce. The first computer I ever had access to was my mother’s laptop. It had an install of QBASIC on it, and I remember using it to make a few text based games. Later on when we got our first family computer I remember spending hours getting no better at video game programming using QBASIC.
It went on and on. I remember doing AI for video games in DarkBasic. I remember doing physics and collisions. Eventually I found my way to html, then php, to make websites about games (which are too terrible to share with you). So when the time came to program robots I was absolutely fearless. It just seemed like such a natural extension of what I already knew that it never occurred to me to be thankful for the time I spent trying to make my own simple little games until much later.
In the end I am still occasionally making little forays into game programming when I want to learn a new language or get back up to speed. It never occurred to me that perhaps this was just the way I’ve always learned a language.
Later on in the winner’s essay he goes on to describe his minecraft community. They taught new players. They taught themselves. They hung out and became friends. The writer gained a sense of self as a user of computers, a teacher of skills, a good member of a community, and a solver of problems. Unlike some of his classmates he won’t go to college and have to learn if he’s good enough. He’ll already know. All it took was a silly block based game.
Did any of you have seemingly frivolous endeavors show up as a foundation for your life and learning far into the future? Tell in the comments below how this ended up shaping your career.
We’ve seen a proliferation of real-life video game builds lately, but this one is a jaw-dropper! [Tomer Daniel] and his crew of twelve hackers, welders, and coders built a Space Invaders game for GeekCon 2016.
[Tomer] et al spent more time on the project than the writeup, so you’re going to have to content yourselves with the video, embedded below, and a raft of photos that they sent us. ([Tomer] wrote in and wanted to thank each of you, and his sponsors, by name, but that would be a couple paragraphs on its own. Condider yourselves all thanked!) Continue reading “Real-Life Space Invaders with Drones and Lasers”→
[Rudeism] loves playing Blizzard’s hit game Overwatch. He wanted to make his gaming experience a bit more realistic though. One of the characters is D.Va, who according to game lore is a member of the South Korean Mobile Exo-Force (MEKA). D.Va pilots her MEKA in game using two joysticks. Overwatch is a standard FPS with WASD and mouse controls, so the realism ends at the screen.
[Rudeism] didn’t let that stop him. He used two flight sticks to create the ultimate D.Va experience. [Twitch recording link – language warning] A commercial software package called Xpadder allowed him to map movements on the joystick to mouse and keystrokes. The left joystick maps to WASD, left shift, Q, and right click. The right stick corresponds to mouse movements, E, and left click.
This isn’t exactly the tank style steering we’re used to from classic mech games like Virtual-On, but it’s pretty good for a software solution. It makes us wonder what would be possible with a bit of hardware hacking – perhaps a Teensy handling the analog and button inputs.
Storytelling is an art. It stretches back to the dawn of man. It engages people on an emotional level and engages their mind. Paulina Greta Stefanovic, a user experience researcher and interaction designer is on the cutting edge of bringing our technology together with the best human aspects of this long tradition.
The information age is threatening storytelling — not making it extinct, but reducing the number of people who themselves are storytellers. We are no longer reliant on people in our close social circles to be exquisite story tellers for our own enjoyment; we have the luxury (perhaps curse?) of mass market story-telling.
Paulina’s work unlocks interactive storytelling. The idea isn’t new, as great storytellers have always read their audience and played to their engagement. Interactive storytelling in the digital age seeks to design this skill into the technology that is delivering the story. This is a return from passive entertainment.
This breaks down into interactive versus responsive. At its simplest, think of responsive as a video that has a pause button. You can change the flow of the story but you can’t make the story your own. Surprisingly, this is a new development as the ability to pause playback is but a few decades old. So you can pause a responsive medium, but true interactive experiences involve creation — the audience is immersed in the story and can make substantive changes to the outcome during the experience.
This equates to a power transfer. The creator of the media is no longer in complete control, ceding some to the audience. We are just at the start of this technology and it looks like the sky is the limit on what we can do with algorithmic interactions.
Video games are the forerunners of this change. They already have branching stories that let the users make choices that greatly affect the storyline. This industry is huge and it seems obvious that this active aspect of story consumption is a big part of that success. Even more intriguing is a “drama management system” (a new term to me but I love it) that results in a story whose ending nobody knows until this particular audience gets there. What a concept, and something I can’t wait to see for myself!
If you find these concepts as interesting as I do, check out Paulina’s talk below, which she presented at the Hackaday Belgrade conference.
By using our website and services, you expressly agree to the placement of our performance, functionality and advertising cookies. Learn more