Skip to content

Implement the baseline pixel-art ordered-scene renderer #7

Description

@zoeyrose

Outcome

Render bounded canonical scenes with exact stable ordering and pixel-art behavior for all consumers.

Scope and invariants

  • Consume ordered logical scene records with stable identity, named role, physical level/surface placement, transforms, opacity/blend/cutout, resource reference, semantic tags, and revisions.
  • Implement fixed isometric projection, unified painter/depth ordering across neighboring tiles/levels, tall/multipart placement, clipping/culling, target/selection overlays, and pixel-art sampling.
  • Produce optional exact semantic identity, depth, coverage, visibility, and painter-key outputs alongside color.
  • Reject or diagnose scenes exceeding record/byte/depth/coordinate/resource bounds before partial frame state.
  • Keep gameplay visibility/authorization out of renderer; it draws only supplied authorized records.

Acceptance criteria

  • M1 corpus covers adversarial overlap/order, transparent/cutout sprites, negative coordinates, multipart/tall objects, surfaces/free-air, missing assets, and bounds.
  • Same scene renders identically through client, editor, and offscreen paths within documented color tolerance and exact semantic masks.
  • Sorting/culling is deterministic and has measured dense-scene budgets.
  • Fuzzed scene bundles cannot panic, allocate unbounded memory, access invalid GPU state, or retain partial revisions.
  • No 49-slot or classic packet/cache representation exists.

Dependencies and parallelization

Depends on #5/#6 and the transferred ordered-scene issue. Protocol/server/editor adapters proceed against golden logical scene bundles.

Licensing

Rendering code, shaders, tests, and newly authored fixtures are MIT. Reuse from atrinik/classic sources is allowed only through the audited approved-grantor grant; all other behavior is independently implemented. Bundled assets require exact compatible licenses and notices.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    Priority

    None yet

    Effort

    None yet

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions