← Home

Along the way

Project journal

What I’ve been working on, what has changed, and what I’m trying next.

A native workbench for practice

The Expanded workspace is getting a native redesign across Mac, iPad and iPhone, with room to edit, run and check a simulated machine.

I’ve been giving TerminalDrill’s Expanded workspace a more coherent native interface. On the Mac, the editor, terminal and task can sit together; on iPad they share the available space, while iPhone keeps each step focused. Saving a file, running a command and checking the result still mean different things.

The newer work also makes flashcards available directly from a track, improves command entry around the phone keyboard and gives the Mac wider, resizable panes. I want a longer practice session to feel as natural as the short daily drill.

These are development changes. The screenshots show build 17, captured on 21 October; newer work is still going through internal delivery and testing. The original iOS app remains available, while the redesigned workspace needs more testing before a public release.

Visit the project

A world that remembers your commands

TerminalTribe’s native Mac rebuild carries the first campaign, with painted regions and lasting traces of the commands used along the way.

The native TerminalTribe now carries the whole first campaign. I’ve been working on what remains after a command succeeds: lights return to a settlement, a relay stays connected, and records survive. Twenty inspectable field traces tie those changes to the original work in your expedition.

The Dropout Belt has its own tidal painting, and the companions have quieter reactions that keep their faces consistent. I’ve also moved recovery advice nearer the command field, so a wrong path or permission error can become something to investigate.

These pictures come from the local 17 October build. The newer performance work is still unverified, and there is no public Mac download yet. The browser version and the earlier Electron desktop branch remain separate projects.

Visit the project

New swimmers for the reef

A Neo Tide beta and a newer local pair of Retro Poolside swimmers bring more character to the ocean, costumes and movement.

Game design and creative direction: my wife. Development and implementation: Richard Ziolkowski.

I’ve been giving Tidewhim more sculpted pixel-art detail while keeping the ocean paintings and my wife’s creative direction. The Neo Tide overhaul reached beta build 11 on 18 October, with revised creatures, scenery, equipment and animation.

The next local version brings in the Retro Poolside swimmers. You can choose Girl or Boy at Shore, with 41 costumes and 13 flipper choices. The same swimmer appears in the Store, Closet and powered forms, and the motion follows swimming, rising, diving, recoil and arrival. Existing shells, progress and wardrobe ownership carry across.

I’ve also changed the opening film to play only on the first start. Later swims enter the ocean directly. These newer swimmers are still local development work; they haven’t been uploaded to TestFlight. I’m still working through how the animation feels in the hand.

Visit the project

Building Vector for a view from behind

The 3D experiment is moving towards a chase camera, starting with the ship’s rear, underside and banking silhouette.

My first native volume experiment still felt like a top-down game with thicker ships. I’m now working on a proper view from behind Vector, with threats further ahead and commands kept readable.

That means giving the ship a convincing rear, underside and banking silhouette while carrying across the original painted surfaces. The native chase slice now includes Vector and the first two remodelled fleet hulls. The picture here is an offline Blender study of the ship, rather than a capture of the game.

Getting the ship and scenery right from that angle is the current focus. The remaining models and worlds are still in progress, and bringing the typing and musical feel across to the new view needs more work.

Visit the project

A delivery through Meridian

A new Mac typing adventure follows Patch across a rainy city, with command practice woven into a delivery and a rescue.

Terminal Runner has become another way for me to explore learning through play. Instead of looking down a terminal, you follow Patch across a rainy city with an amber data vial and someone to bring home.

The recent work follows the people affected by the delivery: keeping a clinic powered, changing a train’s route, carrying factory records and passing copies through apartment windows. I’ve been drawing those moments into the story and tying the commands, machines and music to what is happening around them.

The latest campaign changes are in the source, ahead of the last running build. The gameplay picture is from that earlier build, while the Glass Crown image is production story artwork. There is more to do before I can judge how the chapters play, sound and hold together.

Visit the project

A longer climb, with somewhere to stand

A saved 99-floor journey, independent activity climbs and a mountain trail that follows the traveller’s progress.

I’ve expanded Climb the Tower into a saved 99-floor journey. Walking, cycling, paddling and tennis can support separate climbs or a mixed adventure. The mountain now follows the selected climb: the traveller moves along a winding trail, completed landings keep their lights, and the full map opens at the current floor.

Activity history and the adventure have separate jobs. Daily readings describe what was recorded; earned ascent stays earned. Replaying or skipping the climb’s presentation cannot award the same progress again. There are also richer workout histories, private journal memories and saved custom portraits.

