For several years now, a more energy-efficient version of Bluetooth has been available for use in certain wireless applications, although it hasn’t always been straightforward to use. Luckily now there’s a development platform for Bluetooth Low Energy (BLE) from Texas Instruments that makes using this protocol much easier, as [Markel] demonstrates with a homebrew video game controller.
The core of the project is of course the TI Launchpad with the BLE package, which uses a 32-bit ARM microcontroller running at 48 MHz. For this project, [Markel] also uses an Educational BoosterPack MKII, another TI device which resembles an NES controller. To get everything set up, though, he does have to do some hardware modifications to get everything to work properly but in the end he has a functioning wireless video game controller that can run for an incredibly long time on just four AA batteries.
If you’re building a retro gaming console, this isn’t too bad a product to get your system off the ground using modern technology disguised as an 8-bit-era controller. If you need some inspiration beyond the design of the controller, though, we have lots of examples to explore.
Just because a system becomes obsolete for most of us doesn’t mean that everyone stops working with them. Take a look at this brand new game for the Amiga 500 called Worthy, which is sure to make most of us regret ever upgrading our home computers, despite the improvements made since 1987.
The group who developed the game is known as Pixelglass and they have done a lot of work on this platform, releasing several games over the past few years. Their latest is Worthy, an action-adventure game that looks similar to the top-down perspective Zelda games from the SNES. It’s an impressive piece of work for a system that few of us own anymore, but if you have one (or even if you have a good emulator) you might want to give it a whirl.
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!
Where would the world be today without Pong, perhaps a lot less fun? For people like [Linker3000] the game is an inspiration toward teaching the next generation of hackers to build and play their own version using Micro:bits as controllers!
Aiming for doing all manner of diligence, [Linker3000] says the code can simply be uploaded to an Arduino — foregoing throwing together a circuit of your own — if you want to jump right into things. For the workshop environment, this setup uses composite video outputs — but this shouldn’t be an issue as most TVs still retain these inputs.
Once built — or sketch uploaded — the Micro:bit paddles can be connected to the ATmega328p and played like an old-school controller, but [Linker3000] has enabled Bluetooth control of the paddles’ A and B buttons via the Bitty app. Additionally — if wires really aren’t your thing and Bluetooth is too new-school for such an old game — a second Micro:bit can control the wired paddle using their built-in radio, provided they’re configured accordingly.
On top of Pong, there are also squash and soccer game modes! Check out the demo after the break.
If you’ve ever wanted to take a dive into and visualize a game’s code, this could be a seminal example in a literal sense. After twenty-one months of effort, the entire Pokemon Red game is now playable inside Minecraft.
[Mr. Squishy] is the mad genius behind this project, laboriously re-coding the game literally block by block. A texture pack is needed for the specific sprites, but otherwise it is playable without mods. It’s not immediately apparent when loading in to the level, but chip your way through the floor of the stadium and you are confronted by something awe-inspiring: sprawling constructions, like great soaring cliffs, comprising approximately 357,000 command blocks — equating to the same in lines of code. Every animation, tracked stat, attack and their effects, the various pokemon and their properties, and so on are rendered in the game’s physical space for you to wander through.
Beneath that are levels of maps, positional data, properties of those areas, NPCs, and a clever glitch that [Mr. Squishy] used to keep everything loaded at once.
[Christopher Foote] didn’t play quite as many games as he wanted to as a child. After years of catching up using the RetroPie and the PiGRRL 2, it was when he first picked up a Switch’s joy-cons that inspiration struck. Behold: the PiSwitch!
Realizing they operated on Bluetooth tech, [Foote] spent a fair chunk of time getting the joy-cons to properly pair to the Raspberry Pi 3 and function as one controller. Once done, he relied on Linux Joystick Mapper to manage the keybindings with some extra legwork besides to get the analog sticks working properly.
To make this console mobile, he’s packed a 6600mAh battery and Adafruit Powerboost 1000c into the device, added a second headphone jack and speaker for commuting and home enjoyment, and a Pi V2 camera module. A 3D printed case, encapsulating these components and a seven-inch touchscreen, also allows the joy-cons to be detached — though he plans on updating its design in the future.
The PiSwitch boots into a custom UI that lets you select different services — RetroPie, Kodi, Debian, and the terminal — while the joy-cons seamlessly function together or individually regardless of the activity. Check out the quick intro tour for this project after the break!
What’s the smallest controller you’ve ever used? [BitBuilt] forum user [Madmorda] picked up a cool little GameCube controller keychain with semi-working buttons at her local GameStop. As makers are wont to do, she figured she could turn it into a working controller and — well — the rest is history.
This miniaturized controller’s original buttons were essentially one piece of plastic and all the buttons would depress at once — same goes for the D-pad. Likewise, the original joystick and C-stick lacked springs and wouldn’t return to a neutral position after fidgeting with them. To get the ball rolling, [Madmorda] picked up a GC+ board — a custom GameCube controller board — just small enough to fit this project, eleven hard tact switches for the various buttons, and two squishy tact switches to replicate the original controller’s L and R button semi-analog, semi-digital functionality.