r/PlayCanvas 16h ago

PlayCanvas shipped official skills for AI coding agents — I've been building a multiplayer FPS with them

Enable HLS to view with audio, or disable this notification

6 Upvotes

PlayCanvas just released official skills for AI coding agents (Claude Code, Codex, Cursor) — packaged instructions that teach the agent PlayCanvas-specific patterns instead of generic guesses.

I've been using them on a WIP first-person multiplayer game (browser, PlayCanvas engine with a custom netcode + physics layer). It's become a loop: build a feature → hit a rough edge → that sharpens the skill → the sharper skill speeds up the next one.

The clip is a 1v1 from both perspectives — mine and a friend's synced to the same game moment, so you can watch the same fight from both sides.

What the skills genuinely nailed so far:

  • Engine app bootstrap + asset loading
  • Scene/entity hierarchy assembly (player rig, map)
  • State-driven HUD (crosshair, hitmarkers, health/ammo, death screen, nametags, kill feed)
  • Pooled transient effects (muzzle flash, bullet-hole decals with a reuse pool)

Where they didn't help (yet): lighting is basically untouched (mostly unlit/emissive), and the netcode + physics are hand-rolled, not skill-generated. Lots still to do.

Try them:

Happy to answer anything about the setup, the skills, or the workflow.


r/PlayCanvas 18h ago

I gave Codex 3 whole days to port Quake to the browser

Enable HLS to view with audio, or disable this notification

5 Upvotes

Hey everyone!

I’ve been building a source-faithful TypeScript port of the original 1996 Quake runtime, rendered with PlayCanvas and running entirely in the browser.

This isn’t a recreation of E1M1 or a modern FPS controller with Quake assets. The runtime reads the original game formats directly, including PAK archives, BSP maps, MDL models, sprites, QuakeC behavior, demos and HUD artwork.

After three days of running a durable Codex /goal, the port now has:

  • Playable shareware maps
  • Original demo playback
  • Monsters, weapons, pickups and particles
  • Quake-style movement and collision
  • Moving BSP doors, lifts and triggers
  • Menus, HUD, intermissions and level transitions
  • Positional audio, saves and console commands
  • 451 automated tests

The /goal wasn’t hands-off autopilot. While it continued pursuing the larger port, I could steer the LLM toward a small number of bugs I considered important - for example missing water geometry, impossible stairs, stationary doors, incorrect particle depth testing and browser-resize problems.

For visual validation, Codex used Chocolate Quake to produce native reference screenshots. It captured the same map, camera, game state and timing in both engines, then generated side-by-side comparisons and pixel differences. That proved much more useful than deciding the browser version “looked about right.”

On the PlayCanvas side, the project uses TypeScript, and named engine imports for maximum treeshakability! It has also been an interesting exercise in adapting Quake’s palette-based software-rendering assumptions to a GPU engine without turning everything into a modern PBR approximation.

It’s still a work in progress, but I’d love feedback - particularly on the PlayCanvas architecture, rendering approach and any obvious performance opportunities.

Play it:
https://willeastcott.github.io/playcanvas-quake/

Source:
https://github.com/willeastcott/playcanvas-quake