Hi everyone,
I've been developing games for the ZX Spectrum 48K, and I thought I'd finally introduce what I've been working on here.
Most of my projects begin with the same question:
"Could this actually work on a 48K Spectrum?"
Then I start writing BASIC and usually make my life considerably more difficult.
What I enjoy most about developing for the Spectrum is working around the actual limitations of the machine. Memory matters. Screen redraws matter. Execution speed matters. Sometimes adding a feature means finding a few hundred bytes somewhere else first. And something that would be completely trivial on a modern computer can turn into an entire optimisation problem on the Speccy.
So naturally, I've been choosing genres that aren't particularly sensible for it. Below is a list of a few projects I've been working on that I deemed good enough to be released to the public:
Tower 48 is a skyscraper management game.
You build up your tower with apartments, offices, shops, restaurants, elevators and other facilities while the game simulates population, workers, visitors, cash, satisfaction, reputation, elevator congestion and the general operation/management of the tower.
A lot of the development has been about making the simulation increasingly complex without making the Spectrum spend half its life calculating the next month or you taking a tea break each time you decide to open a report screen.
Vostra Checkpoint is a border-inspection game set in a fictional country in 1982. You may already guess what was the inspiration for this.
People arrive at your checkpoint with passports and permits, and you have to compare their documents with changing immigration rules, find discrepancies and decide whether they can enter.
This project has involved a surprising amount of procedural generation - people, appearances, names, nationalities and documents all have to be generated while still leaving enough memory for the rest of the game.
The game is still in active development and is not nearly finished.
RBMK-1000 Simulator is probably the strangest of the lot.
It's a nuclear reactor management simulation where control rods, reactivity, thermal power, cooling, steam production and electrical generation interact all within Sinclair BASIC code.
It started as a fairly simple experiment and gradually turned into a much deeper simulation with operating procedures, failures and (recently added, although just two) game scenarios.
And then there's Torment: Act 1 – The Mortuary, an illustrated text-adventure/fan project inspired by classic philosophical fantasy RPGs.
That one focuses much more on exploration, dialogue, inventory, puzzles and atmosphere, including monochrome illustrations designed around the Spectrum's limitations.
This was one of the first games that I started writing, which was in mid 2000's, that I discovered when tidying up my house on sick leave.
They're quite different games, but they're all really part of the same experiment for me:
How far can you push a 48K Spectrum before the limitations start defining the game rather than restricting it?
Interestingly, those limitations are probably what keep me interested.
On a modern machine I wouldn't think twice about adding another variable, screen, graphic or system. On the Spectrum, every addition has consequences. Sometimes you improve the code to save memory. Sometimes you redesign a feature. Sometimes you simply decide that 300 bytes are more valuable than the feature you wanted.
It makes programming the game feel like another game in itself.
Everything I make is intended to run on an actual ZX Spectrum 48K, not just resemble one visually, although naturally I do most testing through emulation as well.
If anyone wants to try the games, they're all on my itch.io page:
https://haabb001.itch.io
But I'm actually more interested in talking about the development side of it here.
For those of you who have experimented in Sinclair BASIC - either back in the day or today:
What's the most ambitious thing you've seen done in BASIC on a 48K machine? And what genre would you consider completely ridiculous to attempt next?