Constraints and opportunity
All engineering is about constraints. Gravity, materials, CPU speed, amount of memory.
Modern computing platforms have, in comparison with just a few years ago, let alone a couple of decades ago, almost unlimited capabilities. And yet we still whinge about their shortcomings.
Meanwhile some of the most iconic of all computer programming, early gaming, including classic Arcade Games of the 1980s, and the breakthrough Nintendo Game and Watch hand held games (if you’ve never heard of these, you’re about to be in for a treat) had ludicrously constrained hardware. The best of these though embraced their constraints, and created an entire visual and aural aesthetic, now known as “8 Bit”.
To me this is truly great engineering—not just coping with and whinging about constraints, but embracing them, exploring them, seeing them as opportunities, like these early game developers did.
Here’s an excellent example from the development of one of the true classics, Space Invaders.
While programming the game, Nishikado discovered that the processor was able to render the alien graphics faster the fewer were on screen. Rather than design the game to compensate for the speed increase, he decided to keep it as a challenging gameplay mechanic [wikipedia]
One of the game’s most compelling features, its slow increase in speed as you shoot more aliens, is actually really a constraint the designer embraced.
Reliving the classics
If you’d like to relive (or experience for the first time) these games, more and more of them are being brought back to life, directly in the browser, often with HTML/CSS/JavaScript, at other times using Flash.
Some of my favourites can be found at
- Atari Arcade, classic Atari arcade games built with Web technologies.
- PicaPic, a collection of classic handheld games, painstakingly recreated (Flash based)
There are also quite a few excellent tools for recreating, and making games in the style of these classics, including the Atari Arcade (not just a place to play Arcade games, but help build your own). You can find a huge collections of libraries for game development here.
Stop whinging, and embrace constraints
Early game developers, like Space Invader’s Tomohiro Nishikado didn’t whinge about how little they had to work with (an 8080 Processor, with an effective speed of less than 1,000 operations per second, black and white CRTs), they embraced them, and created work of lasting value and impact.
So the next time the constraints of the Web get you down, ask yourself, what would Tomohiro Nishikado do?
Great reading, every weekend.
We round up the best writing about the web and send it your way each Friday.