Skip to content

Objects (Furniture)

Interactive and placeable objects that occupy one or more cells and that may expose anchors for decorations and attachments.

  • Footprint and grid
    • Placement uses the shared 0.5 u sub-grid in the IJ plane, with K as height (world Y). Grid dimensions, placement granularity, and the unit/scale convention (1 u = 1 Unity metre ≈ 2 m real) are defined canonically in Grid system; 1 u is only a display/simulation aggregation, never the placement step.
    • Each object defines a rotation-aware volume in 3D.
    • Object clashing checks the cell mask at the current rotation.
  • Rotation
    • 90° increments initially. 45° may be considered later if an object supports it.
  • Bounds and collisions
    • Must fit entirely within current deck bounds.
    • Odd-shaped boundary cells are non-placeable for objects.
    • No crossing walls, doors, floors, etc. — the whole volume must fit.
    • Doors: objects must not block door swing volumes.
  • Anchors
    • Anchors do not affect placement validation or footprint. They only dictate how decorations attach.
  • Stacking (out of scope for now; future updates might include this)
    • Disabled unless the object explicitly declares stackable behaviour and defines compatible top/bottom interfaces.
Use case World-space bevel width (u) Segments Notes
Default edges 0.02–0.03 u 1–2 Primary highlight width for a clean, toy-scale read
Small props / crowded edges 0.01–0.02 u 1–2 When the default bevel eats too much form
Hero touch edges 0.03–0.04 u 2 Doors, railings, elevator frames
Micro bevel (specular catch) 0.005–0.01 u 1 Use sparingly; must read at gameplay distance
  • Keep bevels in consistent world units. Prefer low segment counts and let trims or smooth shading carry the highlight.
  • Named attachment point on an object with position, normal, and allowed types.
  • Types: Horizontal, Vertical, Surface, Hanging.
  • Anchors are game objects that need to exist within the object’s hierarchy; the position and rotation define the anchoring position and normal.
  • The anchor’s local up vector defines the attachment normal. Use the anchor transform to orient attached items.
  • Objects reserve cells as their original footprint.
  • Anchors do not change the object footprint.
  • Doors are objects and should have anchors defined for decorations.
  • Playtest whether to do any collision checks, but clipping through the wall might be part of the “fun” for some players.
  • Examples
    • door_center: Vertical type; allowed for Wall-only and Vertical-only décor.
    • nameplate_frame: Vertical type; allowed for Wall-only and Surface décor.
    • handle_charm: Vertical type; allowed for Hanging décor.