# quadplay is a fantasy console you can program in a browser tab

> quadplay is a fantasy console for making and playing retro style games, from Casual Effects. It ships as a web console with an integrated IDE, a set of full games whose source is included, and a long list of one file examples, and the same build runs on a laptop, a phone, a Steam Deck or a Raspberry Pi arcade cabinet you assemble yourself.

**morgan3d/quadplay** — The quadplay✜ fantasy console

- Repository: https://github.com/morgan3d/quadplay
- Website: https://morgan3d.github.io/quadplay/console/quadplay.html?IDE=1
- Stars: 969 · Forks: 47
- Language: JavaScript
- License: NOASSERTION
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/morgan3d-quadplay

## A fantasy machine, and the hardware you can put it in

quadplay is described as a fantasy console by Shmuel and Morgan at Casual Effects for creating and playing retro style video games on any device, and the phrase fantasy console is doing real work. It is not an emulator of a machine that existed, and it is not a general purpose engine with a large asset pipeline. It is a small, opinionated programming environment where a game is a single program, and the constraint is the point. The platform list in the documentation is where this becomes concrete, since the same build is presented for a laptop, a desktop, a phone, a Raspberry Pi arcade cabinet, a Steam Deck, a self built arcade machine, an X-arcade, a Nano arcade, a quad arcade, and two GPD Win handhelds. The readme puts it plainly, you can create and play games on any laptop, desktop, tablet or phone, or build your own programmable arcade machine from a Raspberry Pi or an old computer. The topics add the detail that the project is compared with PICO-8 and aimed at retro sprite work, with its own font and sound assets.

## The console and the IDE are the same web page

The delivery is unusually simple. You can play the games online straight from the project site, and you can open the web IDE by adding an IDE flag to the console URL. The link the readme gives for the IDE preview points at a specific built in game, which tells you the console is addressed by a URL scheme rather than by a file, with the game identifier as a parameter. The format the site uses for those links is worth noticing, since it is the shape of the addressing the console expects. The whole page is a static application, and the manual is published as a rendered Markdown document alongside it, which means the documentation, the IDE and the games are all served from the same place. For a hobbyist, the practical consequence is that you can open a link on a phone and be editing a game in a few seconds, with no install step at all.

## Full games with source, and examples that each teach one thing

The repository ships two different kinds of content, and the distinction is deliberate. The full games are complete, and the readme says they are included with source code, so you can read a finished game and then change it. The examples are the opposite, short programs that each demonstrate a specific quadplay feature or programming technique, and the list reads like a table of contents for the language, with entries for an rpg example, animation, physics, physics with arrows, a robot, a piano, dynamic acceleration, boids, camera shake, zoom, clouds, a dark drive sequence, dual stick input and an entity example, each of them opening in the IDE with autoplay enabled. The examples directory in the tree is longer still, with more than twenty named directories including cards, a colour wheel, a coordinate system, a countdown, dice, fluid, a font preview, a grid move, a GUI, hello world, hex, a high score table, input handling and islands. For anyone learning the console, the examples are the manual in executable form.

## Installing means a script on Windows and a zip elsewhere

The installation routes are linked from the top of the readme and they differ by platform. On Windows there is a command file, a `.cmd` that fetches and installs quadplay, which is the usual pattern for a project that wants a one click setup on a platform with no package manager conventions. On macOS and Linux the instruction is to download the repository archive as a zip, so the installation is the source tree. The repository also carries an `INSTALL.txt` at the root and a `tools/` directory, which is where the platform specific helpers live, and the arcade builds for the Raspberry Pi and the other cabinets are part of that same set. The documentation is careful to distinguish the browser console from the native builds, since the browser one needs nothing installed at all, while the Pi and handheld builds are a packaging exercise on top of the same runtime.

## The repository is a static site and a native binary side by side

The top level of the tree is unusual and worth reading as a description. There is an `index.html` and a `_config.yml` with a `.nojekyll` file, which is the shape of a GitHub Pages site, and a `console/` directory holding the web console and the IDE. Then there is `quadplay`, a native executable at the root, and `quadplay.vbs` next to it, which is the kind of file a Windows launcher uses, so the same repository serves the web page and the native builds. The rest is content, with `games/` for the full games, `examples/` for the teaching programs, `data/`, `doc/` for the manual and the screenshots, `fonts/`, `sprites/` and `sounds/` for the assets, and `scripts/` for the tooling. The release list is dated rather than numbered, with releases named 2025-08-29, 2025-08-12 and 2025-08-03, and the last push to the repository was on 2026-08-09.

