Justifying a Code Rewrite

I have a sketchy, working version of AdventureKit:

An animated gif showing AdventureKit in action. In it, we see a square from Lecce, Puglia. To the left, a man in a trench coat walks towards a bunny in a box in the middle of the square. As he approaches, the bunny shies away from him and the man says 'He seems a little afraid of me.'

Since I announced that I was working on it last year, it has grown considerably.

After taking a hard look at what I’ve done so far, I realised that there are some fundamental problems with it. It has become more complicated and the interactions between components have gotten messy.

It also has a few key things missing that would be tricky to add at this stage:

Continue Reading →

Developing a Jigsaw Puzzle Game Part 1: Planning

I was recently playing The Black Mirror and one of the earlier challenges is a jigsaw puzzle where you have to reconstruct a torn up photograph.

The player clicks on a piece to activate it, then they can move it around using the mouse or right-click on it to rotate it to one of four preset rotations. They click again to release it. When a piece has the correct rotation and is near the correct position, it snaps into place, which works as visual feedback that it has been placed correctly.

A screenshot from The Black Mirror. It's a pile a torn up pieces from a black and white photograph

The beginning state of the puzzle from The Black Mirror.

It was an enjoyable break from the exploring and it got me thinking about how I might add it as an optional mini-game type in my adventure game engine.

Continue Reading →

AdventureKit Roadmap

I’ve now admitted to the insanity of building my own engine and come up with a broad idea of how I’d like it to work. The next stage is to come up with a plan for how I might go about implementing it without getting myself stuck in rabbit holes of complicated esoteric features (as I am wont to do).

For Version 1 of AdventureKit, I will focus on three broad categories: UI, Scenes, and Development:

Continue Reading →