I uploaded version 0.3.1 build 5 on 15 October. The upload succeeded, but I haven’t confirmed processing completion or tester availability. Health imports, Watch recovery and outdoor measurements still need physical-device testing. These screenshots show a prepared journal journey in the iPhone simulator on 15 October.

Visit the project

TerminalShot: from 2D to the first steps in 3D

My little neon typing shooter has grown quite a bit. Now I’m experimenting with taking it into 3D.

TerminalShot started with a little neon ship and falling Linux commands. It’s since grown into a much more elaborate 2D game, with illustrated ships, bosses and combat that follows the music. Now I’m experimenting with giving that ship somewhere to fly, while keeping the typing at the centre of it.

Read the full post

An intro for TerminalShot

An intro cinematic I generated for TerminalShot (TSHOT).

It’s a little janky, but I don’t mind a bit of jankiness. I thought it was pretty cool, so I wanted to share it here.

TerminalShot (TSHOT) — generated intro cinematic.
Video description

A programmer at his terminal sees an alien invasion over the city. After a helicopter arrives, he is recruited to operate a recovered spacecraft, boards it with his keyboard and launches towards an alien industrial world. The generated film includes dialogue, sound effects and music.

Visit the project

Some of this stuff is kind of cool

A small personal update on making things, sharing more of them, and getting better at the work.

I’ve finished a lot of development work lately and picked up some new techniques along the way. I’m excited about the progress, even if this portfolio does a fairly poor job of showing it.

This site only holds a handful of the things I’ve made. Over the years I’ve built hundreds of small games, tools and other odd little projects, then tucked most of them away. Sometimes I didn’t have much confidence in them. Often I just couldn’t be bothered promoting something I’d built for myself, or simply for the joy of making it.

I’m getting better at sharing. A lot better. I’m also becoming more disciplined about returning to code and tools I’ve already built, and using them to make new projects and everyday workflows better.

The archive is still a jumble, and my backup habits have cost me more than a few creations. “Meh, I can build it again, probably better” has been a convenient excuse over the years. It hasn’t been much of a backup strategy.

Anyway, this is a small note to say I’m personally excited about some recent projects, and about how much I’m learning while building them.

Maybe they suck. Maybe they don’t.

But I think some of this stuff is kind of cool, and yeah, that's all...

A clearer way to choose a swim

Playtest feedback has led to longer ocean levels, a separate Free Swim, and a calmer home for outfits and achievements.

Game design and creative direction: my wife. Development and implementation: Richard Ziolkowski.

The playtest feedback has changed how you choose a swim. I’ve been working from my wife’s revised design: selected levels now have a finish, while Free Swim keeps travelling through the ocean. Voyage and Drift are now difficulty choices for either format. Reaching the end opens the next level; the postcard discoveries are optional things to look for along the way.

Each level has more room to develop its own rhythm: rising kelp, floating coral, wrecks, weaving jellyfish and approaching eels make different demands on the same up-and-down steering. I have separated points, hearts and shell currency more clearly, and refined how attacks announce themselves before they reach the swimmer. The longer routes and prices are still being tuned through playtesting.

Buying and wearing things now have separate homes. The Store lets you try a look before spending shells, and the Closet holds what you own. Optional fish companions can swim beside you without changing the difficulty. I’ve given those menus deeper sea-glass surfaces, illuminated previews and pearl achievement medallions, while keeping the ocean paintings. I have also improved compact-phone and large-text layouts so the actions remain reachable.

These changes are in my local build 9, which I’ve checked in the iPhone, iPad and Apple TV simulators. The last build I’ve confirmed in TestFlight is 7. Next I need to play the changes on the devices themselves and work out how the challenge, rewards and longer swims feel.

Visit the project

One thumb and a tower full of mischief

The cat tower now uses one-thumb gestures, with climbing, swinging, optional practice and a much fuller wardrobe.

Game design and creative direction: my wife. Development and implementation: Richard Ziolkowski.

My wife’s playtest feedback pushed the controls further than the two-thumb layout in my last note. I have moved steering and jumping into one bottom gesture area. Swipe sideways to move, swipe up to jump, then lift and swipe up again for the extra jump. A fresh still hold beside a scratching post or hanging mouse lets the cat grab; lifting lets go.

Those controls now support more of the tower’s toys. You can climb posts, swing from mice, bounce from floating mushrooms and steer out of a pond towards a dry perch. Dogs, a spray bottle, a vacuum and a startling cucumber create different reactions, with immediate air steering so a frightened leap still leaves you a chance to recover. A separate, replayable practice tutorial pauses to explain each move before you try it, and saved climbs resume safely from a stable perch.

