New
The latest blog posts to take off on Hacker News. 2,047 posts.
Designing and building an FPGA sprite-based graphics accelerator (2014)
A very warm welcome to my most ambitious project to date. In this project I’m going to attempt to design and build a sprite-based graphics accelerator that will function as a co-processor to an MCU. Using cheap off-the-shelf components I’m hoping to achieve a level of gaming performance that compares well to popular…
The Making Of Dust (2003)
For a long while Dust was the world's most-played Counter-Strike map and it's still the one for which I am best known. Yet few players realise it was the product of thievery and luck...
The Graphic Art of Incredibles 2
I remember seeing the first Incredibles film in college with a few friends. We went on opening night and the theater was packed. I remember thinking that the way the movie opened with the old film footage of a younger Mr Incredible, Elastigirl and Frozone being interviewed was such a different way t
Never-Ending Man: Hayao Miyazaki [video]
After he retired from making feature length films in 2013, legendary animator Hayao Miyazaki started work on a short film using CGI animation techniques, which
Atari Asteroids: Creating a Vector Arcade Classic
As Atari’s best-selling arcade game of all time, Asteroids was literally a game changer. Released in December 1979, it was responsible for catapulting Atari into mainstream public consciousne…
Visualizing quaternions: An explorable video series
Explaining how quaternions, a four-dimensional number system, describe 3d rotation.
Quest for Glory III and IV
The VGA remake of Quest for Glory I . By this point, Sierra’s graphics exceeded the quality of most Saturday-morning cartoons, and weren’t far off the standard set by feature films, being held back more by the technical limitations of VGA graphics than those of the artists doing the drawing.
Understanding Quaternions
Quaternions are used to represent an orientation in 3D space. This article attempts to demystify the complexities of quaternions.
Chess Game Using Racket’s Pasteboard
The Racket GUI library provides an "editor toolkit" which can be used to implement programs that use an interactive graphical canvas where objects can be moved around with the mouse. This toolkit has good reference documentation, however this documentatio...
The Big List of RPG Plots
What follows is a scrap of trivia . . . my collection of RPG plots , in abstract form. I built this by examining the premises of hundreds o...
Fixing a Bug in an 18 Year Old Shockwave Game
The story of changing a single byte
Twenty Questions Of Maddening, Delicious Geometry
The geometry puzzles that are lighting up Twitter.
Literate raytracer: a simple implementation of raytracing in Javascript
Raytracing is a relatively simple way to render images of 3D objects. The core is an elegant idea, that one can simulate the real-world behavior of photons of light bouncing off of surfaces and colors accumulating from their paths. It’s not inherently fast, but the simplicity of the core lets it model interesting…
Why Can a Machine Beat Mario but Not Pokemon?
Why Can a Machine Beat Mario but not Pokemon? By now, you’ve probably heard of bots playing video games at superhuman levels. These bots can be programmed explicitly, reacting to set inputs with …
Magic Leap Review Part I
I have been studying the Magic Leap One (ML1) for a few weeks, taking over 1,000 photos and making many measurements. I’m bursting with things I want to talk about, so I am planning to releas…
Recreating the THX Deep Note (2009)
We dissect the building blocks of the infamous THX Deep Sound and recreate it by synthesizing the sound in Supercollider programming environment.
Telltale Autopsy
So Telltale Games is out of business. Like most of the rest of the industry – including the employees of Telltale – I had no idea this was coming. I looked at the popularity of their breakout hit The Walking Dead and the overall quality of some of their earlier adventure game offerings and just assumed this was a…
On generative algorithms
An illustrated essay on generative algorithms written by Anders Hoff.
The Making of Underrun – A WebGL Shooter in 13kb of JavaScript
I participated in this year's js13kGames , a JavaScript game development competition with a file size limit of 13kb, including code, assets and everything else. My entry was Underrun , a twin stick shooter using WebGL.
Pseudo-bandlimited pixel art filtering in 3D: A mathematical derivation
Recently, I’ve been playing Octopath Traveler, and I’m very disappointed with the poor texture filtering seen in this game. It is PS1-level, with severe shimmering artifacts, which ruins the nice pixel art. Tastefully merging retro pixel art with 3D environment is a very cool aesthetic to me, so I want it to look…
Game Programming Patterns: Double Buffer (2014)
Cause a series of sequential operations to appear instantaneous or simultaneous.
Two player Karateka using a 42 byte patch
One of the first games I ever played on my family’s Apple IIe was the Jordan Mechner master work, Karateka . Fight the bad guys, save the princess – it’s a simple but classic formula. My brother and I would take turns making our way through Akuma’s fortress. Even then, we wanted a two player version.
Create a simple cross-platform desktop game with Go
A few months ago I fiddled around with writing Space Invaders using Go. I had a lot of fun writing it but the output only worked on iTerm2 because it used a specific feature of that terminal. In order to play the game you’d really have to download iTerm2 and run it on the command line. I thought it’d be fun to muck…
Introduction to A* (1997)
Movement for a single object seems easy. Pathfinding is complex. Why bother with pathfinding? Consider the following situation: