
As you may or may not already know, last week saw the start of YRGB 2025, a retro game development competition for the ZX Spectrum computer scheduled to last between August 7th to August 20th.
As a result, we've recently seen a large increase in the number of homebrew releases for the classic machine, with exciting titles like Manu & Kit's Asymmetry and Miguelito's Escape from the Twilight Castle, becoming available to play and download for free.
One game, in particular, however, seems to have generated a lot more conversation than most, with social media being awash with praise and, in some cases, disbelief at what the developer had managed to pull off. We're talking, of course, about Cubix — the new ZX Spectrum game from the homebrew developer Gogin — which its creator is boldly calling "the first-ever 3D platformer" for the popular '80s computer, due to its impressive Fez-like "rotating" levels.
Cubix is probably best described as a puzzle platformer and takes place across six large towers. It sees players taking control of Bix — a small square-shaped creature — who must find a talisman broken by the evil lord of Chaos, Hexatron. Manoeuvring Bix around the map, players will travel across a 2D plane, collecting new abilities to help them progress, with the map rotating once you get to the edge of the screen.
Speaking about how he came up with the initial idea, Gogin told Time Extension over Twitter/X, "The idea itself came to me two years ago, after I first played Fez on the PC. At that point, I already had a couple of projects in the works, but the idea seemed very fresh to me. I thought it would be nice to try to implement something similar on the ZX Spectrum. Not necessarily a clone of Fez, but something close to it.
"I had never tried anything like this before, but I gained some experience with fast graphics rendering when I made the game called Nothing in 2021. The main question was: could the ZX Spectrum handle it or not?"
According to Gogin, while he wanted to start the project there and then, it took him a couple more years after the initial bolt of inspiration to think of an original concept that would be a good fit for this kind of mechanic. So, for a while, he simply put it on the backburner.
But then, in March 2025, he ended up writing the first line of code on the game's prototype engine in C#, with the plan being to later port the code over to assembly language, which he eventually ended up doing. In total, it took him 4.5 months from start to finish to complete the project.
Talking about how he achieved in the "3D" in the game, he revealed to us that it is just an effect, with the graphics all being rendered using flat 2D tiles that have been manipulated to give an illusion of depth.
As he told us, three large tables are used to display all of the graphics that appear on screen in the game. The first is a "tile grid", used to show the "3D" tiles, including the angle of rotation and perspective, while the second is a "coordinate grid", which is used to "calculate the rough coordinates for displaying flat images (including spike tiles and other sprites in the game)". The third table, meanwhile, he described as a more "precise" table of coordinates and, depending on the rotation angle and the player's line of sight, could be used to "calculate the exact location of the sprites on screen" to give greater level of accuracy.
As he told us, "The tiles are pre-shifted and pre-rotated once when the game level starts. In the runtime, it is then calculated to determine which tile/sprite should be displayed in which area of the screen, and which procedure should be used for this (there are about 70 procedures in the engine responsible for displaying graphics).
"The idea behind implementing this (and similar) engines on the ZX Spectrum lies in one simple idea. Don't do what you don't have to do in order to save Z80 clock cycles. Therefore, I assumed that everything that could be calculated in advance would be better calculated in advance."
What this essentially means is that before any rotation happens, all of the information was already pre-calculated and stored in memory, ready to be plucked out and used to create the impression of the player travelling around a 3D world.
"In the classic ZX Spectrum, only the upper 16 KB memory bank can be switched," Gogin told us. "Therefore, in addition to writing efficient code, it was also necessary for me to store the data in memory so that it was literally all 'accessible' during the rendering process. As a result, at the moment of creating an image on the screen, almost all of the processor's address space is occupied by screen output procedures (~16 KB), various optimization tables (~24 KB), and all the graphics (~8 KB)."
If you want to give Cubix a try, you can download it yourself now from the YRGB 2025 website. You can either play it on an emulator or on real hardware using a ZX Spectrum 128K or another compatible machine.