39 comments

[ 3.3 ms ] story [ 143 ms ] thread
My favorite Pico-8 game is a Factorio demake that can be played in an hour https://www.lexaloffle.com/bbs/?tid=30631

Pico-8 also has a basic music synthesizer so you find many pico-8 songs online if you're into 8-bit music.

I wish the platform would've been more open, but I know there are many other similar platforms now.
Can you list some of these other platforms so that I can check them out?
https://tic80.com/ (lua, open source - you can pay for the binaries or build it yourself)

https://liko-12.github.io/ (lua, open source, I haven't used this much, but it seems nice)

https://github.com/ftsf/nico (nim, open source. Not quite the same as the others, there's no IDE, etc. But it's a library with an API similar to PICO)

Sometimes I feel like... I am glad the developer is getting paid to do what he does best. Earning a living wage from it. Please appreciate what they've done. Not everything closed is evil oracle megacorp endeavor.

I am 100% ok with Pico-8 being closed. It's a fucking game engine, not a crypto library. I am a fan of FOSS, but I often see people demand and feel entitled for free stuff. This is wrong.

Once in a while, sit back and enjoy what people create without a slightest bit of dissapointment, entitlement, itch to make mods and hack it, etc. It will bring happiness and peace. Look at it from a different way - it's someone's unadulterated, unbikeshedded vision of what a tiny game engine should be. No PR drama, he doesn't need to answer hundreds of angry assholes on Github, ... I think its beautiful.

I do find the closed nature of the project problematic, but not for the reason you list: if I invest many hours into making games on the platform I want to be sure that I'll still be able to run them easily 10 years from now.

Hopefully if the author ever decides to stop working on the project they'll release the source code for the community to keep it alive.

Even if the author released sources you would not get any guarantee the games can run easily. There needs to be a community that is familiar with the source and keeps maintaining it.

There are a lot of game engine like projects on Github with full code available that are anything but easily runnable on modern operating systems.

It wouldn't be a silver bullet but it would at least make it possible. See Flash for instance: I'm sure there would be enough interest to maintain a FLOSS fork of the Flash player but it's not possible without reverse-engineering it and reimplementing it from scratch.
i am glad the developer is getting paid, and i'm abstractly thrilled at the success of pico-8, which looks like a very nice project and has from all accounts spawned a fun game dev and gamer community around it. i enjoy reading articles about it, and about the people in the community. i just can't bring myself to personally care about using it, though.

this has nothing to do with feeling entitled to get things for free, it's more an internal feeling that computing has divided itself into an interesting and vibrant ecosystem of open source software, and proprietary products that are in some sense the equivalent of a neighbourhood diner - they might actually be very nice, and are surely of interest to people who live in said neighbourhood, but they are never going to be relevant to me in any real way. being closed just sucks all the excitement out of things - i can, as you say, sit back and enjoy it the way i would a piece of art, but i can't summon up any enthusiasm about using it.

(if there were a book about it i would totally buy and read that, though; i do enjoy the fact of its existence and the community around it, and stories about its development and growth continue to be fascinating.)

> if there were a book about it i would totally buy and read that

Except if the book wasn't open source then it "suck all the excitement out of things?

Do you refuse to play all games that aren't open source? Don't watch movies unless they are open source?

There isn't much to Pico-8 in terms of runtime. The LUA you write is yours and I'm confident if you really wanted to use it somewhere else it wouldn't take more then a few days to repo the features. There just isn't that much there. A few draw commands, some input, and audio functions. What's to lose?

The entire package, loaders, editors, exporters, etc is a lot of work but you're no losing anything by writing games in it.

