Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,8 @@
{
"name": "arcade-canvas",
"source": "plugins/arcade-canvas",
"description": "Play five retro Phaser mini-games in a Copilot canvas while agents work.",
"version": "1.0.2"
"description": "Play six retro Phaser mini-games in a Copilot canvas while agents work.",
"version": "1.1.0"
},
{
"name": "arch",
Expand Down
2 changes: 1 addition & 1 deletion docs/README.plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t
| [acreadiness-cockpit](../plugins/acreadiness-cockpit/README.md) | Drive Microsoft AgentRC from Copilot chat: assess AI readiness, generate Copilot instructions (flat or nested with applyTo globs for monorepos), and manage policies. Produces a self-contained static HTML dashboard at reports/index.html. | 4 items | agentrc, ai-readiness, copilot-instructions, readiness-report, monorepo, policy, dashboard |
| [ai-team-orchestration](../plugins/ai-team-orchestration/README.md) | Run a lightweight, role-separated AI development team with flexible tools, developer-selected models, proportionate planning, and optional QA. | 4 items | ai-team, multi-agent, sprint-planning, brainstorm, project-management, orchestration, developer-workflow |
| [apng-studio](../plugins/apng-studio/README.md) | Interactive GitHub Copilot app canvas extension for building Animated PNG (APNG) files from frames. Draw or upload frames, tune per-frame timing and compositing, preview live, send the result to your phone by QR, and export an animated .png. | 1 items | animated-png, apng, copilot-canvas, frame-animation, image-export, interactive-canvas |
| [arcade-canvas](../plugins/arcade-canvas/README.md) | Play five retro Phaser mini-games in a Copilot canvas while agents work. | 1 items | arcade-games, copilot-canvas, interactive-canvas, phaser, retro-games, session-breaks |
| [arcade-canvas](../plugins/arcade-canvas/README.md) | Play six retro Phaser mini-games in a Copilot canvas while agents work. | 1 items | arcade-games, copilot-canvas, interactive-canvas, phaser, retro-games, session-breaks |
| [arch](../plugins/arch/README.md) | Architecture and modernization toolkit: produce a cited architecture document for a locally-cloned repo, and generate a phased modernization plan that auto-runs Documentation mode when needed. | 1 items | architecture, modernization, documentation, migration, onboarding |
| [arize-ax](../plugins/arize-ax/README.md) | Arize AX platform skills for LLM observability, evaluation, and optimization. Includes trace export, instrumentation, datasets, experiments, evaluators, AI provider integrations, annotations, prompt optimization, and deep linking to the Arize UI. | 9 items | arize, llm, observability, tracing, evaluation, instrumentation, datasets, experiments, prompt-optimization |
| [automate-this](../plugins/automate-this/README.md) | Record your screen doing a manual process, drop the video on your Desktop, and let Copilot CLI analyze it frame-by-frame to build working automation scripts. Supports narrated recordings with audio transcription. | 1 items | automation, screen-recording, workflow, video-analysis, process-automation, scripting, productivity, copilot-cli |
Expand Down
33 changes: 16 additions & 17 deletions extensions/arcade-canvas/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Agent Arcade Canvas

A GitHub Copilot canvas that opens a retro arcade in the side panel. It serves the built Agent Arcade Phaser frontend and lets either the user or the agent switch between five mini-games.
A GitHub Copilot canvas that opens a retro arcade in the side panel. It serves the built Agent Arcade Phaser frontend and lets either the user or the agent switch between six mini-games.

## Games

Expand All @@ -9,36 +9,24 @@ A GitHub Copilot canvas that opens a retro arcade in the side panel. It serves t
- **Galaxy Blaster** β€” Galaga-style space shooter with formation enemies, attack patterns, and dual-shot power-up.
- **Ninja Runner** β€” Classic platformer with double jumps, power-ups, warp pipes, and enemies.
- **Planet Guardian** β€” Defender-style side-scrolling shooter with humanoid rescues and six enemy types.
- **Surface Defense** β€” Missile-defense strategy with six cities, three batteries, chain reactions, smart warheads, bombers, and hostile satellites.

## Files

- `extension.mjs` β€” canvas declaration, loopback game server, static asset handling, and agent actions.
- `game/` β€” compiled Phaser game frontend served inside the canvas.
- `assets/` β€” game sprites, sounds, app icon, and `preview.png` for the extensions gallery.
- `package.json` β€” declares the Copilot SDK dependency and ESM entry point.
- `copilot-extension.json` β€” Copilot extension name/version metadata.
- `canvas.json` β€” Awesome Copilot gallery metadata.

## Prerequisites

- **Node.js 20.19 or newer** because the Copilot SDK requires `node ^20.19.0 || >=22.12.0`.
- The GitHub Copilot app canvas / UI-extensions experiment enabled.

## Install

Drop this folder at `~/.copilot/extensions/arcade-canvas/` for user scope, or in a repository at `.github/extensions/arcade-canvas/` for project scope. Then install dependencies from inside the copied folder:
Drop this folder at `~/.copilot/extensions/arcade-canvas/` for user scope, or in a repository at `.github/extensions/arcade-canvas/` for project scope. Do not install `@github/copilot-sdk` locally. Copilot provides it through the automatic extension module resolver.

```sh
# User scope
cd ~/.copilot/extensions/arcade-canvas

# Or project scope, from the repository root
cd .github/extensions/arcade-canvas

npm install
```

Reload extensions in the GitHub Copilot app, then open the `arcade-canvas` canvas. The canvas accepts an optional `defaultGame` input with one of these keys: `cosmic-rocks`, `alien-onslaught`, `galaxy-blaster`, `ninja-runner`, or `defender`.
Reload extensions in the GitHub Copilot app, then open the `arcade-canvas` canvas. The canvas accepts an optional `defaultGame` input with one of these keys: `cosmic-rocks`, `alien-onslaught`, `galaxy-blaster`, `ninja-runner`, `defender`, or `surface-defense`.

## Agent actions

Expand All @@ -54,7 +42,16 @@ In the Agent Arcade repository, rebuild the committed canvas bundle after fronte
npm run build:canvas
```

That command builds the frontend, copies `dist/game` into `game/`, copies `dist/assets` into `assets/`, writes `assets/preview.png` for the Awesome Copilot gallery, and bundles `assets/canvas-background.webp` for the canvas-only space backdrop.
That command builds the frontend, copies `dist/game` into `game/`, copies the required assets into `assets/`, writes `assets/preview.png` for the Awesome Copilot gallery, and bundles `assets/canvas-background.webp` for the canvas-only space backdrop. The canvas package uses compressed M4A copies of WAV effects and removes unused desktop assets so it stays within the 8 MiB project-extension trust limit.

## Awesome Copilot sync

The published copy lives in `github/awesome-copilot` under `extensions/arcade-canvas/`. After rebuilding this canonical copy:

1. Replace the Awesome Copilot `extensions/arcade-canvas/` directory with this directory.
2. Update `plugins/arcade-canvas/plugin.json`, including its version and six-game description.
3. Update `plugins/arcade-canvas/README.md`.
4. Run `npm run plugin:validate`, `npm run build`, and `npm run website:data` in the Awesome Copilot repository.

## Credits

Expand All @@ -63,6 +60,8 @@ That command builds the frontend, copies `dist/game` into `game/`, copies `dist/
- Galaga-style game mechanics: [WesleyEdwards/galaga](https://github.com/WesleyEdwards/galaga) by Wesley Edwards.
- Asteroids-style game mechanics: [phaser3-typescript](https://github.com/digitsensitive/phaser3-typescript) by digitsensitive.
- Defender-style game mechanics and sound effects: [OpenDefender](https://github.com/mkinney/Opendefender) by mkinney.
- Missile-defense gameplay reference: [Basic Missile Command HTML and JavaScript Game](https://gist.github.com/straker/afc4e2a30b6df772a5f9f6ef01751d41) by straker (CC0 1.0).
- Surface Defense uses original synthesized WAV effects generated by `scripts/generate-surface-defense-audio.mjs`; no commercial-game audio is redistributed.
- Retro game sound effects: ["Retro game sound effects"](https://opengameart.org/content/retro-game-sound-effects) by Vircon32 (Carra), published at OpenGameArt under [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/).
- Thanks to [John Papa](https://github.com/johnpapa) for his Alien Onslaught game PR.
- Thanks to [Shayne Boyer](https://github.com/spboyer) for the initial PR to get Agent Arcade running in the GitHub App canvas.
3 changes: 2 additions & 1 deletion extensions/arcade-canvas/assets/asset-.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ https://opengameart.org/content/2d-nature-platformer-tileset-16x16
https://opengameart.org/content/retro-game-sound-effects
https://github.com/digitsensitive/phaser3-typescript
https://github.com/WesleyEdwards/galaga
https://juhosprite.itch.io/simple-platformer-16
https://juhosprite.itch.io/simple-platformer-16
https://gist.github.com/straker/afc4e2a30b6df772a5f9f6ef01751d41
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Loading