Making a cross-platform mobile game in Reason/OCaml
Targets web, native android, ios, and desktop!
Reflections on DOOM's Development
The year of 1993 was a magical one, more so than any other. It was the only time we challenged ourselves as a group to create a game that was as good as anything we could have imagined at the time. We didn’t challenge ourselves like that before DOOM, nor after it. It was the right time to shoot for
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…
Extracting Super Mario Bros levels with Python
For an upcoming project, I need to extract level data from the classic 1985 video game Super Mario Bros (SMB) . More precisely, I want to extract the background imagery for each stage of the game, excluding HUD elements and moving sprites, etc.
How long is that Bézier?
Blog of Raph Levien.
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…
How Generative Music Works
For his 1965 composition “It's Gonna Rain”, Steve Reich designed a generative mechanical system.
Gym Retro
Stay up to speed on the rapid advancement of AI technology and the benefits it offers to humanity.
Planning – The Core Reason Why Gameplay Feels Good (2017)
In this post I dig into planning, and how it is a fundamental part of what makes a game engaging. Planning affects many aspects of what is s...
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…
Making Games in Lisp with Hypergiant and Chicken Scheme
Hypergiant is a library for CHICKEN Scheme that tries to make it easy to make efficient games. 1 The idea behind it is the belief that games should start with a prototype that should take minimal effort, but these should be extensible to be whatever you want the final product to be. So Hypergiant attempts to find the…
Steam’s discovery algorithm killed my sales
Firstly I want to be clear that I have had some measure of success on Steam and I’ve enjoyed going to Steam Dev Days and other events and talking to their reps who seem to be genuinely interested supporting indie developers. So this blog post is not about me hating on Steam, rather it’s to discuss a recent issue that…
Agones: Open-source, multiplayer, dedicated game-server hosting on Kubernetes
In the world of distributed systems, hosting and scaling dedicated game servers for online, multiplayer games presents some unique challenges. And while the game development industry has created a myriad of proprietary solutions, Kubernetes has emerged as the de facto open-source, common standard for building complex…
Granular Audio Synthesis
If you want to make a sound shorter, you can play it faster. Doing this also makes it higher pitch unfortunately. If you want to make a sound longer, you can play it more slowly. This also makes it…
A Call of Duty exploit
A few years ago, I became aware of a security issue in most Call of Duty games. Although I did not discover it myself, I thought it might be interesting to see what it could be used for. Without going into detail, this security issue allows users playing a Call of Duty match to cause a buffer overflow on the host’s…
Learning ‘Montezuma’s Revenge’ from a single demonstration
Stay up to speed on the rapid advancement of AI technology and the benefits it offers to humanity.
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…
Fixing a Bug in an 18 Year Old Shockwave Game
The story of changing a single byte
Creating a Non-Trivial Lisp Game in 2018
Jalur masuk yang cepat menghemat waktu pengguna untuk langsung bermain. Hadiah yang melimpah dan simbol khusus yang mudah muncul tersedia secara berkala. Penawaran istimewa terus diperbarui agar pengalaman bermain selalu segar.
Star Control II
In this vaguely disturbing picture of Toys for Bob from 1994, Paul Reiche is at center and Fred Ford to the left. Ken Ford, who joined shortly after Star Control II was completed, is to the right.