no, i happily read books, and watch movies etc. and like i said i really do appreciate the artistry behind pico-8, and the community, and i will happily consume it as passive entertainment in the form of blog posts and articles and a book should there ever be one. i'm just not excited about it as a personal creative outlet, which does not mean i'm not happy that other people are.
The format is documented and there are open source "emulators", as well as (many) other Fantasy consoles like Tic-80 and Quadplay that are also open source. Even if you don't want to use Pico-8 for moral reasons, if you have an interest in fantasy consoles, there are many FOSS options. It appears like you aren't really trying, and just complaining about Pico-8. I'm sure you had no problem finding an open source text editor, open source OS, open source compiler, etc. Do some research, or alternatively admit you actually don't care about fantasy consoles or game development, and are here to complain about random software being closed source.
i'm not complaining about it, i was just answering the grandparent's comment about why some people might want pico-8 to be open other than "entitlement". there's no moral element to it either.
(comment deleted)
For Pico-8, closed-ness is a feature: the author is known to hide secret easter-egg features in updates eventually get discovered and unearthed over time. Parts of the memory map are still unknown, and people will figure out new "pokes" that will save you some tokens or cycles... then someone takes that and does something nuts with the undocumented features.

If it were open source, and community-driven then by now Pico8 would just be a regular old game framework: features would get added and added until it was just like any other game library.

As it stands, the secret-ness of the code is a big part of the fun. Figuring out how to push the limitations and looking for sneaky ways to do new things. It feels like exploring and trying to master the early 8bit computers back in the day. That's the "fantasy" part!

That's why I call Pico-8 a fantasy console, and the knock-offs are just "feature-limited game libraries"!

If you'd like the platform to be more open, it's pretty easy to do something about it, just contribute missing bits to existing open source implementations like https://github.com/picolove/picolove. The overall system is pretty simple, so completing a decent open emulator should be be doable in a reasonable time frame.

Personally, I'd both like to see and open-source way to play back pico-8 cartridges and lexaloffle continuing to be financially rewarded for building a pretty cool (and cheap!) platform, so I hope the graphics and sound editors won't be included in free clones anytime soon.

Fun fact, the indie darling Celeste started out as a Pico-8 game

As someone who cut my teeth on the first 3D generation of games I'd personally love to see a Pico-64, or whatever, that targets the N64/PS1 experience; 2D games aren't really nostalgic for me. It would be harder - who knows how you'd go about creating a 3D asset tool on the same level of simplicity as the Pico-8's sprite editor (and a texturing tool to match) - but I can dream.

You might want to have a look at Voxatron[1], the 3D version of Pico-8, that you get as a bonus when you buy a license of Pico-8.

[1]: https://www.lexaloffle.com/voxatron.php

That looks cool, but I think what GP wants is a PS1-like virtual console with limited palette, 32x32 textures, and unlit, unfiltered, non-projective texture mapping.
PS1 can support 256x256 truecolor (or 4bpp/8bpp paletted) textures, dithering and gouraud shading! It also has a very weird graphic pipeline that I don't think would be very friendly to a novice: the 3D projections are done on the CPU and the depth buffering is handled by... the DMA. The GPU is purely 2D, hence the lack of perspective correction in the texture mapping.
The Pico-8, in both its aesthetic and its imposed constraints, creates a "fantasy version" of the experience of working on actual 8-bit consoles. It presents that era as people remember it, instead of as it actually was. I think a similar thing could be done for the N64 generation.
That looks neat - but I don't think it fits the PS1/N64 era very well at all. It seems more like that pixel art/Minecraft kinda feeling.

I would also absolutely love a very simple N64/Saturn/PS1 era 3D modelling / game engine in such a lovely simple package.

Low-poly, low-res textures, with an option for that wonderful grainy kinda PS1 dithering if we'd want. :)

Consider a modern engine with shaders that enforce those arbitrary limits.

Unity shader asset: https://assetstore.unity.com/packages/vfx/shaders/psxeffects...

Godot shader example: https://github.com/MenacingMecha/godot-psx-style-demo

You can use modern modeling tools with self-imposed limits on model complexity and texture sizes. (Blender is even era-appropriate — its first public release was in 1998.)

In the context of a PS1-era demake: https://www.gamesradar.com/heres-how-to-create-a-ps1-demake-...

