Games like Pong are legendary, not only in the sense that they are classic hours fun but also that they have a great potential for makers in stretching their learning legs. In an attempt at recreating the original paddle games like Pong and Tennis etc, [Grant Searle] has gone into the depths of emulating the AY-2-8500 chip using an Arduino.
For the uninitiated, the AY-3-8500 chip was the original game silicon that powered Ball & Paddle that could be played on the domestic television. Running at 2 MHz, it presented a 500 ns pixel width and operated to a maximum of 12 Volts. The equivalent of the AY-3-8500 is the TMS1965NLA manufactured by Texas Instruments for those who would be interested.
[Grant Searle] does a brilliant job of going into the details of the original chip as well as the PAL and NTSC versions of the device. This analysis will come in handy should anyone choose to make a better version. He talks about the intricacies of redrawing the screen for the static elements as well as the ball that bounces around the screen. The author presents details on ball traversal, resolution, 2K memory limit and its workarounds.
Then there are details on the sound and the breadboard version of the prototype that makes the whole write-up worth one’s time. If you don’t fancy the analog paddles and would rather use a wireless modern-day touch, check out Playing Pong with Micro:bits
What if you could play video games perfectly? Would you be one of the greats, raking in millions of dollars simply by playing competitive Fortnite? That’s what Twitch does. Twitch plays video games for you. The irony of this name should not be lost on you.
For his Hackaday Prize entry, [Peter] built a device that shocks you into playing a computer game perfectly. These experiments began with a transcutaneous electrical nerve stimulator (TENS), or basically a device that makes you… twitch. This device, however, is connected to four buttons, representing up, down, left, and right. This is a video game controller, that will make your muscles contract automatically. See where this is going?
To play a video game perfectly, you need a video game. For that, [Peter] chose the classic Snake game. The computer runs the game, and figures out if the next move will be up, down, left, or right. This bit of information is then sent to the TENS device, forcing the player to move the snake up, down, left, or right. The computer can’t directly control the snake, it merely has the human in the loop. The human becomes part of the program.
We’re getting into weird cyberpunk territory here, and it’s awesome. Is the human directly responsible for winning the game? What are the philosophical ramifications? What episode of Star Trek was this from? It’s a great entry for the Hackaday Prize – cyberpunk and a neat video (available below) all wrapped up into one package.
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.