The wardrobe now follows the full concept collection: ten cats and thirty wearables that fit through climbing, jumping and landing. I have refined clothing around the face and paws, lightened the glasses, and given the cats more individual poses and a proper grooming sequence. The tower furniture also changes with the height zone, from warm timber and moss to rope cradles and slate-edged perches.

I sent beta build 10 to both testing groups on 10 October, for iPhone, iPad and Apple TV. I’m still working out how it plays in the hand, how quickly treats should unlock the collection, and which parts of a climb feel inviting enough to try again.

Visit the project

Nine familiars and a changing forest

A unique familiar collection, more varied threats and eighteen painted vistas give the moonlit flight more shape.

Game design and creative direction: my wife. Development and implementation: Richard Ziolkowski.

I’ve been building the next part of my wife’s design for the familiar chain. A flight can now collect one of each of the nine species, with the witch counted separately. Finding a familiar you have already rescued turns it into Moon Coins, and gathering the whole company earns its own celebration. The chain curves behind the broom more smoothly as it grows.

The forest also asks for different decisions as a flight continues. Early clearings introduce one danger at a time; later passages mix cream ghosts, charging imps, leaping wolves and falling branches. Imps commit to their aim before firing, wolves warn before jumping, and the warning marks remain visible with quieter motion enabled. I have kept the familiar hold-to-rise controls while giving the encounters a clearer build-up.

The newer scenery pass expands the world to eighteen painted vistas, with changing clearings, groves, mist and moonlight between them. A single moon stays coherent as the landscapes blend. The witch’s hat, hair, cloak and lantern respond separately to her movement, and spell impacts meet their targets before the visual dissolve begins. These details are there to make a long flight feel continuous without filling the route with decoration.

The gameplay changes went to internal TestFlight testing on iPhone, iPad and Apple TV on 4 October. The eighteen-vista artwork is newer and still in my local build. I need to play on the devices themselves to judge performance and how the later encounters feel.

Visit the project

Room for a wider practice

An optional Expanded workspace connects subjects, certification routes and saved simulated labs, while preserving the original drill app.

TerminalDrill is growing beyond a list of command exercises, but I still want the familiar app to have a permanent home. The new Original and Expanded workspaces let me keep both. Original retains Today, Drill, Path, Codex and Profile. Expanded brings subjects, study routes, a scoped reference and longer practice together. Switching shares the same progress and purchases, rather than starting a second learning record.

The important distinction is between browsing and choosing what to study. I can look around Linux, Shell, Git, Containers, Kubernetes and Ansible without changing my focus; Use this focus makes that a deliberate decision. RHCSA material sits alongside an introductory LPIC-1 route that shows its coverage gaps. New Kubernetes and Ansible exercises let me repair a small authored scenario entirely inside the app. They are bounded simulations, with their limitations visible.

I have also spent time making unfinished work worth returning to. A lab keeps an unsaved editor buffer separate from its machine files; Run, Save file and Check work mean different things. Saved sessions and drafts can be inspected, exported and resumed, including work displaced by another attempt. On iPhone the task, terminal and files have their own panes, while the iPad and Mac give them more room.

The broader curriculum is still growing, and I want independent review of the preview labs. I’m keeping reading, recall and applying a command separate: recognising an answer and working out a repair are different things to practise.

Visit the project

Letting the small worlds live

Fleet travel, living biomes and a more readable sunrise give each round a visible sequence of consequences.

The twelve-world game was playable, but the board still needed to show more of what was happening. I have been rebuilding the feedback around each order: fleets travel between worlds, colonies develop a visible identity, and discoveries, repairs and conflict receive their own small responses. The aim is to make a decision feel connected to a place.

Sunrise now walks through the changes in a round instead of simply replacing the numbers. Income, construction, research, growth and other events have a sequence, followed by a written account of the actual result. View all and Inspect keep the details available afterwards. Skip settles to the same saved outcome, so watching the presentation is a choice rather than another requirement for taking a turn.

The art pass adds living versions of five biome families, clearer fleet headings and different states for construction, population and recovery. I have been tightening captions and action placement alongside that motion, especially on smaller phones and at large text sizes. Normal, Fast and Instant playback, Living worlds and independent sound preferences give the presentation room to suit different players.

I sent version 1.0 build 2 to private internal TestFlight on 4 October. I’m still refining the presentation locally and testing those changes. I need to play it to decide whether the pace is clearer and the worlds feel more alive. I’ve put the larger game and additional platforms aside while I finish the iPhone version.

Visit the project

Preparing a first release