## Two dependencies, fetched from GitHub, and a licence to check

The package manifest is small, which fits a project that mostly ships a binary and a page. It declares the name `quadplay`, a browser field, a funding entry for the author, and a keyword list that mixes the two halves of the project, the IDE, Python, JavaScript, a compiler, a fantasy console, retro, a game and graphics. The dependencies are two, and both are GitHub URLs rather than registry versions, a GIF library from jnordberg and a QR code library from davidshimjs. That is a supply chain detail worth knowing, because a version of a dependency is not pinned by a semver range here, so vendoring the project means vendoring those two repositories as well. The licence is the other detail. The manifest says `LGPL 3`, and the repository records a custom licence that GitHub could not classify, so before you redistribute a build, read the licence file rather than trusting the manifest.

## What a fantasy console is actually for

The interesting question about a project like this is not how good the games are, it is why a limited machine is a feature. A fantasy console gives you a fixed set of constraints, a resolution, a palette, a sprite size, a sound model and a frame budget, and the constraint is what makes a game authorable in an evening. The same reasoning explains the inclusion of the full games with their source, since reading a finished game in the language of the console is the fastest way to learn the language, and the arcade cabinets in the platform list, since a machine you built yourself is the reason a fantasy console is worth having. So the reasonable use of quadplay is a person who wants to make small games quickly and share them as links, or a teacher who wants a machine simple enough to explain in a class. It is not a production game engine, and the project does not pretend otherwise, which is why the licence question and the two pinned dependencies are the things to check before building on it.

## Conclusion

quadplay suits a developer who wants to write a small game in an afternoon and ship it as a single file, and it suits a teacher or a hobbyist who wants a game console that is one program rather than a stack of engine and toolchain. It is a poor fit if you want a general purpose game engine with a large asset pipeline, since the whole design is a deliberately small fantasy machine, and it is a poor fit if you need the commercial support a commercial engine would come with. Before you build on it, check three things: which platform you are targeting, since the arcade build for a Raspberry Pi is a different exercise from the browser build, what the licence actually permits, because the package metadata says LGPL 3 while the repository itself records a custom licence that GitHub could not classify, and that the two dependencies are fetched from GitHub rather than from a package registry, which changes how you vendor the project.

## FAQ

### What is quadplay?

A fantasy console by Shmuel and Morgan at Casual Effects for creating and playing retro style video games on any device. It is a deliberately small programming environment rather than a general purpose engine, with a web console, an integrated IDE, full games whose source is included, and short example programs that each demonstrate one feature.

### Where can I run quadplay?

On a laptop, a desktop, a tablet or a phone in the browser with nothing installed, and the documentation also shows builds for a Raspberry Pi arcade cabinet, an X-arcade, a Nano arcade, a Steam Deck and handheld PCs. The readme suggests building your own programmable arcade machine from a Raspberry Pi or an old computer as a use for the project.

### How do I install quadplay on Windows or on macOS and Linux?

On Windows there is a command file linked from the readme that installs it for you. On macOS and Linux the instruction is to download the repository archive as a zip, so the installation is the source tree, and an INSTALL.txt at the root and the tools directory hold the platform specific helpers.

### What do the quadplay examples teach?

Each short example demonstrates one feature or technique, with entries for an rpg, animation, physics, physics with arrows, a robot, a piano, dynamic acceleration, boids, camera shake, zoom, clouds, a dark drive sequence, dual stick input and an entity, and the examples directory holds more than twenty more, including cards, a colour wheel, fluid, a GUI, a high score table and input handling. Each opens in the web IDE with autoplay enabled.

### What dependencies does quadplay have?

Two, and both are fetched from GitHub URLs rather than from a package registry, a GIF library and a QR code library, so vendoring the project means vendoring those too. The package manifest declares the licence as LGPL 3, while the repository itself records a custom licence that GitHub could not classify, so read the licence file before redistributing a build. The releases are dated, with 2025-08-29 the most recent, and the last push was on 2026-08-09.

## Sources

- [Issues](https://github.com/morgan3d/quadplay/issues)
- [morgan3d/quadplay on GitHub](https://github.com/morgan3d/quadplay)
- [Project website](https://morgan3d.github.io/quadplay/console/quadplay.html?IDE=1)
- [README](https://github.com/morgan3d/quadplay/blob/main/README.md)
- [Releases](https://github.com/morgan3d/quadplay/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/morgan3d-quadplay
