We’ve all seen old standup arcade games that used guns – like one of the iterations of House of the Dead or VirtuaCop. At home, who didn’t play Duck Hunt on the NES?
Unfortunately, if you try those games today – they don’t work. The mechanisms they relied on only worked on old tube-type CRTs. People have tried to make alternative mechanisms – but they relied on having to attach messy sensor or light bars around the screen. Using mechanisms like sensor bars also means you must stay in the exact same spot or re-calibrate – something that is very annoying during a long gaming session. What to do?
Andrew Sinden decided to tackle the project and came up with a brilliantly simple solution. Simply render/detect the square around the border of the game being played determine your location from that rectangle. That input is converted to mouse input/direction and voila. It works on any size display, doesn’t need recalibration, and allows for multiple players. Andrew Sinden shows off how he developed it here:
His startup project is now a full-fledged product and he sells them over at SindenShop. They make 2 guns: with and without recoil. They run about $170/$115 respectively and come in blue, red, black, and grey if you want different guns for different numbers of players. They also now make arcade-style foot pedals for games that use those.
Abhinav Upadhyay walks us through a wonderful bit of computer history. He talks about how Steve Johnson at AT&T wrote one of the first spell checkers. His method could encode a word in just 14 bits of memory; so a dictionary with 30,000 entries would take up a fraction under 52 kB. This is even better compression than gzip – and it can perform fast lookups.
Once the dictionary grew to 30,000 words, the Bloom filter approach became impractical. Douglas McIlroy’s solution was to store differences between sorted hash codes , after discovering these differences followed a geometric distribution. These followed a distribution that could be easily run length encoded with something called Golomb’s code.
It’s a fantastic examination of applied computer science. Definitely worth a read
GPU programming used to be just about rendering graphics. As we’ve moved into bitcoin mining and AI, eisfrosch goes over the current chaotic programming environments for GPUs.
Acerola has a bunch of great graphics videos. In this one, he talks about why PS1 graphics looked the way it did.
I learned that PS1 actually had realtime camera distance tessellation – something that wasn’t available to desktop GPUs until the introduction of tessellation shaders.