Alternatively, see Crocotile3D, which approaches that era's aesthetic from a different angle of simplified tile-based modeling: http://www.crocotile3d.com/

I am using that exact Unity shader! :)
As others here said, while this is cool, it uses voxels which are unrelated to the techniques used in early 3D video games. Not much nostalgia value there.
I agree that a voxel engine is probably more productive for such a "toy" console approach. You can basically use the same techniques as the one you'd use on the PICO-8, just with an added dimension.

Polygonal 3D is a huge step compared to 2D engines. You can't just create assets with a simple bitmap editor, you need to learn 3D modeling and it's a huge can of worm. And then you need to learn to animate your models...

With voxels you can just sculpt your models minecraft-style, it's a lot more intuitive I think. And animations could be done like for sprites: you just key your animations with different 3D voxel models.

I've developed my first video game ever in 2020 thanks to Pico-8 (and thanks to the COVID and the lockdown, too) I was impressed by how it was easy to learn. Once you understood that everything revolves around a big gameplay loop, you can really just focus on what matters (gameplay, art). I like that it encourages trade-offs and workarounds. I've never felt blocked or stuck too long.

Also, as a software engineer, I wasn't afraid of the development part of the game, but I was very skeptical of my capacities to draw characters or levels. Pico-8 helped me to achieve something without feeling ashamed. Because I knew that I was, by nature, limited in my sprites, it helped me releasing my inhibitions and drawing as if I was a 5 years-old boy proud of his drawings. Same thing for the music and sounds.

Another cool thing is that even when writing code, I didn't feel like I was doing the same thing as during the day. Just writing code, in a closed and stable environment, with a very modest API, and finally the ability to release and convert your game into a JS file in just one command is infinitely satisfying. After a day spent struggling with CloudFormation on AWS, it was a blessing!

I feel the same way about it. I was a student when I first heard about it, and I definitely feel that making my own (terrible) Pico-8 games made me a much better programmer than I would've been otherwise, and also helped me grasp concepts that I found difficult to understand from lectures. Even an artistic simpleton like myself can make an 8x8 sprite look good, and the other self-imposed limitations of the system actually do a great deal of reducing the burden of too many choices. By holding you back in certain areas, it actually makes the end goal of finishing a game easier to reach. If anyone is debating picking it up, I strongly recommend it.

Getting back to the article, I was familiar with Fred's games, and I personally think he's one of the most talented developers in the community, I'm very excited for the upcoming Poom game, which frankly is beginning to border on Dark Magic.

I had the exact same experience (even down to releasing my first game during lockdown)! The whole process of developing in Pico 8 is like digital therapy for me. It reminds me what excited me about coding all those years ago before it became a career.
I'm a FTE by day, hobbyist gamedev by night and some of the best advice I got when learning how to do basic pixel art was to start with a small palette and work your way up.

Working at 16x16 _only_ has greatly increased by skill since I have to be creative and work around the size limitations. Additionally, a small color palette does the same, but I'm not there yet..

> Because I knew that I was, by nature, limited in my sprites, it helped me releasing my inhibitions and drawing as if I was a 5 years-old boy proud of his drawings.

That's a great achievement. "It took me four years to paint like Raphael, but a lifetime to paint like a child." (Picasso)

My favorite quirk of Pico-8 is that the games "cartridges" are image files. As a result, they're easy to share on social media and it's visually interesting to do so.
I just started on my journey to create my first game with PICO-8. Fred is an absolute genius and is unmissable if you frequent the BBS (Bulletin Board system, PICO-8's official forum)
Two fun facts about Pico-8:

* Pico-8 "cartridges" are PNG images with the source code hidden inside the low-order bits using steganography. If you see a picture of the cartridge that picture is also the game! https://pico-8.fandom.com/wiki/P8PNGFileFormat

* The main limit on how large the program can be is the number of tokens. An earlier version just had a character limit but that encouraged the game developers to use unreadable minified code with terrible variable names.