Objects (Furniture)
Purpose
Section titled “Purpose”Interactive and placeable objects that occupy one or more cells and that may expose anchors for decorations and attachments.
Placement
Section titled “Placement”- 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.
- 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 (
- 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.
Bevel presets (modeling workflow)
Section titled “Bevel presets (modeling workflow)”| 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.
Anchors
Section titled “Anchors”- 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.
Anchors and placement
Section titled “Anchors and placement”- Objects reserve cells as their original footprint.
- Anchors do not change the object footprint.
Door anchors
Section titled “Door anchors”- 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.