Your first cart
Five minutes from zero to a running sprite. No install — the studio is a web page; carts compile and execute in your browser.
- Open the studio. Click Studio in the nav — you'll land on a working starter cart, not a blank page. Every fresh workspace (first visit, or New) seeds a small SC8 game-let: a ship and a star tile, a looping background pattern, an A-button blip, d-pad movement, and a printed title — already compiled, so Run works immediately, before you've touched Compile at all. Switch the Cart tab's machine picker to GameTank on that same untouched workspace and you get GameTank's version of the same starter — a 16×16 ship + 8×8 star on sheet 0, a synth-lead BGM pattern plus a sample-kind blip instrument, same controls. Or use the button below to load the sprites tutorial cart directly.
- Browse the tabs. The tab bar is
Cart | Code | Sprites | Sounds | Samples. Cart holds cart metadata plus the machine picker — pick SC8 or GameTank here; it changes what the other tabs look like (see The GameTank machine for the full capability comparison). Code is the Forth source editor — the starter's ~60 commented lines are a good first read. Sprites is an 8×8 tile editor on SC8, or a 256×256 sprite-sheet paint editor with PNG import/export on GameTank (walkthrough: Sprite sheets & blit). Sounds is the tracker (patterns + instruments) — the starter's BGM and blip patterns are already there to inspect. Samples only appears on GameTank carts — PCM sample import, a waveform editor with loop markers, and wiring samples into Sounds-tab instruments (walkthrough: Samples & sample instruments); SC8 carts see a placeholder there. - Edit and compile. Make a change in the Code tab and click Compile. Errors land in the console drawer at the bottom. New resets back to the starter — silently if you haven't changed anything yet, or behind a confirm-discard prompt once you have.
- Run. Hit Run — the preview panel runs your cart at 60 Hz. Stop silences audio and halts the loop.
Try it
( tut-sprites: draw sprite 0 at center, move with arrows )
variable x 64 x !
variable y 64 y !
: update
0 cls
2 btn if x @ 1 - x ! then ( left )
3 btn if x @ 1 + x ! then ( right )
0 btn if y @ 1 - y ! then ( up )
1 btn if y @ 1 + y ! then ( down )
0 x @ y @ 0 sprite ; ( tile=0 x y flags=0 )
Share your cart as a link
Don't want to sign in or publish yet? The studio toolbar's Share link button (enabled once you've compiled) gives you two flavors of link, no account needed. A Play link runs the cart on /play with the source code stripped out. A Remix link opens /studio with your source included, so whoever opens it can read and edit the Forth behind it.
The cart payload travels inside the link itself (with your source text included only in Remix links) — there's no upload, no server round-trip, and nothing to keep alive on our end. That also means link length tracks cart size: small carts paste anywhere (chat apps included), but a large cart's link can run long enough that some chat apps truncate or refuse it. The Share link modal badges each link by size so you know before you paste it; if a link is too long (or you just want a short, stable URL), publish the cart to the gallery instead.
Next: read the Forth reference to see the full word set, or jump to one of the tutorials.