Pocket Pi has a first App Store submission, a dedicated product site and more useful examples of local work.

With the local assistant taking shape, I tried it with a small creative project: a story, a picture, a photo question and notes that belong together. The selected local models produced the text and photo answers. For the gallery, I rendered artwork locally on the Mac, then imported it into the app.

That exercise also found a useful small defect. A garden checklist could contain perfectly ordinary tasks such as selecting and planting, while the reminder extractor kept only some of them. I extended the supported action wording so those tasks can reach the review sheet. Saving still requires a separate decision; an answer does not silently become a system reminder.

Pocket Pi now has a dedicated product website, setup help and privacy pages. They explain the differences between chat, photo understanding and image creation, the downloads each needs, and the choices around optional connections. The point is to make the first useful step clearer before someone commits storage to a model.

I submitted version 1.0.0 build 17 for App Store review on 4 October. I still need to confirm its public App Store availability. The images here are from that release preparation; phone speed, memory, heat and longer image-creation sessions are still part of the testing ahead.

Visit Pocket Pi ↗
Visit the project

A journey in everyday movement

An iPhone fantasy RPG turns everyday movement into a persistent climb, with a traveller and a place to return to.

Climb the Tower began with the idea of making ordinary movement feel like a long adventure. Walking carries a traveller upwards; cycling and paddleboarding can join the journey too. Apple Health can supply the activity, while a separate Private Journal lets you enter it yourself. An Apple Watch companion can record workouts, but the watch is optional.

I want the place around that progress to matter. In Hearthroot you can light a lantern, meet the caretaker, open the workshop and make a room your own. There are companions, choices, little puzzles and things to do at camp on a rest day. The latest visual work brings a mountain sanctuary, illustrated travellers and warmer story and camp screens into the running app.

A long journey also needs dependable progress. Earned ascent stays earned when an activity record is later corrected, and replaying a recap cannot award the same movement again. I have been building the local save and recovery paths around that rule. Self-reported journal activity remains clearly labelled and is never written into Apple Health.

Version 0.1.0 build 2 went to internal TestFlight on 10 October. I’ve since been working on the artwork in my local build; these screenshots are from the iPhone simulator today. I still need to test Health imports, outdoor measurements and Watch recovery on physical devices. For now, I’ve concentrated on the opening journey while I build out the rest of the tower.

Visit the project

The keyboard joins the band

A native Mac typing shooter where Linux commands become targets, notes and beat-timed volleys.

I have been taking terminal practice into an arcade. Terminal Invaders puts Linux commands beneath descending formations: type a visible command to acquire the target and fire. Flags, paths, spaces and punctuation become part of the fight. The commands stay inside the game; the keyboard never sends them to a shell.

The musical side has become a game of its own. In Pulse, completed commands stay armed until the next bar releases a whole salvo. Flow leaves room for slower, forgiving practice. Arcade builds through a nine-wave campaign, while Blitz, Survival and Boss Rush offer different kinds of pressure. Power-ups are collected by typing their names too.

The latest addition gives Daemon, Gatekeeper and Kernel their own encounters. You type incoming counter-commands to protect the ship, then work on a boss’s core as its pattern changes. Gatekeeper can hold a completed core attack behind its remaining defences. Phase breaks and the final strike land with the music, so the payoff follows the decision you just made.

I made an original electronic score with a local ACE-Step arrangement, then built reactive synth layers, instrument voices and distinct boss music around it. Notes, projectiles and stage pulses share the same clock. The Mac app runs offline on Intel and Apple Silicon. I haven’t released it publicly yet, and I want more people to play it. I used automated play through the game for these screenshots.

Visit the project

The convoy can leave port

The Long Retreat is now available free on the App Store for iPhone.

I couldn’t quite get The Long Retreat to where I wanted it to be. I’m not sure. I just can’t figure out how to make it “fun”. I guess I’m just not the best at tying together a text-adventure-ish game.

It’s been sitting around in a completed state for months and months… and months. Rather than let it continue to rot, I thought I’d just go ahead and release it for free.

The Long Retreat is now on the App Store. My previous note ended with a submission waiting for review; version 1.0 is now publicly available for iPhone, running iOS 17 or later.

I built it around the orders that stay with a captain. Across the 24-jump retreat, a distress call or a route change can affect the people travelling with you. The Command Journal, manifest and Memorial keep those decisions and their consequences in view when you return.

The game is free, with no ads, in-app purchases or account to create. It runs offline and keeps the retreat on your device, with local backup export in Settings. I made the September launch panels from iPhone simulator screenshots.

Download on the App Store ↗
Visit the project

What a refit leaves behind

