Skip to content

feat(assembler): 3 more showcase games — coin-collector, ruby-orbit, event-relay (#607) - #610

Merged
apotema merged 1 commit into
mainfrom
feat/showcase-more-examples
Jul 11, 2026
Merged

feat(assembler): 3 more showcase games — coin-collector, ruby-orbit, event-relay (#607)#610
apotema merged 1 commit into
mainfrom
feat/showcase-more-examples

Conversation

@apotema

@apotema apotema commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Refs #607 (round 2 — more showcase games on the plan from #609).

Three new example games, each following examples/parallax-scroll conventions and verified end-to-end (install → generate → zig build → deterministic headless run on .null):

  1. coin-collector — full gameplay loop to a win condition (ECS view queries, homing movement, radius-overlap pickup, destroyEntity). Clears the field by frame 87.
  2. ruby-orbit — the Ruby scripting seed (feat: Android build generation (#133) #3): a ruby/orbit.rb drives the engine through the Script Runtime Contract via the labelle-scripting plugin over a labelle-null backend. Verified after compiling vendored mruby.
  3. event-relay — pure-Zig game event bus: a script emits a custom Pulse event that a game-root hook receives at dispatchEvents (exercises the events/ + hooks/ auto-scan).

Also:

Remaining: grid games #6#9 (pack-city bgfx-wasm, sprite-runner, tile-explorer, material-demo) are still proposals; material-demo is blocked on gfx#305.

🤖 Generated with Claude Code

…relay)

Advance the #607 showcase set with three more small complete games, each
scaffolded following the parallax-scroll conventions and verified end to
end (generate -> zig build -> deterministic headless run on .null):

- coin-collector: a full gameplay loop — per-frame ECS queries, homing
  movement via getPosition/setPosition, radius-overlap pickup,
  destroyEntity, and a win condition. Clears the 5-coin field by frame 87
  and logs `[collector] cleared` (verified).
- ruby-orbit: the ticket's Ruby scripting seed — a ruby/orbit.rb script
  drives the real engine through the Script Runtime Contract via the
  labelle-scripting plugin (local sibling, language=ruby) over the
  labelle-null sibling backend. Emits the exact ordered RUBY_* transcript
  (verified after compiling the vendored mruby).
- event-relay: the pure-Zig game event bus — a script emits a custom
  Pulse event (events/pulse.zig) that a game-root hook
  (hooks/pulse_watcher.zig) receives at dispatchEvents, proving the
  assembler's events/ + hooks/ auto-scan end to end (verified).

Also:
- Fix parallax-scroll for engine v2.0 (#592): the pre-#560 top-level
  "entities" scene key is now REJECTED at runtime; migrate it (and author
  the new scenes) with file-level entities under "children".
- Update docs/showcase-plan.md: expand the grid to reflect the games now
  in-repo (incl. camera-builtin / fantasy-dungeon / scripting-smoke that
  landed separately), document the unified scene-format requirement, and
  note the labelle-null-sibling pin the scripting games need.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@gemini-code-assist

Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@apotema, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 15 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: a38d803f-8024-4cb8-b3df-f816b4fcd64d

📥 Commits

Reviewing files that changed from the base of the PR and between e7c9195 and d554f92.

📒 Files selected for processing (21)
  • docs/showcase-plan.md
  • examples/coin-collector/.gitignore
  • examples/coin-collector/README.md
  • examples/coin-collector/components/coin.zig
  • examples/coin-collector/components/player.zig
  • examples/coin-collector/project.labelle
  • examples/coin-collector/scenes/main.jsonc
  • examples/coin-collector/scripts/playing/10_collect.zig
  • examples/event-relay/.gitignore
  • examples/event-relay/README.md
  • examples/event-relay/events/pulse.zig
  • examples/event-relay/hooks/pulse_watcher.zig
  • examples/event-relay/project.labelle
  • examples/event-relay/scenes/main.jsonc
  • examples/event-relay/scripts/playing/10_emitter.zig
  • examples/parallax-scroll/scenes/main.jsonc
  • examples/ruby-orbit/.gitignore
  • examples/ruby-orbit/README.md
  • examples/ruby-orbit/project.labelle
  • examples/ruby-orbit/ruby/orbit.rb
  • examples/ruby-orbit/scenes/main.jsonc
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/showcase-more-examples

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@apotema
apotema merged commit 0e743f6 into main Jul 11, 2026
4 checks passed
@apotema
apotema deleted the feat/showcase-more-examples branch July 11, 2026 23:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant