9 ms·
SCRIPT-8: An 8 Bit Fantasy Computer Programmed with Javascript
- strainer 8y agoThis is exceptional - an online IDE with tutorials, sprite and tune editor, interesting code examples and little games to hack on, even an upload to share feature. It only looks a bit ~dusty due to the sepia pallet, should be good to have other choices like a neon hue, and even free custom selection. But hats off here, this is a great resource !
- nategri 8y agoI love absolutely everything about this except the language choice.
- Waterluvian 8y agoWhat's an alternative that doesn't make massive sacrifices to the feature set?
- deleted 8y ago[deleted]
- sloum 8y agoI think Lua is a wodnerful langauge, highly embedable, great feature set/style, quite fast, really lightweight. Pico-8 had it right in everything but the license.
- guiambros 8y ago+1. I wish they used Lua instead of Javascript -- maybe using Lua.vm.js[1], although the VM in a VM thing may be a challenge to integrate with the rest of IDE, sprite editor, etc. [1] https://daurnimator.github.io/lua.vm.js/lua.vm.js.html https://daurnimator.github.io/lua.vm.js/lua.vm.js.html
- jungler 8y agoEverything compiles to JS these days, so it is an easy lowest common denominator. Lua is a semantically cleaner alternative but it has relatively less mindshare and hence less third-party support.
- krapp 8y ago>Everything compiles to JS these days, so it is an easy lowest common denominator. That's not even remotely true. JS is only a common denominator for running code in a browser, but the lowest common denominator is still C/C++ and Java, even with native applications vs. Electron.
- maccio92 8y agoShh don't burst the web dev's bubble
- mhd 8y agoI think it would be interesting to have some kind of linter/formatter built in the editor that restricts JS to its basic imperative subset.
- dmitrygr 8y ago"8-bit" You keep using that word. I do not think it means what you think it means. Javascript has no 8-bit types, nor does it have memory limits that 8-bit machines had. Pixelated graphics are cool and all, but it does not place you in the same league with people who made games fit in 128 bytes of ram and 2K of ROM, sorry!
- kittiepryde 8y agoOther than the phrase 8-bit fantasy, I couldn't find the phrase 8-bit anywhere on the linked page.
- pedrogpimenta 8y agoYou shouldn't take everything so serious, dude. Relax. Enjoy. It's fun.
- edmundhuber 8y agoFor those wondering, the biggest differentiator of this from PICO-8 is that this is open-source and PICO-8 is not.
- sloum 8y agoNot to mention JS vs Lua (an unfortunate direction in my view). That said, open source is good. There are a few other open source versions. TIC-80 is another open source option. LIKO-12 as well.
- Impossible 8y agoNo it's not. TIC-80 is open source and there are other open source fantasy consoles. The killer feature here is the Bret Victor inspired live coding support.
- jungler 8y agoMy main minus to this is not that it's JS(I'm building a JS fantasy computer too) but that it's a node/react piece, which inspires zero confidence that it will have anything resembling foundational stability in the future.
- krapp 8y agoIt's nice but why does it seem to have lower resolution and fewer colors than actual 8 bit computers?
- gabrielflorit 8y agoHello everybody, author here. I hope you enjoy my tiny project. Regarding language, I chose Javascript for three reasons: - the (ab)use of `eval` lets you do all sorts of sorcery, like instant evaluation - the JS Redux library makes it easy to work with state, and I couldn't have implemented SCRIPT-8's time-traveling debugger without it - I dream in Javascript I love Lua's small footprint, and very early on I considered writing SCRIPT-8 in MoonScript, which compiles to Lua and has gorgeous syntax. Maybe some day. And yes, my fantasy computer is definitely not the only open source project, there's several out there, and probably all of them are more stable than mine. Go check them out.
- brianobush 8y agoThanks to the pointer to Bret Victor's video on Inventing on Principle. Nice to see you brought some of his concepts into SCRIPT-8.
- danielvf 8y agoThis is amazing! I'll be letting my kids play with it tomorrow! And JS is a great choice.
- rendaw 8y agoDo cassettes have a size limit? AFAIK all (most?) the other fantasy consoles do but I didn't see anything on your page. A lot of the cool features others mentioned seem like they would be overkill on a small codebase.
- gabrielflorit 8y agoThey don't now, but that is coming. The "SHOW CASSETTE SIZE" button under the live-preview screen shows you the current size / compressed size. But it doesn't prevent you from making a huge cassette - not yet.
- curioussavage 8y agoGlad to find another moonscript fan!
- 8y ago
- aquova 8y agoI'm an avid Pico-8/fantasy computer fan, and this is a really nice project. There have been quite a number of fantasy consoles coming out within the past few years, so it's nice to see one that offers features that the others don't, rather than simply "Pico-8, but with a twist". The live coding window and sliders in particular are simple things that increase QoL. Others have noted that the use of JS is somewhat of a turn off, but even as a big Lua fan myself, it doesn't really bother me, I already have one (probably more than one) Lua fantasy console that covers my wishes. However, the author's comment here did mention adding MoonScript support, which would be something I would be very interested in.
- azhenley 8y agoThe time-traveling and live editing features make this incredible. When I get the time I’d love to replicate this in Go (since I’m trying to learn Go at the moment). Nice work!
- threatofrain 8y agoIs there a sample game to view?
- gabrielflorit 8y agoThere are game-like demos: - https://script-8.github.io/?id=07b50badd10dc9be002ecb9f9031f3f0 https://script-8.github.io/?id=07b50badd10dc9be002ecb9f9031f... - https://script-8.github.io/?id=cd8d6811adb3afb472aaf7505729cf01 https://script-8.github.io/?id=cd8d6811adb3afb472aaf7505729c... - https://script-8.github.io/?id=7f370bc716aff805f593a3f80008711f https://script-8.github.io/?id=7f370bc716aff805f593a3f800087...
- triptych 8y agoI'm super jazzed about this. Wonder if there's anything gained by compiling to web assembly? Thanks for making this.
- pokstad 8y agoI’m sorry, did you say jazzed?
- vanderZwan 8y agoThe typical performance requirements of these fantasy consoles are well below the need for WASM. Having said this, since this one is JS-based there shouldn't be anything stopping your from compiling your own WASM module in the code
- lucio 8y agoCongrats, excellent work, I'll be exploring...
- n1vz3r 8y agoNice project! It would be great to have on-screen gamepad on mobile!
- gabrielflorit 8y agoThere's an issue for this: https://github.com/script-8/script-8.github.io/issues/41 https://github.com/script-8/script-8.github.io/issues/41
- ddrdrck_ 8y agoThis looks incredible ! Real time editing, time travel ... and integrated sprite, map, and music editors are a real plus. Only thing is the default color palette that is great but I wonder if we can change it ? For people complaining about JS vs Lua : go have a look at Amulet. This is not a fantasy console but also has an online editor and is perfectly suited for retro games. Just have a look at "Defender of the Weeping Quasar" in the example section : http://www.amulet.xyz/editor.html http://www.amulet.xyz/editor.html
- gabrielflorit 8y agoThank you for the kind words. I have no immediate plans for changing the palette, but you should open an issue here https://github.com/script-8/script-8.github.io https://github.com/script-8/script-8.github.io.
- akx 8y agoI find kind of disingenuous that the page does not mention PICO-8 at all, which is the obvious inspiration for this project, starting from the name. Many people who are in the scene, as it were, do know PICO-8 and know to draw the parallels, but it'd still be nice to link back to https://www.lexaloffle.com/pico-8.php https://www.lexaloffle.com/pico-8.php somewhere...
- gabrielflorit 8y agoThat's a fair point. SCRIPT-8 is inspired by many projects, and PICO-8 is definitely one of them. I'll make sure to add a note.
- magoghm 8y agoInteresting how different people arrive at similar ideas. Many years ago I created a retro-like "virtual computer" in Java, called simpleJ, to let teenagers learn how to program by creating simple arcade games. It also had an IDE like environment, with a step by step debugger that could draw a diagram of run time data-structures (arrays, linked lists, trees, etc.), a tile editor, a sprite editor, and a even a book teaching you how to program a video game. You can take a look at it at http://simplej.com/ http://simplej.com/ (in Spanish).
- Midnightas 8y agoUnlike most, I don't see a problem with it being Lua or JavaScript. I'm just curious why people pick such high-level languages in the first place. I'm planning to make a fantasy computer myself (basing it off the z80), and would never think to make it scriptable in something other than machine code.
- pjmlp 8y agoBecause we had BASIC on 8 bit home micros and those languages are the natural successors.
- ken 8y agoBut BASIC on those computers was interpreted, and thus far too slow. Even the C compilers weren't that great. Every real game, AFAIK, was written in 6502 assembly.
- pjmlp 8y agoTrue, yet it made lots of kids happy to try out programming their own games and now they work across the industry, including myself. Not everything is about the ultimate performance.
- Midnightas 8y agoThe point is that it's not "javascript interpreted in machine code", which in my opinion would make these computers far more fun, otherwise they're just fancy game frameworks.
- nineteen999 8y ago> I'm planning to make a fantasy computer myself (basing it off the z80) This is so much fun, I did this last year, although initially it only ran inside Unreal Engine. Later on I did a "native" port to Linux. It can run CP/M 2.x and Wordstar (https://i.imgur.com/rIY1he8.png https://i.imgur.com/rIY1he8.png), it had a telnet+VT100+zmodem client for accessing BBS's (https://i.imgur.com/VszSPkB.png https://i.imgur.com/VszSPkB.png), and I even added a graphics mode later on (https://i.imgur.com/t3kreQM.png https://i.imgur.com/t3kreQM.png). I'm working on a 68000 based one now as well. It's a really great learning experience.