New weapon-fitting warnings make lost capabilities visible before changing the ship.

A new weapon can look like an upgrade while quietly removing something the ship needs. I have been working on that moment in Voidline: before you confirm a refit, the game now warns if you are giving up your last powered ammunition-free gun, standard shield-piercing shot or ammunition-free ion option.

The comparison uses what is actually fitted and powered, including the ammunition available. Shopping advice shows the same losses, and buying a weapon still puts it in cargo rather than installing it for you. You can make a legal fit even when it changes the ship’s approach; I want the warning to explain the tradeoff so the decision remains yours.

The warnings are in my 0.6.0 build 38 Mac candidate. I still need to review the interface, work on performance and get other people playing it. Windows and drones are separate experiments for now. The fitting screenshot below comes from build 31, before I added these warnings.

Visit the project

Seven worlds beneath the water

Tidewhim now has a native swimming game and a richer underwater landscape across iPhone, iPad and Apple TV.

Game design and creative direction: my wife. Development and implementation: Richard Ziolkowski.

The first native version of Tidewhim now has two ways to swim: Voyage asks you to keep going through hazards with three hearts, while Drift lets you explore without damage or a game over.

I have implemented seven regions, five temporary powers, shell collection, cosmetic suits and masks, and an ocean album. Touch steering starts relative to where your finger lands, with optional held buttons, controller support and Apple TV remote input. Local saves keep discoveries and wardrobe choices, and a checkpoint can restore a swim in the paused state.

Lately I’ve been trying to make the water feel like a place. Reef arches, hanging kelp, coral terraces, submerged arcades, luminous caverns, thermal vents and midnight mineral reefs now sit across six depth layers. Fish schools, turtles, rays, caustics and bioluminescent light add motion around the swimming lane. The album postcards use those same landscapes.

An earlier build is in internal TestFlight. I’ve checked the newer landscapes and controls in the iPhone, iPad and Apple TV simulators, but those changes are still local. I’m continuing to work through the next round of changes.

Visit the project

Touch steering and a second jump

The native cat tower now has direct iPhone controls, a double jump and a fuller pixel-art world.

Game design and creative direction: my wife. Development and implementation: Richard Ziolkowski.

The native Cat Climber beta, named Endless Cat Tower, starts with a little calico cat and keeps climbing through Home, Garden, Rooftops, Clouds and Night Sky.

The biggest change I’ve made is to the touchscreen controls. Instead of choosing a landing and charging a pounce, you can slide your left thumb to move on perches and in the air. Tap the right side to jump, then tap again while airborne for a double jump. Lifting the steering thumb stops movement; a little edge grace and landing input forgiveness make close jumps more approachable. Apple TV keeps its aimed pounce.

I have also implemented richer world backdrops, twelve calico poses, fitted hats and scarves, animated hazards, and small effects for takeoff, landing and collecting treats. The wardrobe shows the same character used in play. Treats and best-climb records save locally, and cosmetics keep the same movement rules.

The new controls passed my automated engine and interface checks across iPhone, iPad and Apple TV. The visual beta is in internal TestFlight, and I’ve uploaded a mobile build with the new controls. I haven’t yet confirmed that build is available to testers. I’m also working on more climbing interactions and cat animations.

Visit the project

A living moonlit flight

Whisker Witch has grown from a browser prototype into a native game with animated companions and richer forest detail.

Game design and creative direction: my wife. Development and implementation: Richard Ziolkowski.

Following the browser prototype, I have built native SwiftUI and SpriteKit versions for iPhone, iPad and Apple TV. Hold to rise, release to drift, and try to keep a growing trail of rescued familiars clear of the forest.

The native game separates Moon Coins, which buy wardrobe items, from potion bottles, which grant five temporary powers. Familiars collect coins too, and the chain can hold up to ten friends. The pink Sparkle Bubble protects the entire chain; vines, phoenix fire, moon orbs and golden magic each change how a flight handles hazards. Rewards, discoveries and owned cosmetics save locally.

I’ve added twenty-four animation frames for six familiars, along with glowing flowers, breathing mushroom gills, drifting petals, painted-water light and lantern glimmer. Shields have a pearl-like contour, gold leaves short afterimages, and spells carry distinct trails. I also corrected clipped canopy shapes and made the raven readable against dark trees.

I’ve checked the new animations in the iPhone, iPad and Apple TV simulators. An earlier iPhone/iPad build is in internal TestFlight, while these newer visuals are still local. Next I’m exploring alternate vistas and how to blend them smoothly as the flight continues.

Visit the project

Local AI, in my pocket

