Without knowing it, my first contact with a fantasy console was in 2011 with a Humble Bundle of the sandbox game Voxatron, made by Lexaloffle. Years later I found out that Voxatron has a brother, PICO-8, and that both are fantasy consoles. At the time I already knew that this kind of project would be a good way to learn more and have fun doing something new. But it felt too big, complex and distant to achieve, so I’ve shelved the idea until this moment.
What is a Fantasy Console?
But what is a Fantasy Console? Also known as Fantasy Computer, it is a kind of virtual machine that recreates the experience of making and playing games in a system with limited resources. Normally they simulate an imaginary machine, but this is not a rule carved in stone. The type of limitations may vary for each console, but you will normally find restrictions about screen resolution, code length, sprites quantity, map sizes, number of colors and cartridge (ROM) size. All these constraints are carefully selected to provide a fun and challenging environment and also to encourage the developer to make small but expressive game.
If you have ever played a small game on itch.io or one made in game jams, you might have come across a splash or load screen that looks like a booting process of a computer. This is a very common feature and it is a good way to know that the game was made with a fantasy console.
And here comes a new challenger! Well… not quite yet.
SN-50 is my newest project. Its status has been upgraded from “idea on a paper” to “in development”. It will be a fantasy console, of course, but more flexible about its constraints. Developers will be able to choose which limitations their game will have. Screen resolution? Palettes with 4, 8 or 16 colors? 32k, 64k or 128k for cartridge size? You decide. But these are just examples, ok? I can’t share more about limitations now because, to be honest, nothing is final yet.
About its features and tools, I want to offer an experience similar to other fantasy consoles. SN-50 should include editors for sprites, glyphs, maps, sound effects, music and code. A system to share cartridges and standalone players may be available too.
I’ll be using Rust in this endeavour, always trying to use pure Rust crates. No promises about which windowing, graphic or audio libraries I’ll be using. I’m accepting suggestions.
Interested? You can follow SN-50’s development from its repository, and maybe you could contribute too. Why not? Have I said that the project is Open Source?
If you are asking yourself “why SN-50?", the name comes from the chemical element Tin: symbol Sn and atomic number 50. Nerdy, right?
What is next?
So, what am I planning to do? Right now I’m designing the cartridge file format and the read and write routines. SN-50 development will be quite big and challenging. It will make me learn stuff from game development that I’ve never touched before. So, stay tuned, I’ll be writing about everything I do and learn in the SN-50’s article series. See you soon.