Welcome to the blog and site. There’s works in progress, half-baked ideas, and not enough content to overwhelm you (that’s like, totally on purpose).
Recent Content
String Interning: Future Ryan Delivers
As I mentioned in my Conditioning Script post, the next step in comfortably dealing with numeric IDs as replacements for strings was a reverse lookup being built so that the initial input that generated those IDs can be retrieved.
At the Highest Level It’s a pretty simple lookup table mapping IDs to strings. In C/C++ one might imagine all of the wonderful memory fragmentation that would occur. One might even start down a path of blocking out a chunk of memory and using a stack allocator or similar to store the strings.
read more
Saturn Cutting
Saturn Cutting is a space action adventure for PC.
Side-scrolling Metroidvania.
Saturn Cutting is still very much in development. It uses an engine that I’ve been working on since roughly 2010.
(FWIW I wouldn’t recommend doing that if you want to get a game made, but it’s been interesting.)
For the time being this will be the place to get new information on how things are going.
read more
Conditioning Scripts
My engine relies on hashed strings as identifiers, uh, a lot more than is probably appropriate. I know that I’ve worked with engineers that would be utterly furious with me for that. Actually a lot more than just that because engineers are sort of notoriously catty, but I meant more specifically about all of the string hashing.
Hashing all of these strings every frame, especially through the scripting layer in Lua, seemed deeply unnecessary.
read more
Testing Your Game With Steam Link
Testing your game on a large screen or TV, with a controller, from your couch or similar, will help you get a whole new perspective. This, of course, assumes that that’s anything remotely approximating how one might play your game, but helpful none the less.
Steam Link Steam Link is a special purposed Linux device with additional video decoding hardware.
Once you’ve begun streaming from your PC, anything on the screen will be streamed to your TV.
read more
SDL2 Game Controller API Revisited
Further time with the API has led me to some realizations regarding the game controller API. It’s just as useful as I had initially thought, but geared towards solving a slightly different problem than I had assumed. Largely because I wasn’t paying enough attention.
Once More Unto the Breach Alright kids, you get all buckled up, because this is, obviously, going to be super exciting to read about. It may change you.
read more
Everything is Animation; the Need for Non-Linear Motion
In games, and arguably many other areas where the user is presented with graphical input, the end result of nearly everything equates to animation. Not to be confused with the discipline of animation, i.e. rigging models, curves, anticipatory behaviors, etc., but just, generally, “Animation”. A series of images are created and displayed at a fast enough rate that it looks to our eyes like motion. Our eyes observe the little blobs of pixels and identify shapes, and infer all manner of data that it relays to the rest of the brain like weight, momentum, and surface characteristics.
read more
Quick and Dirty Syslog Logging for Games
Look, alright? We all know that you log things out of your games, utilities, and applications. Stdout or files are the norm …
So you’ve likely spent a good deal of time staring at a terminal window or some log file from an application you’re making. You’ve got yourself a nice little suite of applications and tools all outputting to separate windows, files, uh, emails, maybe? If only there were some sort of standardized way of delivering, storing, and aggregating messages into log files, am I right?
read more