A new native iPhone app brings local chat, documents, projects and image creation into one place.

The Mac setup taught me a lot about running models locally. Pocket Pi takes that interest onto an iPhone: a native app where I can ask a question, bring in a document, keep related work in a project and return to it later. Models are downloaded explicitly, and phone inference is the default.

This week brought the pieces together. Projects can hold materials, instructions and saved answers; the library can take text, files, PDFs and scans. Chat and photo understanding use llama.cpp, while image creation has a separate MLX engine. I have been working on the less glamorous parts too: recovering interrupted downloads, keeping drafts attached to the right conversation and preserving the original description when an image request needs shortening.

The latest build also makes it feel more at home on the phone. Share intake waits for review, widgets and Shortcuts lead into useful actions, and generated images offer Photos saving and separate Markup copies. A completed answer can become a reviewed Reminders list. Translation, optional title-only Spotlight search and Live Activity progress round out the native integrations.

Version 0.9.0 build 14 is in internal TestFlight, with a successful installation confirmed on 3 October. The main flows have been through simulator checks, but I still need to test sustained performance, image quality and accessibility on a physical phone. For these simulator screenshots, I used an image rendered on the Mac to try the image controls.

Visit the project

Twelve worlds, one small empire

Small Suns has a new pixel-art iPhone game, with clearer rounds, forecasts and Empire Charters.

I have rebuilt Small Suns around a smaller, more deliberate contest: twelve connected locations and sixteen rounds, with two factions and one rival. The new pixel-art board gives planets, colonies and fleets a clearer identity. For now I am concentrating on the iPhone game and finishing this slice before widening the map or adding more content.

Orders now show their costs and consequences before commitment. Colony development, growth, research and recovery move forward at the round boundary, followed by a sunrise recap of what actually changed. Guided play follows the work of establishing a second colony, while varied geography and rival planning offer different ways into another run.

Three Empire Charters add another decision to the contest. Industry can strengthen a chosen colony, Knowledge rewards connected research sites and relics, and Common Hearth supports growth and relay arrangements. The preview shows which sites benefit, what depends on a route and what will be lost when revising an earlier choice. Saves keep their recorded rules, so earlier expeditions can still be resumed and replayed.

I’ve fixed the round controls on smaller phones, checked that saves survive closing and reopening the app, and moved audio-session work off the interface thread. My automated checks cover the rules, save recovery and main flows on smaller and larger phone simulators. I still need to play on a physical phone and work on comfort and balance.

Visit the project

A mission, and an honest receipt

Adventure adds missions and a personal profile, while a debugging pass makes the practice feedback more faithful.

After the Mac beta and practical labs, I have been trying another way to make daily practice feel inviting. Adventure turns Today into a mission board, with short review, fictional incidents and an accomplishment to work towards. The character profile collects earned titles and small homelab keepsakes. Classic is still the default, and switching keeps the same learning progress.

The weekly goal can be one, three or five practice days, without demanding consecutive days. Lab receipts distinguish guided participation from an independent first solution, and repeating a completed variant cannot keep paying out the same reward. It is an experiment in motivation; the extra presentation does not turn preview labs into proof of professional competence.

The most useful follow-up was a debugging pass. Simulated standard output and errors now stay separate through pipes and scripts, same-file redirection behaves like the real shell, and equivalent octal permissions are graded consistently. Session results also stop describing a visible-answer or hinted response as strong independent recall. iPad Reference selection and retry-aware resume counts received fixes too.

I checked those fixes with automated tests, simulator sessions and a Mac practice walkthrough, then uploaded 5.3.1 build 14 for iPhone, iPad and Mac on 29 September. I haven’t yet confirmed that processing has finished or that the builds are available to the testing groups.

Visit the project

A cluster I can break and rebuild

A personal Kubernetes course pairs a real local cluster with deliberate failures and recovery exercises.

I wanted infrastructure practice to leave me with something I could inspect, break and recover. This new personal lab runs RKE2 in disposable Fedora virtual machines on my Mac, with a separate toolbox for Linux commands and container builds. The course and its scripts keep the environment repeatable, so an exercise can end with a reset and another attempt.

The twenty-four labs move from Pods, Services and configuration into storage, ingress, delivery and recovery. Each has an observable result, a fault to investigate and a way back to a working baseline. Small Fedora applications, a database and a cache provide enough moving parts for the failures to mean something, using disposable course data throughout.

The core cluster is running, and I have exercised image builds, cross-node networking, DNS, Jobs, access controls, database persistence and logical restore. The ingress and certificate path works with explicit verification, and a bounded load exercise triggered autoscaling. Replaying the application namespace brings the foundation back without erasing the separate data exercise.

