Download

rcade-froguelike

Froguelike pico8 game for the rcade

  • game
Docs 363 wordsMarkdown 363
NameModifiedLinesSize
.github/ 29 lines<1% of this folder's lines 617 B<1% of this folder's bytes
public/ 0 lines0% of this folder's lines 0 B0% of this folder's bytes
src/ 42 lines<1% of this folder's lines 597 B<1% of this folder's bytes
.gitignore 24 lines<1% of this folder's lines 253 B<1% of this folder's bytes
README.md 138 lines<1% of this folder's lines 3.3 KiB<1% of this folder's bytes
cart.js 135.5K lines98% of this folder's lines 3.6 MiB97% of this folder's bytes
index.html 238 lines<1% of this folder's lines 6.7 KiB<1% of this folder's bytes
package-lock.json 2.5K lines2% of this folder's lines 95 KiB2% of this folder's bytes
package.json 18 lines<1% of this folder's lines 479 B<1% of this folder's bytes
rcade.manifest.json 18 lines<1% of this folder's lines 362 B<1% of this folder's bytes
vite.config.js 8 lines<1% of this folder's lines 147 B<1% of this folder's bytes

README.md

Pico8 Test

A test of pico8

About RCade

This game is built for RCade, a custom arcade cabinet at The Recurse Center. Learn more about the project at github.com/fcjr/RCade.

Getting Started

Install dependencies:

npm install

Start the development server:

npm run dev

This launches Vite on port 5173 and connects to the RCade cabinet emulator.

Building

npm run build

Output goes to dist/ and is ready for deployment.

Project Structure

├── public/           # Static assets (copied as-is)
├── src/
│   ├── main.js       # Game entry point
│   └── style.css     # Styles
├── index.html        # HTML entry
├── vite.config.js    # Vite configuration
└── package.json

Adding Assets

Imported assets (recommended) - Place in src/ and import them. Vite bundles these with hashed filenames for cache busting:

import spriteUrl from './sprite.png';
import jumpSound from './jump.mp3';

const img = new Image();
img.src = spriteUrl;

const sound = new Audio(jumpSound);
sound.play();

Static assets - Place in public/ for files copied as-is. Access via root path (/sprite.png).

Arcade Controls

This template uses @rcade/plugin-input-classic for arcade input:

import { PLAYER_1, SYSTEM } from '@rcade/plugin-input-classic'

// D-pad
if (PLAYER_1.DPAD.up) { /* ... */ }
if (PLAYER_1.DPAD.down) { /* ... */ }
if (PLAYER_1.DPAD.left) { /* ... */ }
if (PLAYER_1.DPAD.right) { /* ... */ }

// Buttons
if (PLAYER_1.A) { /* ... */ }
if (PLAYER_1.B) { /* ... */ }

// System
if (SYSTEM.ONE_PLAYER) { /* Start game */ }

Development Keyboard Controls

When developing locally, keyboard inputs are mapped to arcade controls:

Classic Controls (@rcade/plugin-input-classic)

Player Action Key
Player 1 UP W
Player 1 DOWN S
Player 1 LEFT A
Player 1 RIGHT D
Player 1 A Button F
Player 1 B Button G
Player 2 UP I
Player 2 DOWN K
Player 2 LEFT J
Player 2 RIGHT L
Player 2 A Button ;
Player 2 B Button '
System One Player Start 1
System Two Player Start 2

Spinner Controls (@rcade/plugin-input-spinners)

Player Action Key
Player 1 Spinner Left C
Player 1 Spinner Right V
Player 2 Spinner Left .
Player 2 Spinner Right /

Spinners repeat at ~60Hz while held.

To add spinner support: npm install @rcade/plugin-input-spinners

Deployment

First, create a new repository on GitHub:

  1. Go to github.com/new
  2. Create a new repository (can be public or private)
  3. Don't initialize it with a README, .gitignore, or license

Then connect your local project and push:

git remote add origin git@github.com:YOUR_USERNAME/YOUR_REPO.git
git push -u origin main

The included GitHub Actions workflow will automatically deploy to RCade.


Made with <3 at The Recurse Center