Build Retro Games with Script-8

A whole generation of programmers learned to program by writing — or at least typing in — game programs for relatively simple computers like a TRS-80, a Commodore 64, or any of a handful of similar machines. These days, games are way more complicated and so are computers. Sure, it is more fun to play Skyrim than Snake, but for learning, you are probably going to get more out of starting with a simple game. If you want to learn programming today — or maybe start someone else on that same journey, you should check out Script-8, a project by [Gabriel Florit]. You can get a taste of how it looks in the video below, or just surf over to the site and play or modify a game (hint: press “a” to launch the ball).

Instead of paraphrasing, here’s the excellent elevator speech from the web site:

SCRIPT-8 is a fantasy computer for making, sharing, and playing tiny retro-looking games (called cassettes). It’s free, browser-based, and open-source. Cassettes are written in JavaScript.

Continue reading “Build Retro Games with Script-8”

New Game, Old Ways: Cramming an NES Game into 40 kB

Why would anyone bother to create new content for a console system that’s staring down its 40th birthday? Perhaps just for the challenge of fitting a game into 40 kilobytes of storage.

That at least seems to be the motivation behind [Morphcat Games] pending release of Micro Mages, a new game for the Nintendo Entertainment System console that takes its inspiration from Super Mario Bros. The interesting bit here is how they managed to stuff so much content into so little space. The video below goes into great detail on that, and it’s a fascinating lesson in optimization. The game logic itself is coded in assembler, which of course is far more efficient than higher level languages. Even so, that took 32 kB of ROM, leaving a mere 8 kB for background elements and foreground sprites.

Through a combination of limited sprite size, tiling of smaller sprites to make larger characters, and reusing tiles by flipping them horizontally or vertically, an impressively complete palette of animated characters was developed. Background elements were similarly deconstructed and reused, resulting in a palette of tiles used to generate all the maps for the game that takes up just 60 bytes. Turning those into playable levels involves more mirroring and some horizontal shifting of tiles, and it looks like quite an engaging playfield.

Yes, there’s a Kickstarter for the game, but we’re mainly intrigued by what it takes to cram a playable game into so little space. Don’t get us wrong – we love the Retro Pie builds too, but seeing the tricks that early game developers relied upon to make things work really gets the creative juices flowing.

Continue reading “New Game, Old Ways: Cramming an NES Game into 40 kB”

Arcade Inspired Halloween Candy Dispenser

The days are getting shorter and the nights are a little cooler, which can only mean one thing: it’s officially time to start devising the trials you’ll put the neighborhood children through this Halloween. For [Randall Hendricks], that means building a new candy dispensing machine to make sure the kids have to work for their sugary reward. After all, where’s the challenge in just walking up and taking some candy from a bowl? These kids need to build character.

[Randall] writes in to share his early work on this year’s candy contraption which he’s based on a popular arcade game called “Goal Line Rush”. In this skill based game a disc with various prizes spins slowly inside the machine, and the player has a button that will extend an arm from the rear of the disc. The trick is getting the timing right to push the prize off the disc and into the chute. Replace the prizes with some empty calorie balls of high fructose corn syrup, and you get the idea.

There’s still plenty of time before All Hallows’ Eve, so the machine is understandably still a bit rough. He hasn’t started the enclosure yet, and at this point is still finalizing the mechanics. But this early peek looks very promising, and in the video after the break you can see how the machine doles out the goodies.

The disc is rotated by a high torque motor, and the aluminum extrusion arm is actuated with a gear motor and custom chain drive. Some 3D printed hardware, a couple limit switches, and a pair of relays make for a fairly straightforward way of pushing the rod out when the player presses the button on the front of the cabinet.

Considering how his previous Mario-themed candy dispenser came out, we doubt this new machine will fail to impress come October. The neighborhood kids should just count themselves lucky he’s not using his creativity to terrorize them instead.

Continue reading “Arcade Inspired Halloween Candy Dispenser”

Trashed Vector Game Console Revived With Vintage IBM Monitor

We’ve all had the heartbreak of ordering something online, only to have it arrive in less than mint condition. Such are the risks of plying the global marketplace, only more so for used gear, which seems to be a special target for the wrath of sadistic custom agents and package handlers all along the supply chain.

This cruel fate befell a vintage Vectrex game console ordered by [Senile Data Systems]; the case was cracked and the CRT was an imploded mass of shards. Disappointing, to say the least, but not fatal, as he was able to make a working console from the remains of the Vectrex and an old IBM monitor. The Google translation is a little rough, but from what we can gather, the Vectrex, a vector-graphics console from the early 80s with such hits as MineStorm, Star Castle, and Clean Sweep, was in decent shape apart from the CRT. So with an old IBM 5151 green phosphor monitor, complete with a burned-in menu bar, was recruited to stand in for the damaged components. The Vectrex guts, including the long-gone CRT’s deflection yoke assembly, were transplanted to the new case. A little room was made for the original game cartridges, a new controller was fashioned from a Nintendo candy tin, and pretty soon those classic games were streaking and smearing across the long-persistence phosphors. We have to admit the video below looks pretty trippy.

If arcade restorations are your thing, display replacements like this are probably part of the fun. Here’s a post about replacing an arcade display with a trash bin CRT TV, an important skill to have is this business.

Continue reading “Trashed Vector Game Console Revived With Vintage IBM Monitor”

PIC16Maze Upgrades Secret Maze Game

We really like it when a reader is inspired by something they see on Hackaday, build on it, and let us know so we can pass it on. In this case, [Vegipete] made a secret maze game using a minimal number of parts and some neat software trickery.

It’s built around an 8-pin PIC16F18313 microcontroller, uses a joystick for input, and nine WS2812 LEDs to display the player and the surrounding maze walls. His inspiration was [David Johnson-Davies’] minimalist secret maze game built around the 8-pin ATTiny85. In that one, [David] cleverly used charlieplexing to get four pins to control four LEDs and four pushbuttons. [Vegipete’s] use of the WS2812 LEDs allowed him to control the LEDs with just one pin, and also get color while using three pins for the joystick and its button. He may use another pin in the future for sound and vibration.

He goes into some detail on the WS2812 protocol, how communication is done with the LEDs using just one pin and different pulse-lengths to represent 0 and 1. We’ll leave you to see his post for more depth but basically, he introduces a module on the PIC called the Configurable Logic Cell (CLC) which makes this easy and frees up processor cycles for the user’s code to do other things.

Secret maze wall bitsHis source code is available on request but he does detail a neat software trick he uses for rotating the view. It may be confusing for some but as you move through the maze, your viewpoint rotates so that up is always the direction you’re facing. Luckily, the walls surrounding the user can be represented using 8-bits, four for east, west, north, and south, and four more for the corners. The maze is stored as a bitmap and from it, 8-bit values are extracted for the current position, each bit representing a wall around the position. To rotate the walls to match the user’s current orientation, the bits are simply shifted as needed. Then they’re shifted out to set each LED. Check it out in the video below.

It works very well despite the minimal interface and part count.

Continue reading “PIC16Maze Upgrades Secret Maze Game”

Crawling a Dungeon, 64 Pixels at a Time

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.

It’s fun to see what can be accomplished with as little as possible. Looking for more low-res goodness? Check out this minimalist animated display, or a Geiger counter with a matrix display.

Continue reading “Crawling a Dungeon, 64 Pixels at a Time”

Play Chess Against A Ghost

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.

Continue reading “Play Chess Against A Ghost”