8 ms·
The closest thing I've found to this is Pico-8: not a computer, a piece of software, but it's very cool. It has a simple text editor for writing Lua code, a sim
by potta_coffee 8y ago
The closest thing I've found to this is Pico-8: not a computer, a piece of software, but it's very cool. It has a simple text editor for writing Lua code, a simple sprite editor, and a simple sound editor, all for creating games. It's a nice little sandbox for playing with code and creating things.
https://www.lexaloffle.com/pico-8.php https://www.lexaloffle.com/pico-8.php
- nicolashahn 8y agoI upvoted this but I need to reiterate my support. When I was a kid, I was heavily into video games and had a burning desire to create my own. However, the options for doing so were not great. One of my middle school teachers tried to introduce us to programming via creating Space Invaders in perl, which went as well as you might imagine. There were a few GUI game making applications that were all terrible and extremely limited. I eventually managed to make a game using Flash, but all the overhead of arcane Actionscript APIs was overwhelming and discouraging. I stopped programming and for several years thought I was going to go into media, creating films and animation. I eventually picked up programming again in college, but there were many years of programming experience I could have had if I had stuck with game dev. I'm convinced that if PICO-8 existed when I was originally interested in making games, I never would have stopped programming. PICO-8 is the perfect balance of easy-to-learn and powerful. Lua is a good first language because it's so small, and encourages you to build your own solutions rather than rely on magical libraries. For example, I never knew how a list-shuffling algorithm (Fisher-Yates) worked until I needed to write my own because Lua and PICO-8 don't provide one. The limited sprite and sound options encourage you to spend time not on the assets but on the gameplay (the code). It's quick to get things on screen and working because the PICO-8 API is simple, logical, and not arcane (cough Actionscript cough). Basically, it introduces programming in an instant-gratification way that's able to grab and hold a child's attention, while still being powerful enough to produce games that aren't hamstrung by toy programming languages.
- jchw 8y agoAnd the great thing about today is, there's a metric ton of free software you can move on to. Like, I would've killed for Godot when I was a teenager.
- codebolt 8y agoYou think you had it rough, at 15 I taught myself C/C++ Win32 programming with COM and early DirectX versions from textbooks and online tutorials. I'm thankful now though, as most modern frameworks are a breeze to learn by comparison. Looking back it was a bit like learning to swim by jumping in the deep end of the pool. It certainly gave me the confidence that I can figure stuff out, even in a new domain. And it's given me some valuable lessons in what makes a good vs bad API design.
- andrepd 8y agoMine was Pascal in Turbo Pascal (6?) for DOS, circa 2004. It speaks volumes to the outstanding quality of Turbo Pascal and the Pascal language that it still holds up, more than 20 years later.
- matt_the_bass 8y agoI feel old. Mine was commador64 basic in 1988
- dwd 8y agoDon't feel old. My first Basic experience was on a VIC-20, and I later got my own C64 in 85. Great computer to learn on but I don't think I would have got far without the Programmers Reference Guide.
- wiz21c 8y agoI started with AppleSoft basic around 10 years old. It was fairly simple to achieve "stuff". But if your dream was videogames (and when you're 10 years old, well, you see :-)), then you ended up in front of the assembler/machine code wall. And there your dreams vanished (or you were crazy enough to learn by yourself and books). So I think Pico8 or Scratch are cool in the sense that they give you an environment to start programming. But OTOH, if what you look after is AAA games, then you'll soon be confronted to a brand new wall, ie : DirectX, GPU, C++ whatever. Now I rememeber of Processing which is cool too.
- miesman 8y ago
- romwell 8y agoThis sounds really good! Also of note: it was made by the creator of Voxatron (the only game I know of that really explored voxels), and is available as a $5 add-on to that. Wikipedia page told me of a pocket computer preloaded with PICO-8: Pocket CHIP[1]. It seems to be exactly what the OP was asking for. Alas, the Kickstarted company went belly up, failing to deliver all the preorders. [1]https://en.wikipedia.org/wiki/CHIP_(computer)#Pocket_CHIP_and_Pockulus https://en.wikipedia.org/wiki/CHIP_(computer)#Pocket_CHIP_an...
- armadsen 8y agoI have a Pocket CHIP. It’s really cool. Comes preloaded with PICO-8, some other software (a synth, etc.), and a dead simple graphical launcher. But under the hood it’s running full on Linux. I got the Swift compiler installed and running on mine, for example. Really too bad that the company went under.
- romwell 8y agoIt's a pity indeed! I'm going to snatch one on eBay before this thread really picks up.
- joeberon 8y agoI love pico 8, but I think that Lua is probably the worst language for coding in an editor that can fit so few characters on the screen, and it feels like using an external editor defeats the point. Granted, I haven't used the software in a couple of years, has it improved on the editor front?
- veli_joza 8y agoI'm surprised you feel that way. Lua seems like a perfect choice for pico-8. Its syntax is friendly and concise, and it's maybe simplest language to embed, with tiny footprint. Almost all other languages I know of would be a worse choice. Scratch would be nice, but graphical editor is harder to integrate. What's more suitable language in your opinion?
- joeberon 8y agoWell it's only because of the issue with the built-in editor, since lua isn't really that concise in terms of character count imo. Also the official tutorial is a published book which I find a little distasteful although understandable. You are right though I can't really think of a better language to use
- WillPostForFood 8y agoYou can attach an external editor if you want, though I think it is not needed for learning. There is more value in the tight integration than the conveniences of a great text editor. I've used this Sublime Text Package which works well: https://packagecontrol.io/packages/PICO-8 https://packagecontrol.io/packages/PICO-8
- astrodust 8y agoThe great thing about Lua is the language itself is so small, and not just from an implementation perspective. The spec and documentation are also small because there's not much to learn. You can explain it in an afternoon. Try that with C++ or JavaScript.
- makmanalp 8y agoI think Pico-8 would be perfect if: a) The code editing story was a bit nicer (better resolution / builtin support for external editing and reloading etc) b) If there was some kid-specific introductory game programming content for it (even "type all this in and play around with it after" worked for me as a kid)
- sdegutis 8y agoIt has both of those. Most of the tutorial is in the pico8.txt file though.
- WillPostForFood 8y agoYou should check out the Pico-8 fanzine. It is super cute, has coding tutorials and game building walkthroughs. I think there are now 8 issues. https://sectordub.itch.io/pico-8-fanzine-1 https://sectordub.itch.io/pico-8-fanzine-1
- jpfed 8y agoPico-8 was my son's very first introduction to programming. He does much more with the integrated sprite editor and sfx/music editors than he does with actual coding. I would like to get him interested in TIC-80 as a replacement. Key weaknesses of Pico-8 for kids learning to program: 1. The editor runs at the same resolution that the games do. Maybe this is because they didn't want to make their VM flexible enough to deal with multiple resolutions, or they just wanted to make the illusion that the Pico-8 is its own machine very consistent, but the end result is still a painful code editing experience. When I make example programs for my kids, I need to compromise between descriptive variable names and indenting code blocks. 2. Deviations from the standard lua API/libraries mean that normal learning resources like PIL have to be interpreted with an asterisk. 3. This is a minor thing, but the fixed palette is annoying. In graphical terms, Pico-8 lies roughly between the Atari 2600, 7800, and NES, but all of those systems handled colors more flexibly. 4. Splore allows children to find games that are not appropriate for their age. It's just not designed for kids and parents. My son found a game featuring smoking and thought it looked SO COOL (this was easy to disabuse him of). He also found a game that puts you in the role of a cyberbully, and the subtle psychological effects of that sort of "edgy" game aren't as easily undone with a single conversation. It is possible to mitigate this by putting whitelisted carts into the bbs carts folder and then making that folder read-only. TIC-80 improves on the first three points. The editor is still running at the same resolution as the games, but uses a higher resolution (and the editor can optionally use a thinner font). The lua implementation is much more standard. And the palette can be changed (even per-scanline, I think). The music editor lets you draw your own waveforms, but in other respects is less intuitive than Pico-8's. (I haven't looked at TIC-80's cart browser so I can't comment on it.)
- Impossible 8y agoAll of these are explicit design choices, for example a fixed palette is important to give games a "Pico-8" look and also reduce decisions regarding color choice. I suggest you watch Joseph White's practice talk (https://www.youtube.com/watch?v=87jfTIWosBw https://www.youtube.com/watch?v=87jfTIWosBw) if you're curious about design decisions that guided Pico-8. Multiple resolutions would absolutely break the "Fantasy console" feel of Pico-8, even though I understand why programmers universally hate that. To be fair a lot of people do code editing outside of the Pico-8 editor. #4 is an interesting point. The trick here is that different parents have different ideas of what is and isn't appropriate, and of course different kids will have different responses. It seems like the answer is to maybe have a version of Pico-8 that removes splore and expands the demo carts with some universally safe, popular titles. TIC-80 is cool btw and might be a better learning environment for kids. I don't like it (or any of the other fantasy console\pico-8 clones) quite as much as Pico-8 because they remove constraints, making them feel more like generic game editors and less like imaginary retro computers.
- greenspot 8y agoCeleste, one recent major indie game, was started and initially developed on Pico-8. If are into games, check out Celeste. Just the music is reason to play this game (I played it on PS4 but all versions are equal).
- tmountain 8y ago+1 for Pico-8. It really takes you down the rabbit's hole in a way that stimulates learning all the core concepts in creating a basic game. "Cool, I have a sprite on the screen. Now, how do I make it move?". "What about gravity?". "What about collision detection?" (I've done at least 5 collision detection "engines" so far...). Games can be compiled to HTML5, ando/or distributed as PNG files with all source code and assets included. There's also a builtin community game browser with ratings, etc. Some bigger name games were prototyped in Pico-8 (i.e., Celeste), and it has a lot of love in the indie community.
- gwicks56 8y agoI can't find any info on recommended ages for Pico-8? What age range do you think it works for?
- emmanueloga_ 8y agoThere are a bunch of these "fantasy consoles" now. From a quick search: * Pico-8: https://www.lexaloffle.com/pico-8.php https://www.lexaloffle.com/pico-8.php * Liko-12: https://liko-12.github.io/ https://liko-12.github.io/ * Tic-80: https://tic.computer/ https://tic.computer/ * Pixel Vision 8: https://www.pixelvision8.com/ https://www.pixelvision8.com/ I have no idea how they compare to each other.
- emmanueloga_ 8y agoOh damn, such a rabbit hole :-p. Also found this list [1]. A couple on the list run BASIC! E.g. [2]. I just learned there's this thing "Windows 10 IoT", [3] a Win10 version for low power devices like the raspberri pi. Would be interesting to try to run B8 in there! 1: https://github.com/paladin-t/fantasy https://github.com/paladin-t/fantasy 2: https://store.steampowered.com/app/767240/BASIC8/ https://store.steampowered.com/app/767240/BASIC8/ 3: https://developer.microsoft.com/en-us/windows/iot/Downloads https://developer.microsoft.com/en-us/windows/iot/Downloads
- jedieaston 8y agoWindows 10 IoT can't run Win32 applications, so Steam and BASIC8 won't work without major re-tuning.
- emmanueloga_ 8y agoGot it. Next best thing I could find: a mini PC. E.g. you can get one of these gigabyte ones for about $100, but I think comes w/o an HDD. 1: https://www.gigabyte.com/Mini-PcBarebone/GB-BXBT-2807-rev-10#ov https://www.gigabyte.com/Mini-PcBarebone/GB-BXBT-2807-rev-10...
- jpfed 8y agoTic-80 is slightly higher resolution than Pico-8, with a user-definable palette and a more standard lua implementation. The music editor is slightly less intuitive, though. Pixel Vision 8 is more flexible and complex than the other alternatives. One KEY difference between it and the others is that you can define your own editor tools... but the way this is done means that you must save your work every time you switch from tool A to tool B, or your work in tool A will be lost! It also is built with a focus on interoperability with external tools; it isn't as focused as the others on being a cozy self-contained environment.
- tlrobinson 8y agoNext Thing used to sell a "PICO-8 Console Kit" using their "Chip" single-board computer: http://blog.nextthing.co/pico-8-now-free-for-all-c-h-i-p-s/ http://blog.nextthing.co/pico-8-now-free-for-all-c-h-i-p-s/ Sadly they went out of business. It would be easy to build something similar with a Raspberry Pi though.
- austinl 8y agoI started to program in Lua with the LÖVE game engine in early high school, and can say it's one of the main reasons I was motivated to study CS in college. It's a simple, 2D, open-source game engine that runs on all platforms — I'd recommend this and other sandbox-style environments to anyone getting into programming. https://love2d.org/ https://love2d.org/
- int_19h 8y agoThere actually was a computer that ran PICO-8 out of the box, too: https://www.theverge.com/circuitbreaker/2016/7/19/12227806/pocketchip-review-portable-linux-computer https://www.theverge.com/circuitbreaker/2016/7/19/12227806/p... Unfortunately, the company has shut down, and these aren't made anymore. But it looks like they can still be found on eBay: https://www.ebay.com/itm/Pocket-C-H-I-P-sealed-portable-handheld-computer-from-Next-Thing-Co/202441401896 https://www.ebay.com/itm/Pocket-C-H-I-P-sealed-portable-hand...
- wodenokoto 8y agoThe first version of Celeste was done in Pico-8 at a games hackathon, and the success caused the author to develop an expanded version, which in my opinion is one of the greatest platformers ever. The pico-8 version exists as a game within the game and is great fun as well! Website: http://www.celestegame.com/ http://www.celestegame.com/ GDC talk about development of Celeste: https://youtu.be/4RlpMhBKNr0 https://youtu.be/4RlpMhBKNr0