Gaming controllers have come a long way from an Atari 2600’s single button and digital joystick. As games grew more sophisticated, so did the controllers. This development had a dark side – controllers’ growing complexity have made it increasingly difficult for different-abled bodies to join in the fun. Microsoft has extended an invitation to this audience with their upcoming Xbox Adaptive Controller.
Creative minds have been working on this problem for a while, building an ecosystem of controller hacks to get more people into gaming. These projects require solving problems in two broad categories: the first is to interface with input devices that match a specific user’s needs, the second is then integration into target game device’s control infrastructure.
The value of XAC is eliminating the second category of work and making it reliable: it takes care of all the housekeeping overhead of creating a custom Xbox controller, from power management to wireless communication. As for input device interface, every control needed to play on a Xbox is individually mapped to a standard 3.5 mm jack. Some are pure digital ports, others can transfer an analog value. A 3.5mm plug is a proven consumer-friendly interface that’s easy to work on by anyone who wants to pick up a soldering iron, making this array of jacks a wide-open gateway to limitless possibilities. The 3.5 mm jacks make it easy to build specific configurations, and make it easy for less-technical people to reconfigure for a different player or different game.
We love to see our hacker creativeness applied to help people live normal lives. Making it easy to hack up a custom gaming controller may not be earth shattering, but don’t underestimate the importance of letting people feel included. It does transform lives, one at a time. Plus, it looks like fun to play with.
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!
[Circuitbeard] was forced to break out of his Raspi comfort zone this time. We’re glad he did because this is one impressive build. Finding the pinball emulation community lacking for Linux, he turned to the LattePanda, a tiny Windows 10 SBC with a built-in Arduino Leonardo. This was really the perfect board because he needed to support multiple displays with a minimum of fuss. That Leonardo comes in handy for converting button presses to key presses inside the Visual Pinball emulator.
The 3mm laser-cut plywood cabinet was designed entirely in Inkscape and sized around the two screens: a genuine 7″ LattePanda display for the playfield, and a 5″ HDMI for the back glass. The main box holds the Lattepanda, two Pimoroni mini speakers, and a fan to keep the board cool.
There’s a lot to like about this little cabinet thanks to [Circuitbeard]’s fantastic attention to detail, which you can see for yourself in the slew of pictures. Look closer at the coin drop—it’s really an illuminated button with a custom graphic. If you want to have a go at emulating this emulator, all the code is up on GitHub. Tilt past the break to watch some modern pinball wizardry in action, and then check out his mini Outrun machine.
Who has the fastest thumbs at Maker Faire UK? That’s the question [wellsey1972] sought to answer when he created this simple game using little more than two NeoPixel rings, two chunky arcade buttons, and a Trinket.
The idea is simple: each button push lights up one NeoPixel. The first one to fill up their ring is the winner, and is treated to a ring of flashing green lights. The loser, of course, gets flashing red. Both controllers are hard-wired to a box containing a Trinket, a custom PCB with pull-up resistors, and two sets of solderless terminals. [wellsey1972] smartly re-purposed a cat 5 cable for sleeker wiring.
He has a few ideas for the future, like going wireless, printing smaller controllers, and making winning more difficult via potentiometer. We humbly suggest that the loser be taunted by the cry of a sad tuba. Mash past the break for a brief demo.
If a hacker today wanted to build a simple game, he or she could whip it up using an Arduino board and a few other bits and pieces in about an hour, only to be greeted with “where’s the hack?” But when you look at [OiD]’s SPEBEG (Single Player Eight Bit Electronic Game), you’ll understand why building anything using old-skool 70s tech is so awesome and educational.
The SPEBEG is a simple 8-bit game where you aim with the joystick at the target and fire to gain points. As your score increases, so does the game speed. It doesn’t need a single line of code, since the whole design is completely hardware based. And it uses the venerable 555. The display is an 8×8 LED matrix while score and levels are displayed on two 7-segment LED displays.
An 8-bit bus forms the backbone of the game and it is all held together by lots of 74-series TTL logic. The 555 provides a 47 kHz secondary clock, while the 100 Hz signal after the rectifier diodes is used to introduce the essential “randomness” that every game requires. [OiD] does a good job of describing the whole circuit by breaking it down into byte-sized chunks and walking us through each. For something so simple to build using modern technology, he needed over 25 different chips to build it, and ended up setting himself back by almost 200 €.
But there’s one more part of this project that amazes us, and that is its construction technique. [OiD] purchased IC sockets with extra long pins and a lot of thin, enamel (insulated) copper wire. A soldering station with a fine tip and high temperature setting allowed him to heat the end of the copper wire to melt its enamel insulation, so it could be soldered to the long pin sockets. Using this method, he assembled the circuit using point-to-point soldering, pretty much like wire wrapping. Only, instead of wrapping the wires, he soldered them.
Despite all of his efforts, the game was pretty much unplayable when he first built it almost five years back. He recently pulled it out of storage, swatted all the hardware bugs, and fixed it nicely. Check out the video after the break. [OiD]’s project is decidedly more simple compared to this game that was Fabricated from the Original Arcade Pong Schematics.
The trend in video games is toward not being able to differentiate them from live-action theatrical releases, and games studios are getting hard to tell from movie studios. But quality graphics don’t always translate into quality gameplay, and a lot can be accomplished with minimalist graphics. Turn the clock back a few decades and think about the quarters sucked up by classics like Pac-Man, Space Invaders, and even Pong if you have any doubts about that.
But even Pong had more than 64 pixels to work with, which is why this dungeon-crawler game on an 8×8 RGB matrix is so intriguing. You might think [Stolistic]’s game would be as simple as possible but think again. The video below shows it in action, and while new users will need a little help figuring out what the various colors mean, the game is remarkably engaging. The structure of the dungeon is random with multiple levels to unlock via the contents of power-up chests, and there are mobs to battle in a zoomed-in display. The game runs on an Arduino Uno and the matrix is driven by a bunch of 74HC595 shift registers.
While chess had long been a domain where humans were superior to computers, the balance has shifted quite substantially in the computers’ favor. But the one thing that humans still have control over is the pieces themselves. That is, until now. A group has built a robot that both uses a challenging chess engine, and can move its own pieces.
The robot, from creators [Tim], [Alex S], and [Alex A], is able to manipulate pieces on a game board using a robotic arm under the table with an electromagnet. It is controlled with a Raspberry Pi, which also runs an instance of the Stockfish chess engine to play the game of chess itself. One of the obvious hurdles was how to keep the robot from crashing pieces into one another, which was solved by using small pieces on a large board, and always moving the pieces on the edges of the squares.
This is a pretty interesting project, especially considering it was built using a shoestring budget. And, if you aren’t familiar with Stockfish, it is one of the most powerful chess engines and also happens to be free and open-source. We’ve seen it used in some other chess boards before, although those couldn’t move their own pieces.