I haven’t worked through all the advanced material yet. High availability, full cluster recovery, upgrades, observability and the optional storage extension are still on my list. Fedora is an experimental choice for this local course, so I’m keeping track of what I’ve tried and what I still need to run.

Visit the project

A first watch, and places to return to

A first-act demo, operation rehearsals and more distinct stops along the convoy’s route.

I have been working on ways to learn Voidline without putting a whole convoy at risk. Four operation rehearsals now have their own practice saves. I have also built The First Watch, a first-act demo with three starter ships, the Story, Normal and Hard difficulties, and its own save-and-Continue path. These are development builds being prepared for testing.

The people behind the ships need to remain recognisable as a run changes. Opening portraits and reminders now follow the living commander. The campaign’s reflections also distinguish an escort that actually answered a call from a refit you paid for, and keep the historical account intact when a captain changes or a ship is lost.

The route is gaining more distinct places to stop. Eight new environment illustrations cover Silt Station, the rendezvous moon and six faction markets. I have also been tightening the combat controls, room labels, shopping advice and fitting explanations so the consequences of an order are easier to read.

My current Mac candidate is 0.6.0 build 37, with Intel and Apple Silicon packages. I still need to review the interface, work on performance and get other people playing it. The Windows renderer and drone system are separate experiments for now. These screenshots are from earlier October builds, alongside one of the new environment paintings.

Visit the project

Making the opening move

Bunker Seven now moves through five authored spaces, with machinery, threats and rescues changing the route.

The latest Dead Letter work starts with a smaller question: can the opening feel like a journey through a place? Bunker Seven now moves from a breach vestibule through a loading deck, raised service gallery and crane yard to the extraction lift. The camera turns and advances with the action, rather than presenting another fight from the same corridor.

That also changes what you type. A guard can protect another target, a Razorwing adds pressure from above, and a Marshal’s orders can be interrupted. Many ordinary contacts now use shorter postal words, while longer phrases are kept for armour, commands and machinery. Operating the bay, crane and cargo controls produces a physical change in the space around you.

I wanted the rescues to have a visible payoff. Near the end, the view turns back into the yard and retreats during the rearguard fight while rescued crew board the lift. The medical refuge gives the middle of the opening a quieter moment between those threats. The captures below come from the revised opening running in Godot.

The Mac development build is now 0.14.0. I’ve concentrated on the opening; The Unanswered Sky and the wider campaign still follow their earlier routes. I still have final art, performances and testing with new players ahead, and I haven’t rebuilt or tested Windows and Linux for this version. I recorded this run with automated keyboard input, so I still need people to play it to judge the difficulty.

Visit the project

Keeping a record of the retreat

A Command Journal, more focused character stories and a first App Store submission.

The Long Retreat asks you to remember why you made an order as well as what it cost. The new Command Journal brings recorded choices and their aftermath together, with search and a way back to a pending transmission. If you return to the game after a few days, the retreat should still feel like your story.

New retreats now give two character stories more room to develop, with quieter watches between the larger decisions. Mercy’s public appeals and private ward lead to different crises; Cipher’s shared evidence and sealed investigation lead to different problems. Earlier preparation can open another order later. When a ship or captain is lost, the account records the interruption instead of quietly pretending the story finished.

Running out of fuel is now an explicit command decision. You can convert particular reserves at a stated cost, or refuse, with clear limits on what can be used. The route view compares known consequences, and an optional reading view keeps a transmission and its orders in one scroll. I have also refined the title, Records menu and larger-text layouts around those changes.

I submitted version 1.0 build 9 to the App Store on 29 September. I plan to release it free, with no ads or in-app purchases. The game website, support page and privacy information are live; I’m still waiting for the App Store release. These screenshots are from the September submission build.

Visit game website ↗
Visit the project

A proper place at the keyboard

TerminalDrill now has a Mac beta, alongside the iPhone and iPad app.

TerminalDrill has always fitted into a few spare minutes on a phone. With longer lessons and practical labs arriving, I also wanted to use it sitting at a keyboard. The Mac beta brings Today, Practice, Tracks, Reference and Progress into a sidebar, with more room for the work itself.

The latest Mac TestFlight build is 5.2 (11). This round also fixed a crash when starting practice. It is still a beta: the Mac version has not been released on the App Store.

Visit the project

What if the terminal sang it back?

An offshoot of TerminalDrill became a place to experiment with music and voice.

TerminalDrill gave me the starting point: keep the practice short, make the learner type, and explain why the command matters. Shell-Sprint lets me try a different feel around that same idea in a browser.

