💾 Archived View for drawk.cab › projects › ideal › index.gmi captured on 2023-01-29 at 03:11:21. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
This project was inspired by PICO-8, a "fantasy console for making, sharing and playing tiny games and other computer programs" whose constraints are "carefully chosen to be fun to work with, to encourage small but expressive designs, and to give cartridges made with PICO-8 their own particular look and feel.
There's an interesting crossover between "deliberate constraints" and "retro". There's nothing in these design goals that actually says using PICO-8 should feel nostalgic. Are the constraints fun in part _because_ previous generations of hardware had these constraints, and we associate them with classic as opposed to ugly?
The only thing about the PICO-8 that couldn't have been done in the 80s is its processing power. A Commodore 64 has the same storage space as a PICO-8, but you couldn't easily write a Commodore 64 game in Lua, because it would be too slow. What's implied here is that machine language is just not easy or fun enough to write. The learning curve is too steep. This constraint is relaxed in the name of usability.
I think the constraint about size is not _primarily_ about emulating the consoles of the 80s, but as a nudge towards accepting a small box and using it to focus on design. Of course there is a PICO-8 demo scene that does plenty of squeezing, just as new games written in machine language are still being written for the C64, and people will do things under any constraints they can find, if it provides a challenge.
I am not one for a challenge. So what other constraints should we impose, considering modern technology but keeping a pleasingly simple (and yes, retro) aesthetic, but which would open up interesting possibilities?
IDEAL-5 is a console from a touchscreen era. In our world, controllers are baked in to the game design, which is something much more fundamental than the graphics, storage needs or the ease of coding. Mouse-driven games, as we saw in the 90s, are perhaps more similar, but there are still big differences. It's much easier to swipe. It's much harder to select an icon from a grid. That kind of thing.
Another reason to focus on touch is that it means that the results can be played on modern phones. Most retro ports for phones have some kind of on-screen controller-substitute. IDEAL games don't need this because they are touch native. (See Lemmings for an interesting touch-powered reboot. Is it still even Lemmings? I mean, apart from the lemmings.)
The other two constraints I want to impose, and these are related, are time and state. My hunch is that, aside from the programming challenges I mentioned, the _space_ constraints imposed by consoles like the PICO-8 are actually aiming at producing games which are smaller in _time_. Why should a computer game take a long time to play? Because in playing it, you are evolving a complex game state. Either that, or it is just a dull game.
I am going to impose these constraints more directly. IDEAL-5 has no space constraints in terms of code or data storage. You can build up as much state as you like, for up to 10 minutes. But after 10 minutes (if you haven't chosen to trigger this yourself at a more convenient time) the system reboots the game, discarding all that state. All you can take with you through this event is whatever you have saved in storage, which is limited to about 80 bytes. (There is also an unlimited storage for high scores and achievements, but these are write only.)
https://www.lexaloffle.com/pico-8.php
IDEAL is a fantasy hardware developer who launched a touch screen console, the IDEAL 5, in the fourth decade of the 80s. Unfortunately their product was the size of a small suitcase, ruinously expensive, and if left switched on soon reached a dangerously high temperature. The product failed; there are literally none left in existence today. But thanks to modern technology, you can play all the IDEAL games that were ever released (currently 1) on your smart phone. And you can code new ones, in IDEAL CODE (which is uncannily similar to Lua.)
The IDEAL 5 has
It does not have
TODO: rescue some form of downloadable thing otherwise all this is just guff :(
This project worked great on my computer! But it fell at the last hurdle, which was actually packaging it up into a usable mobile phone app. Perhaps I am unlucky, but I just couldn't get LÖVE to produce reliable Android builds. So my take-home message for this project is: get something working end-to-end first. If your chosen combination of technologies can't actually deliver a product, you are wasting your time.
I didn't like that I had to use an old version of Lua. At some point (5.3 I think?) the designers of Lua removed some features I was relying on to keep IDEAL CODE isolated from the LÖVE framework. Turns out Roblox had the same problem, and fixed it by forking the whole language. Not something I was in a position to do.
Luau, Roblox's safer version of Lua
I'm still interested in the time/state thing. zep is bringing out a larger version of PICO-8 called Picotron, which looks like the Amiga to PICO-8's C-64. The expanded capabilities are fun, but are they just enabling games to last longer?
The touch aspect was disappointing. I don't know why I should have expected different, but the affordances of a touch screen have been thoroughly explored by mobile developers, and adding a retro sheen to the same ideas wasn't so compelling. More fundamentally, the touch screen doesn't combine well with the idea of you as a character within the world. Your input can occur anywhere, it comes from an incomprehensible third dimension. Even if your character is depicted on the screen, it's not you. You're just ordering it about. With a controller it's somehow easier to actually inhabit the character you see. I wasn't expecting this to have made such a difference but it's real, at least to me.
The idea of fantasy retro devices is to explore the creative potential of technical constraints that didn't actually happen in the real world. But we forget the social and business constraints that also existed. The games released in the 80s were developed to a deadline, by people who were still feeling their way around a system, whilst always keeping an eye on what the next generation was going to offer. With time, understanding, and the ability to develop on far more powerful machines, games are being made today which get more out of the machines of the 8-bit era than anything released at the time.
And when you can emulate anything, why would a developer target one retro platform over another?