If we diagram the evolution of a classic game console, it is imagined, built and distributed by a company, the games are marketed separately, by the manufacturer itself and several game publishers. The games are used from cartridges, CDs, DVDs, Blu-rays or just from a download.
Over time, the console is abandoned by most players and the manufacturer, in favor of a new, more advanced model. Then comes the time for emulation. Passionate and talented developers are reproducing by programming the hardware and software parts of the device. The goal is always the same: to make the software library function as faithfully as possible (games, utilities, etc.) from a machine other than the original one.
With Fantasy consoles, the process is intentionally reversed: we are in a software (a pseudo emulator) that simulates a console that has never existed. Concretely, it is an environment aimed at creating and imagining a small universe. This is deliberately restricted in order to focus on the essential: the pleasure of building and playing. For this, the Fantasy Consoles do not bother with advanced graphics or enveloping music: they imitate the technologies of the 1980s and 1990s, the golden age of the microcomputer.
Pico-8 is one of those first fantasy consoles and has been available since the end of 2014.
Pico-8 is developed by the company Lexaloffle and more particularly by Joseph White. Despite its simplistic exterior, it presents a rich environment with several interfaces, presented below.
This mode manages the rendering and can be encapsulated by an executable Windows, Linux, Mac OS and also via a browser. It gives the appearance of any console, with, at startup, a little intro music, a small intentionally oldschool graphic effect, like on a console. Then the display of a version number on a black background reminds starting a computer. Finally, the desired software starts normally. Interactions with the keyboard are also limited, as only arrow keys and 1 to 3 function keys are recognized.
Only this first environment is free and everyone can therefore play on Pico-8. For others, you have to buy a version but it is very affordable (around 12 euros in 2021).
Several editors exist to code, create sprites, create the game map, configure sound effects, make soundtrack... The proposed editors, seemingly simplistic, are quite thorough to do auto-completion, use the mouse to navigate and scroll, to do syntaxic recognition. This mode is actually a complete game creation environment for Pico-8. Nothing more is needed to create a game on Pico-8!
This mode is accessible from start-up and allows you to enter commands specific to Pico-8, as in a classic shell.
The HELP command lists the available commands. They allow you to load a game, to run it, to browse the files, to make exports (with the generation of executables or web exports), to restart the system...
We really have the impression of being under a Dos or Linux shell, but here also simplified and dedicated to the needs of the environment.
Splore allows you to explore the Pico-8 software library. By simply typing "splore", the list of all software is displayed, with a screenshot each time. With a simple validation, the selected software is downloaded and launched.
The programmer can write his code under Pico-8 in Lua, a language close to BASIC and also quick to learn. The code of the loaded software is fully accessible.
The screen is limited to 16 colors, on a 128x128 pixel matrix. With a refresh at 30 or 60 frames per second.
128 8x8 pixel sprites can be created.
The sound is characteristic of the chips of the 90s, in 8 bits on 4 channels.
The games are saved in P8 files or PNG files, named Cartridge. In an original way, the tool thus makes it possible to contain everything necessary for the game (code, graphics, sounds) as well as a screenshot in a PNG file (in 160x205 format). Thus, on a browser, you can download a game by just right clicking on the image of a game then "Save as" or by dragging the image from the browser to your computer. It could hardly be simpler.
Files are also limited: a game cannot exceed 32KB. This is a limit imposed by the PNG image of the "cartridge", because game-specific information is stored in certain bits of the pixels of the file image and the size of it is fixed.
We can find many games on Pico-8, some of them are quite advanced in terms of playability, some are remakes of past hits (Pac man, Bubble Booble, Tetris, Boulder Dash ...), some are original game ideas.
Several utilities are also present, like for example the soundtracker sequence8 which allows to compose music like "chiptune" rather quickly.
Finally, demos (technical demonstration of the possibilities of the platform), as in the 90s, also exist.
What is interesting with all this software is to find, for those who have known them, the video game pleasures of 30 years ago.
The programming language Lua offers the possibility of quickly creating software and one of the first objectives will be to imagine the final rendering. All the game documentation is contained in a text file and a quick overview is provided on the "Pico-8 Cheat Sheet", like a memo.
For the programmer, 3 functions must be created: _init, _update and _draw. Each of these functions has its own purpose and is called by the system at some point: :
These methods are empty and it will be up to the programmer to fill them in and organize his code accordingly.
Pico-8 initiated a fashion for this kind of software: there are about fifty Fantasy Console. One of the most successful is the TIC-80 Tiny Computer, which is aloso chargeable, uses LUA, has a limited number of color but a higher resolution.
Due to its technical specifications, Pico-8 in some aspects resembles programming on Amstrad CPC or Commodore 64: the limited number of colors, the amount of memory, the sound part, access to the entire code by pressing the escape key, the version of the OS at startup, its resemblance to the Sprites Alive software!... But its execution speed is higher if we compare it with BASIC. I have the impression that the execution speed is close to what was obtained in Z80 assembler.
The KISS principle (Keep it simple, stupid) has been followed throughout the entire project: Pico-8 is a very well technically produced software which offers an environment that is both simple and complete to its users. It is simple but not simplistic, unlike some applications based on Material Design or the Android environment, limited in functionality in general, surely to be more accessible to the general public.
All these qualities make it in my opinion an ideal platform for learning to program, much more than Scratch because it is closer to what programming is and with an interesting purpose: to make your own video game.