No Man’s Sky captured imaginations from the moment it was announced almost six years ago, and while its 2016 launch wasn’t exactly smooth, subsequent updates have seen it flourish into an absorbing and technically stunning space sim. In its own way, pixel tribute Low Mem Sky is another impressive feat of programming.
Created by software developer Paul Nicholas, it’s a 2D, top-down rendering of the No Man’s Sky concept – a procedurally generated galaxy to cross in a little ship, planets to land on and explore – all crammed into the fantasy console, PICO-8. As you’ll discover in our cover feature in Wireframe issue 12, PICO-8 is a development environment that’s defined by its strict limitations; with its 128×128 pixel display and 32kB cartridges, it’s perfect for the rapid creation of tiny, focused games. But as Low Mem Sky proves, PICO-8 also provides another worthwhile challenge: finding out just how far its limitations can be pushed.
“At first, I started creating a few small games and demos, but the projects steadily grew in scope and complexity,” Nicholas says of his early brushes with PICO-8. “My first big project was SCUMM-8 – my demake of the classic point and click adventure game engine, which was also my first open-source project on GitHub. Low Mem Sky was my first proper venture into procedurally generated content. I’ve always been a fan of such games, ever since River Raid on the Atari, with its seemingly never-ending levels. My admiration for procedural generation grew when I used to play Frontier: Elite II for hours on my Amiga 600 back in the day. It was fascinating to see that (David Braben) managed to fit an entire galaxy on a single floppy disk.”
The idea of making a lo-fi interpretation of No Man’s Sky first came about in the summer of 2018, when Nicholas took part in a game jam dedicated to making unofficial, 8-bit tributes to famous games – click on the #DemakeJam hashtag on Twitter, and you’ll find blocky renditions of everything from Ocarina of Time to Overcooked. One of the main rules that entrants were asked to abide by was that their games be completed within eleven days; a tall order for Nicholas, particularly given the number of elements he needed to cram into just 32kB of memory.
Tiny space
“I think the biggest challenge was mostly the act of squeezing the various aspects – galactic map, space flight system, planet surface exploration, trading and inventory system – all into a single PICO-8 cart. It needed to have all of those core features in, otherwise, it wasn’t really a proper demake. It would’ve been much easier to split the game across multiple PICO-8 carts, but for me, having it all within a single cart was an important aspect of the whole challenge.”
Fortunately, PICO-8’s open community of developers regularly make their work freely available for other users, meaning Nicholas could use existing routines to get Low Mem Sky up and running.
“This jam was very short – we only had eleven days – which was just about enough time to create the initial version in my spare time. I had a bit of a head start though, as I’d recently combined a couple of existing routines – PICO-8 ports of OpenSimplex noise generation by Felice Enellen, and Marching Squares by Frederic Souchu – to create a proof-of-concept of an infinite smooth-scrolling 2D terrain in PICO-8. In fact, Low Mem Sky wouldn’t have been possible (at least within the jam period) were it not for other members of the PICO-8 community making their code snippets available.”
The result is a charming and surprisingly atmospheric space exploration sim, as you hop from planet to planet to the echoing strains of Chris Donnelly’s superb chiptune soundtrack (“He’s even had requests for digital copies of his 8-bit renditions of the original No Man’s Sky music,” Nicholas tells us). And then there’s the scale to consider: Low Mem Sky can’t quite match the 18 quintillion planets Hello Games managed in their opus, but Nicholas’ tribute still has something in the order of 180 billion worlds, each with their own procedurally generated terrain and creatures milling about thereon. Nicholas continued to add to Low Mem Sky after the game jam ended too, with subsequent updates adding such things as new ship classes, space station docking, and other improvements.
With work on Low Mem Sky now complete (“I’d reached the capacity of a single PICO-8 cart ages ago, and was battling to squeeze that last release into it,” he says of the game’s aptly named L.A.S.T. update), he’s moved onto another, similarly ambitious demake.
“This time I’m trying to recreate the RTS classic Dune II in PICO-8,” Nicholas reveals. “It’s currently titled Pico-Dune, but I’ll let my Patreon community decide the final title. I’m very excited about it, as I loved this game back in the day. I don’t yet know if it’s really possible to squeeze it all into PICO-8 – but I think it’s gonna be fun to find out!”
Squeezing PICO-8
āThere are several tricks that I tend to rely on, primarily to make the most of the limited available cart space,ā Nicholas says, when asked about the techniques he uses to squeeze the most out of PICO-8. āThe first is using the minifying feature of picotool, created by Dan Sanderson. Depending on your code, this can help reduce your character count – one of PICO-8’s program limitations. Unfortunately, this also results in the code being unreadable, but you can always include a link to the original source for the benefit of the rest of the community.ā
Nicholas also recommends using PX8, a data compression library written by PICO-8 creator Joseph White. āThis allowed me to fit the graphics for about ten completely different screens and locations, spread across two carts.ā