Awesome
quadplay✜ is a fantasy console by CasualEffects for creating and playing retro-style video games on any device.
Platforms
Create and play games on any laptop, desktop, tablet, or phone. Or, build your own programmable arcade machine from a Raspberry Pi, Tegra, or old computer. Here are some of the many supported quadplay platforms:
<img src="doc/laptop.jpg" height=180> <img src="doc/desktop.jpg" height=180> <img src="doc/phone.jpg" height=180> <img src="doc/rpi-arcade.jpg" height=180> <img src="doc/steamdeck.jpg" height=180> <img src="doc/arcade.jpg" height=180> <img src="doc/xarcade-arcade.jpg" height=180> <img src="doc/nano-arcade.jpg" height=180> <img src="doc/quad-arcade.jpg" height=180> <img src="doc/gpd-win3.jpg" height=180> <img src="doc/gpd-win.jpg" height=180>
Games
Full
These full games are included, with source code. Click to play:
<img src="games/across_the_lake/label128.png"> <img src="games/duality/label128.png"> <img src="games/minimecha/label128.png"> <img src="games/icetime/label128.png"> <img src="games/beat_the_gobblins/label128.png"> <img src="games/rescue_roguelike/label128.png"> <img src="games/friendly_fishing/label128.png"> <img src="games/quadpaddle/label128.png"> <img src="games/doublesdepon/label128.png"> <img src="games/rps/label128.png"> <img src="games/serpitron/label128.png"> <img src="games/hexflipper/label128.png"> <img src="games/but_skunks/label128.png"> <img src="games/beyond_control/label128.png"> <img src="games/gravity/label128.png"> <img src="games/firmament/label128.png"> <img src="games/drop_bloq/label128.png">
Examples
These short example programs demonstrate specific quadplay features and programming techniques.
<img src="examples/rpg/label128.png"> <img src="examples/animation/label128.png"> <img src="examples/physics/label128.png"> <img src="examples/physics_arrow/label128.png"> <img src="examples/robot/label128.png"> <img src="examples/piano/label128.png"> <img src="examples/dynamic_accel/label128.png"> <img src="examples/boids/label128.png"> <img src="examples/camera_shake/label128.png"> <img src="examples/zoom/label128.png"> <img src="examples/clouds/label128.png"> <img src="examples/dark_drive/label128.png"> <img src="examples/dual-stick/label128.png"> <img src="examples/entity/label128.png"> <img src="examples/fluid/label128.png"> <img src="examples/fontpreview/label128.png"> <img src="examples/gridmove/label128.png"> <img src="examples/helloworld/label128.png"> <img src="examples/highscore/label128.png"> <img src="examples/input/label128.png"> <img src="examples/kart/label128.png"> <img src="examples/lift_team/label128.png"> <img src="examples/perceptual_color/label128.png"> <img src="examples/planetgen/label128.png"> <img src="examples/roguelike/label128.png"> <img src="examples/sequence_demo/label128.png"> <img src="examples/speedstreet/label128.png"> <img src="examples/spritestack/label128.png"> <img src="examples/sproing/label128.png"> <img src="examples/starter/label128.png"> <img src="examples/text/label128.png"> <img src="examples/touch/label128.png"> <img src="examples/countdown/label128.png"> <img src="examples/track_mouse/label128.png"> <img src="examples/twin_analog/label128.png"> <img src="examples/vaporwave/label128.png"> <img src="examples/vehicles/label128.png"> <img src="examples/warlock3D/label128.png"> <img src="examples/word_game/label128.png"> <img src="examples/zcar/label128.png"> <img src="examples/zoom/label128.png"> <img src="examples/change_res/label128.png"> <img src="examples/cards/label128.png"> <img src="examples/dice/label128.png"> <img src="examples/zoom2D/label128.png"> <img src="examples/private_view/label128.png"> <img src="examples/textspheres/label128.png"> <img src="examples/midi_starrypad/label128.png"> <img src="examples/midi_fcb1010/label128.png"> <img src="examples/midi_launchpad/label128.png"> <img src="examples/islands/label128.png"> <img src="examples/maze/label128.png"> <img src="examples/platformer/label128.png"> <img src="examples/multitouch/label128.png"> <img src="examples/midi_8x8/label128.png"> <img src="examples/hex/label128.png"> <img src="examples/anim_entity_example/label128.png"> <img src="examples/bezier_eye_creature/label128.png"> <img src="examples/color_wheel/label128.png">
Features
- Create games on Windows, macOS, Linux
- Play your games in any modern web browser on a laptop, desktop, tablet, phone, Raspberry Pi 4, or Jetson Nano
- 60 fps @ 384 x 224 pixels = 12:7 aspect ≈ 16:9.3
- 4096 sRGB (4:4:4) colors
- Four players with virtual controls for D-pad and eight buttons
- Local and safe online multiplayer
- Supports Xbox, Playstation, SNES, Stadia, Switch, 8bitdo, touch screen, and other controllers
- Hundreds of built-in sprites, sounds, and fonts
- Program in PyxlScript, a friendly Python-like language
- Order-independent, 4-bit alpha transparency
- Native 2.5D graphics with z-order
- 9.4 MB of total sprite memory
- Up to 64 sprite and font sheets of up to 1024x1024
- Optional 640 x 360, 384 x 224, 320 x 180, 192 x 112, 128 x 128, and 64 x 64 screen modes
- Free and open source
Join the Quadplay Revolution
You can use an external editor (like VSCode) or simply work entirely within the provided the browser-based development environment.
To get started, you'll need Windows, macOS, Linux, or Raspberry Pi OS and the following freely-available software.
Required:
- On some Distributions you might need to install
tkinter
, e.g. on Fedorasudo dnf install -y python3-tkinter
- This SDK, which includes the IDE and assets
- Python 3.10
- A modern web browser such as Chrome, Edge, Brave, Safari, or Firefox
Optional:
- The manual
- A code editor such as VS Code, Emacs, or VIM. Use Python mode or install our provided PyxlScript editor extensions
- A TMX map editor such as Tiled or TileKit
- A sprite and font pixel editor such as Piskel or GrafX2
- A SFX generator and audio editor such as Audacity
- An account on the forums
- Follow development online at @CasualEffects
See the manual for a getting started guide, the change log, road map, and notes.
License
The quadplay✜ runtime, compiler, and emulator are licensed as LGPL3.
You can create closed-source games with it and distribute your games however you want, including commercially.
If you modify the runtime library, compiler, or emulator, then you must redistribute those changes under the LGPL3.
Portions of the IDE are under different, less-restrictive open source licenses (BSD, MIT, and public domain).
Quadplay automatically adds asset and library licenses to your game's credits screen. You don't have to do any work to satisfy attribution clauses from open source or Creative Commons licenses.
All sounds, sprites, and games distributed with quadplay✜ are Creative Commons licensed. The copyright and license on each of those is in a JSON file next to the asset.
© 2020-2024 Morgan McGuire