Hello there

Welcome to my blog!

I’ve been dabbling in game development as an hobby in the past couple of years. I built a point & click adventure game engine using LÖVE and made three short games with it, and I’m currently working on making a revised game engine from scratch in C++.

I plan to use this blog as my “box of assorted cables and wires” (hence the name) where I write about various things that I learn how to do as I work on my engine and games, both as a way of remembering how they work when I inevitably forget and to share them with other people who may be trying to solve the same problems.

Savegames

Savegames. I avoided them with the first three Ines games with the (barely defendable) excuse that they are short enough to be ok without them. Our latest point & click adventure game The founders of [redacted], however, is long enough that we needed to put together a puzzle dependency chart to keep track of things. I knew from the baginning that this time I would have to finally allow saving....

May 16, 2024

Smooth pixel-perfect parallax scrolling

Introduction The latest entry in my series of adventure games (currently in progress) is the first to have long backgrounds with scrolling and parallax. The game (with the exception of the cursor) is all pixel-perfect—everything is drawn on a 240x135 framebuffer, which is then upscaled to fit the game window. As anyone who has tried to do pixel-perfect scrolling likely knows, moving layers at different speeds generally leads to choppy animations unless the speeds are carefully tuned (see below for an example)....

May 8, 2024

How I set up my games for translation

Introduction I’m currently in the process of translating my latest game, so I decided to write about the system I’m using to make things simpler for myself. I’m doing this for two reasons: It may be helpful to someone else I came up with this system last year and I had forgotten all the details and had to figure them out by looking at my parser code. I’d rather not have to do this again next year!...

August 16, 2023

Using SDL2 to mount an archive from the Android APK assets with PhysicsFS

Introduction The C++ game engine that I’ve been working on stores game data in a custom binary archive that I mount using PhysicsFS in order to access individual files. On the desktop version of the engine the archive lives in the same folder as the executable, and it can be easily mounted by using PHYSFS_getBaseDir to find its path. The Android port of the engine, on the other hand, stores the data archive in the APK assets, which cannot be accessed directly by PhysicsFS....

April 30, 2023

How to easily build a macos application without a mac by using CI/CD tools

Introduction I’ve been making a C++ game engine from scratch in the past few months, and one of the first things I worked on after getting the basics working was making sure that the engine compiled and worked on all the platforms that I’m planning on supporting. Building the macos version has been particularly difficult because I don’t have a mac, and unlike everything else I’m targeting I can’t just cross compile from Linux....

April 30, 2023