I started with reactive sounds, then moved into original electronic music and spoken explanations. The latest experiment sings completed commands to a composed melody over the beat. There are three arrangements to try, from electro breaks to drum-and-bass and rock.

The music was made with ACE-Step. A local DiffSinger setup supplies the sung commands, while a separate voice handles explanations. Keeping those jobs separate gives the words some room around the music. Ordinary practice still works when the optional voice service is not running.

I am treating it as an experiment in making practice enjoyable. Rhythm does not affect the typing grade, and you can take as long as you need to read—or turn the sound off.

Visit the project

Made for Jaimie

The best brief for this game was a person I already knew.

My sister-in-law Jaimie has cerebral palsy and an intellectual disability. I wanted to make a game for her, about things she would actually enjoy, with controls and a pace that could suit her.

The September build has longer rides through colourful places, kittens to collect, outfits to choose and family members making little appearances. Jaimie is the heroine. Her wheelchair belongs in the adventure as naturally as everyone else does.

I have been paying attention to the small things: where a trail comes from, how a character moves, whether a button is easy to spot, and how much is happening on screen. No-lose play, adjustable speed and calmer effects give us ways to adapt the ride.

It is being shared with family through TestFlight. The intention is to keep it completely free, with no ads or in-app purchases.

Visit the project

The people behind the ships

September brought a clearer command deck and a convoy with more to lose.

The convoy is becoming more than a row of ships behind the flagship. Support vessels have jobs, captains and stories. A damaged ship may no longer be able to help, and losing one changes the people and options you carry into the next part of the journey.

The recent Mac work also rebuilt much of the tactical presentation: more distinct ship interiors, clearer hazards, a more useful command deck and better views of the larger enemy ships. An optional flight school introduces the controls through short exercises.

The campaign now ties operations and decisions across seven acts. The challenge is making those connections understandable while a player is also trying to keep their crew alive. The latest local candidate is 0.6.0 build 24, with playtesting, performance and release work still ahead.

I put together a short trailer from September development play, using music from the game. It includes prepared test scenarios as well as an ordinary opening fight. There’s still plenty to finish.

Visit the project

A world worth repairing

TerminalTribe is moving towards a connected adventure, with the terminal at its heart.

The direction is clearer now: I want you to feel that you are helping a place recover. Read a message, inspect the system it describes, make a repair and see what that lets someone do next.

The current workspace brings the terminal, story, journal, world and field guide together. Brennan, Mira, Ekko and Pace have reasons to care about the evidence you find. Their accounts do not always agree, so part of the work is separating what a file proves from what a person believes.

Beta 2.1 is live. I’m still building the connected saga, longer investigations and later learning paths. A recent playthrough also turned up feedback and progression that need more work. Making the next step clear—and teaching commands safely—matters as much as adding another mission.

The biggest change from the old campaign screens is that the story and terminal now share a workspace. I want the investigation and the commands to feel like parts of the same adventure.

Visit the project

A bigger world in Godot

The recent desktop alpha adds a story campaign, rebuilt spaces and a voice on the radio.

Dead Letter has moved into Godot, with offline builds for macOS, Windows and Linux. The basic action is still immediate: read a target, type, fire. Around it, I am building a world that gives you a reason to keep going.

The Unanswered Sky now has twelve story chapters, physical controls to operate, rescues and staged boss encounters. The September graphics pass rebuilt the industrial spaces and equipment, giving the combat more of a place to happen.

The 0.11 audio work introduces LARK as the onboard guide and keeps Nadi as a separate human dispatcher. Radio calls react to the situation, and received messages remain in a recap. The synthetic voices and storyboard scenes are working material; the finished performances and cinematic work are still ahead.

I have desktop builds for all three platforms, but I still need to playtest on Windows and Linux. This is an early development alpha.

Visit the project

Beyond remembering the command

The RHCSA expansion connects short drills with practical Linux problems.

A command can be familiar without the task around it being familiar. That is the gap I am working on with the RHCSA expansion: learning what to inspect, choosing a change, and checking whether it worked.

The track now brings together 83 lessons, chapter labs and six capstones, with topics such as permissions, services, storage, networking and SELinux. The labs keep track of the simulated machine as you work, so a change affects what the next command sees. Each has a guide for practising on your own disposable Linux system.

This week also added practical labs to the wider tracks. I have been comparing behaviour against a real RHEL machine, but independent practitioner review is still pending. The labs stay labelled as development previews; this is a practice companion, not a promise of exam readiness.

The expansion is included for existing Full Access owners. The pricing model is staying the same.

Visit the project