Pico-8 is a cute little thing. On the web site, it...
# linking-together
j
Pico-8 is a cute little thing. On the web site, it is said to be a "fantasy console". It includes a minimal Lua, graphics editor + sound + music editor. "Cartridges" are shared as PNG images with the code embedded in the image. You can inspect code of any cartridge. You can even run it on a Raspberry Pi and use I/O to interact with sensors, motors, etc. Fans of C64/Amiga, or HyperCard, might appreciate. Some things that might be interesting in terms of future or coding: - a small API that you can remember makes things fun - constraints can invoke creativity - how you call something, in this case "fantasy console", matters - community, and learning, is important when building dev tools Pico-8: https://www.lexaloffle.com/pico-8.php A presentation from the creator of Pico-8:

https://www.youtube.com/watch?v=87jfTIWosBwβ–Ύ

There is also a prototype tool by Gabriel Florit, which combines Pico-8 with Bret Victor -style live coding and time scrubbing: https://script-8.github.io
😎 6
i
For anyone who played the fantastic game Celeste this year, it was originally prototyped on a Pico-8, and you can find that version of the game hidden in the real game.
πŸ‘ 1
s
Pico-8 is one of my favorite environments to code in
πŸ‘ 2
definitely watch the practice talk, the philosophy of building an environment with the right constraints in order to reduce friction is important
πŸ‘ 3
g
I love Pico-8 as well and it seems great to learn current coding but far from "future of coding"? I know some schools use it and I'm sure plenty of kids use it but I'm pretty sure the majority of interesting things made with it are by people with tons of coding experience under their belt. As a teaching environment I'm curious where it fits compared to say Unity. I get that Unity is a giant monstrosity with few limits but at the same time you can follow a short tutorial and have a 3d character controllable and walking around a 3d environment colliding with walls and have 3d enemies path finding their way to the player in just a few minute and then start modifying. Where as with Pico-8 I'm guessing the same inexperience person might be at the "draw random colored lines" stage in the same amount of time. Or maybe compare to Processing or P5.js I guess I wonder how much my nostalgia for my 8bit programming experience clouds my appreciation of Pico-8. Sure I grew up learning BASIC on Apple2/TRS-80/Atari 800/C64 but I just wonder if that's the right approach for 2019 Compare to say Javacript/HTML vs my 8bit experience. As a kid in an 8bit computer I couldn't even draw an image without having to write code. Fonts? Forget it. Draw a polygon? None of those machines had a 2d API that did more than draw points and lines. Vs say JavaScript with drawImage, patterns, transforms, fonts, multiple color modes, composite modes. And also all of HTML for output / UI / etc.. I have fond memories of implementing my own string input system where you could move the cursor, type and it would insert characters at the cursor, press delete and it would delete to the right, backspace to the left, insert vs replace mode, etc. all that because the system provided nothing. Now all that is just handed by <input type="text">
πŸ‘ 2
j
I loved the fact that my 8-year-old son was able to jump right in into designing his own game with Pico-8 in the sprite editor. And the sound editor was also easy to learn. So maybe one thing to learn from it is that if a platform offers solid design tools, then that will motivate learning the programming part too? Maybe one of the reasons for success of Flash, HyperCard, Director etc. And the web too β€” you can start by designing and worry about the code later. Then again, this creates an artificial barrier between coding and designing, which is not something that I feel to be ideal.
i
Flash, HyperCard, Director etc
Totally. This is a well-proven recipe for building a "my first game engine" environment: Make it easy and discoverable to make something static, then make it straightforward and discoverable to make it animated, then make it approachable and discoverable to make it dynamic.
g
This link is trending on HN with the title https://news.ycombinator.com/item?id=18866500 Not sure if slack will show a title but it's about someone who says he taught his little brother to code and made a small game. The game is designed for mobile. Hold the phone flat and tilt. In any case it kind of shows my point above on JavaScript vs PICO-8. I agree that PICO-8 with build in sprite editor, map editor, sound editor, music tracker helps. The small size also make it less likely you're going to spend too long on making pretty graphics instead of coding. At the same time you're entirely your own. Instead of just deciding what you want your character to do like you might in Unity you've got to code your own collisions, your own (simple) physics, etc... That might be good for learning but it seems the far opposite of the topic "future of coding". More like "past of coding" πŸ˜› I guess it's still undecided if the old way is the best or if some new way would be better. Having learned the old way it certainly can work but it seems like the premise of this group is that there's likely a much better way.
πŸ‘ 1
j
The right level of abstraction is always hard. Ideally, you’d want to have something that is low-level to give full flexibility and small API, but something that is at the same time expressive enough to make it easy to do complex things as well. I think the lack of inbuilt collision detection etc is by design in PICO-8. Other tools, like GDevelop and Stencyl (and Unity), give you those out-of-the-box, but then you will never learn how they work.
i
I dunno. Unity gives you collision detection, sure, but a lot of people (myself included) end up writing their own, because the kind of game they're making doesn't fit the kind of collision Unity handles best. That's a testament to Unity β€” when you need to make your own, you can. But until then, there's a nice built-in implementation to get you started. It'd be nicer though, I'd argue, if the built-in one was open source and designed to be hackable.
πŸ‘ 2
s
Overall I don't think Pico-8 gives you much and its not necessarily a great environment for beginners, although I'd argue the simplicity of its API make it pretty good for beginners vs. Unity
it fills a similar niche as Processing (which I also love) in my mind, almost zero boiler plate and setup time, relatively small and simple API that you can keep the basics of in your head, but its not a fully featured game engine with a PBR renderer and a physics\collision system
so you need to have a base level of knowledge to get anything done
I think the community helps that a lot though
πŸ‘ 1
the only "future of coding" thing that I think we can learn from Pico-8 is the idea of designing constraints\aesthetics of the programming language\api\environment to encourage certain types of productivity
πŸ‘ 2
or creativity
j
The alternative Script-8 by Gabriel Florit is maybe a bit more futureful, with time-traveling and live coding πŸ™‚. Although, the live coding and time scrubbing demos by Bret Victor are now almost a decade old, too. https://script-8.github.io
πŸ‘ 1
For learning, it could be argued that community and sharing code is better than having a huge amount of opaque built-in features. I don’t think there is any universal β€˜right’ solution for this though.
πŸ‘ 2
t
+1 PICO-8 has one of the best communities I've seen anywhere. It's built-in "BBS" really helps encourage people to give constructive feedback.
πŸ‘ 2
I love PICO-8 for it's simplicity. To use the main developer's words, it's a "cozy feeling" to pop up a text editor and quickly jot out a visual demoscene-style doodle.
πŸ‘ 1