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!
[C Bel] teaches Excel and he has a problem. Most of us — especially us Hackaday types — immediately write a VBA (Visual Basic for Applications) macro to do tough things in Excel. Not only is this difficult for non-technical users, but it also isn’t as efficient, according to [C Bel]. To demonstrate that VBA macros are not always needed, he wrote a 3D game engine using nothing but Excel formulae. He did have to resort to VBA to get user input and in a very few cases to improve the performance of large algorithms. You can see his result in the video below or download it and try it yourself.
The game is somewhat Doom-like. Somewhat. As you might expect it isn’t blindingly fast, and the enemy is a big red blob, but as the old Russian proverb goes, “The marvel is not that the bear dances well, but that the bear dances at all.” (And thanks to [Sean Boyce] for recalling that quote.)
[Jānis]’s entry for the Flashing Light Prize was doomed from the start. Or should we say Doomed? It was a complicated mess of Rube-Goldbergery that essentially guaranteed that he’d have no time for making a proper video and submitting and entry. But it also ran Doom. Or at least ran on Doom.
(Note: [Jānis] sent us this hack in the e-mail — there’s no link for this blog post. You’re reading it here and now.)
It starts with a DC motor salvaged from a DVD player that spins a wheel that flips a switch back and forth, which in turn flips the polarity of the power on the motor. It’s like a most-useless machine, but with no human involved. This contraption periodically presses a button on a gutted mouse.
Pressing the mouse button on one computer fires a rocket in a multiplayer Doom game, and triggers a light on a wall when it does. A second Doom player, on another computer, sits facing the wall. Solar cells dangled in front of Player 2’s monitor emit high and low voltages as the LCD blinks on and off. That output goes into the ADC of an Arduino clone that drives a transistor that drives a relay that turns on and off a lightbulb.
We had a lot of fun watching all of the entries for the Flashing Light Prize, and we were also stoked by the presence of so many Hackaday regulars in the Honourable Mention list. (Sad to see [Sprite]’s ping-flasher didn’t make the cut!)
If you, like [Jānis] are still sitting on a design, don’t fret. It looks like the prize will make a return next year. Woot!
Loading animations have a long and storied history. What originally began as an hourglass quickly turned into a hand counting to five and progress bars. There were clocks, the Great Beach Ball of Death, and now loading animations are everywhere. However, the loading animation has still not been perfected — until now, that is. This is a fidget spinner loading animation. It’s beautiful.
Want to build and sell some hardware? Over on Tindie, we’re taking a look at some of the most successful designers of custom crafted hardware. This time it’s [Albertas Mickėnas] of Catnip Electronics who has sold five thousand soil moisture sensors.
You can just go out and buy a CNC machine, but that doesn’t quite underscore the difficulty in getting a CNC machine running. Our ‘ol pal [Jeremy] recently picked up a Romaxx CNC machine and put together a video of its commissioning. There’s a lot of work here, from building a shelf/stand for a rather beefy machine to cutting into the bed for t-tracks, and figuring out how dust collection is going to happen.
Before there was KiCad and Eagle and a ton of web-based PCB design tools, there was Autotrax. Want to know what PCB design and GUIs look like in DOS? I did a walkthrough for designing a small PCB in the DOS version of Autotrax late last year. There are thousands of designs locked up in discontinued EDA suites, and [Erich] has a way to revive them. He’s developed an Autotrax/Easytrax layout import/export plugin for pcb-nd. Now legacy Protel designs can be imported into software released in this century. This is really cool, and you can check out some screenshots here.
It is amazing how the game Doom has been ported to so many things. Enter one more port, where the hardware in question is a Honeywell Prestige thermostat.
In his video, [cz7asm] shows us the game running quite nicely on the 480 x 272 LCD with an NES controller plugged into the USB port originally intended for software updates. The thermostat runs on a STM32F429 which is an ARM9 processor that has the juice to pull it off. The Doom engine being used is based on Chocolate Doom, an open source port of the game, and the binaries can be downloaded for Windows and Mac. The source code is also available as a download for your tinkering pleasure. This project by [cz7asm] is extended from a code on GitHub by [floppes] that was meant for the STM32F429IDISCOVERY evaluation board.
The author shares his code for the STM32F4 on Dropbox as a zip and in order to compile it, the Atmel BSP for GNU GCC is used. The video below demonstrates the hack in action and, though there is no sound yet, the satisfaction that comes from such modifications is its own reward.
DOOM, is there anything it won’t run on? Yes. Your front lawn cannot currently play DOOM. Pretty much everything else can though. It’s a testament to the game’s impact on society that it gets ported to virtually every platform with buttons and a graphical screen.
This video shows a Sansa Clip playing DOOM, but it’s only just barely recognizable. The Sansa Clip has a single color screen, with yellow pixels at the top and grey for the rest of the screen. The monochrome display makes things hard to see, so a dithering technique is used to try and make things more visible. Unfortunately it’s not particularly effective, and it’s difficult to make out little more than the gun at the bottom of the screen.
This is likely the world’s smallest fully-functional Game Boy Color, able to play all of the games using the tiny direction pad and buttons, with onboard display and battery and in the original form factor. This is an incredible hack which presents a tour de force in hardware and software. This will easily rank in the top five hacks you’ve seen this year.
I’m sure that many of you have fond memories of your first handheld games. This will be Game Boy for most, and we admit they had fairly decent portability and battery life that puts many smart phones to shame. Despite this, Sprite_TM always dreamed of an eminently more portable version and to his adolescent delight he discovered a key chain version of the Game Boy. Unfortunately, he was duped. The keychain looked like a Game Boy but only functioned as a clock.
But now, decades later, technology has progressed as have his own skills. For his talk at the 2016 Hackaday SuperConference, Sprite_TM actually built his childhood dream.