Skip to content

idea: tagging (graffiti) mechanic with first-person controller #390

Description

@nigel-hall-codes

What we're exploring

A tagging / graffiti mechanic for the SF world. The player moves through the streets in first person and can freely spray-paint onto surfaces — not stamp pre-made stickers/decals, but actually lay down paint stroke-by-stroke and make whatever piece you want.

Core mechanic: FREE-FORM SPRAY (not stamps)

  • Hold the trigger → paint accumulates where you're aiming.
  • Move the can → strokes build up, overlap, drip. The art is whatever the player makes in the moment.
  • Color / nozzle width / drip are just parameters on the spray "dab".
  • Explicitly not a decal/sticker-placement system. "Spray anything" means anything.

MVP scope

  • First-person player controller — walk/look around the streamed SF chunks.
  • Free spray — one can, one color, soft round nozzle. Paint-into-texture, accumulating dabs.
  • Land on anything — any surface the raycast hits (buildings, ground, cars, props). Needs a general world-space paint approach that does not rely on per-object UVs.
  • Session-only persistence — paint lives in memory while playing, gone on restart. Prove the spray feel first; saving comes later.

Future direction (not MVP — captured for context)

  • Gear progression — gear that lets you make better pieces (larger, multi-color, higher-quality, fills, fat/skinny caps).
  • Traversal gear — gear that improves movement/traversal to reach better spots (climbing, speed, etc.).
  • Persistence to world — tags saved/reloaded (server or baked) so the city accumulates graffiti over time.
  • Implies a light progression/economy layer over time.

Open questions for analysis

  • Rendering approach for free spray on streamed geometry. Render-to-texture painting is the likely path: raycast to hit point, stamp a soft spray dab in texture space, accumulate. But "land on anything without per-object UVs" pushes toward a world-space / triplanar or dynamic-paint-layer approach — needs a spike.
  • How does the first-person controller coexist with the existing camera/streaming systems (parked-cars/traffic view-streaming model)?
  • Memory budget for session-only paint layers across many streamed chunks.
  • What's the smallest MVP that still feels like real "tagging"?

Captured via /sdlc capture. Corrected from decal-stamp framing to free-form spray. Start MVP-first.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions