Repository navigation
Dash: endless-runner full-stack sample - #6146
shai-almog wants to merge 31 commits into
Conversation
Phase 1 of the endless-runner sample (scripts/dash): an int-only 60 Hz simulation shared by app, server, editor and replay viewer. One abstract lane/height/distance world, so 2D and 3D are renderings and a level can swing from side-on to chase camera mid-run without changing how it plays. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Server-run races with parties, quick races filled with bots, input stamping and flood limits, WebRTC signaling relay, replay-verified level boards (all/week/day, friends, crew), crews, and the Forge reworked for level packs. Migrations for SQLite, PostgreSQL and MySQL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dmin The client renders one deterministic Run in 3D and swings the camera between the side view and the chase view on a level's cues. Solo runs submit their input log for the server to re-simulate; races run in lockstep with seat inputs from the server, with WebRTC voice signalled over the game socket. The track editor paints obstacles, pickups and camera cues on a timeline and playtests the draft. The admin console lists and spectates live races. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Initializr renames every Dash in the template, so MATERIAL_DASHBOARD and "dashes" were renamed too and the generated app did not compile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A rendered city backdrop, animated stars, count-ups and reward bursts; a lobby with currency pills, side rails and a bottom nav; result cards, level cards and shop rows rebuilt; runners and tracks from the new Rig/Theme; the side camera frames the runner; e2e screenshots copied into the guide images. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…at the end Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…day fix Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…minimap progress Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…admin, promo video - City runs put the street name overhead and boards for real places along the route (Overpass, replaceable through Landmarks.setSource). - Causeway chunks carry more coins, power-ups and traps, spaced so a sharp bot finishes every weekly seed (new fairness test); goldens regenerated. - Race bot leads by the input delay; party lobby chat is bubbles on one scrollable page; demo boards spread so the scores screen is not a tie. - PromoVideoTest films a captioned tour with the simulator recorder (run-e2e.sh --video); the JavaSE recorder now captures the presented frame, so a recording no longer tears mid-paint. - Guide and website: engagement and live-ops section, desktop admin shots, street/landmark shots, gallery and the promo video. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ames in race chat - Emotes carry the sender's display name, never the account email. - A development server seeds four weeks of history (DemoHistory): staggered sign-ups, bot races with replays, gem sales, wins and trophies, so the console's charts have a shape; the field's skills spread so runs end along the track instead of tying at the finish. - The desktop pass shoots a 1440x900 window. - Party lobby: the code and invite stay put while runners and chat scroll; the share icon takes the button's colour. - Run and race shots wait for a stretch of track with something on it. - ScoresTest's ghost check asserts the day's seed, not which runner. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nd scores shots - The console's pipeline conditions name "races" as the backend does; a seeded "races at least 10" no longer reads (and saves) as days away. - The demo history seeds once per database, not once per fresh field. - The race shot is taken while the race runs; the scores shot is the day's endless board, where every run ends somewhere different. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Promote and Pipelines screen picker offered "deck" and "battle", which the server refuses; it now lists the server's own Promotion.SCREENS. The query table and the invite card say races, not battles. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blog prose gate✅ No net-new prose findings introduced by this PR. |
Cloudflare Preview
|
|
Compared 12 screenshots: 12 matched. |
…plate synced Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
✅ Continuous Quality ReportTest & Coverage
Static Analysis
Generated automatically by the PR CI workflow. |
…ned lobby, editor and admin side bar VirtualButton and VirtualJoystick setAnchor are public, so two controls can share a corner. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Lofted octagonal segments with flat normals replace the capsules and spheres; the menu portraits draw the same body as shaded panels. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e warm-up in the party test Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Compared 231 screenshots: 231 matched. |
|
Compared 195 screenshots: 195 matched. Native Android coverage
✅ Native Android screenshot tests passed. Native Android coverage
Benchmark ResultsDetailed Performance Metrics
|
|
Compared 210 screenshots: 210 matched. Benchmark ResultsDetailed Performance Metrics
ParparVM vs HotSpot (JDK 25): Windows x64Runner CPU: AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD (baseline Ratios are ParparVM / JDK 25: below 1.00x ParparVM is faster (time) or smaller (RAM). Median of 5 interleaved, paired rounds; every run's output was verified. A ratio more than 20% (time) / 25% (RAM) above its baseline in
Result: no regression |
# Conflicts: # .github/workflows/initializr-e2e.yml # docs/website/layouts/partials/cn1-flagship-samples.html # scripts/check-copyright-headers.sh # scripts/initializr/common/src/main/java/com/codename1/initializr/Initializr.java # scripts/initializr/common/src/test/java/com/codename1/initializr/model/GeneratorModelMatrixTest.java # scripts/initializr/e2e-shipped.sh # scripts/sync-initializr-template.py # scripts/tests/GenerateInitializr.java
…rs every tick The bot polled once per frame, so a loaded machine stepped several ticks between decisions and the runner hit the first obstacle. RunView.setBeforeTick runs it before every tick instead. The promo tour records at full size with game audio and taps, and a second clip films one run in the phone skin. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Compared 210 screenshots: 210 matched. Benchmark ResultsDetailed Performance Metrics
ParparVM vs HotSpot (JDK 25): Windows arm64Runner CPU: ARMv8 (64-bit) Family 8 Model D49 Revision 0, MICROSOFT CORPORATION (baseline Ratios are ParparVM / JDK 25: below 1.00x ParparVM is faster (time) or smaller (RAM). Median of 5 interleaved, paired rounds; every run's output was verified. A ratio more than 20% (time) / 25% (RAM) above its baseline in
Result: no regression |
|
Compared 210 screenshots: 210 matched. ParparVM vs HotSpot (JDK 25): Linux x64Runner CPU: AMD EPYC 9V74 80-Core Processor (baseline Ratios are ParparVM / JDK 25: below 1.00x ParparVM is faster (time) or smaller (RAM). Median of 5 interleaved, paired rounds; every run's output was verified. A ratio more than 20% (time) / 25% (RAM) above its baseline in
Result: no regression |
|
Compared 210 screenshots: 210 matched. ParparVM vs HotSpot (JDK 25): Linux arm64Runner CPU: Neoverse-N2 (baseline Ratios are ParparVM / JDK 25: below 1.00x ParparVM is faster (time) or smaller (RAM). Median of 5 interleaved, paired rounds; every run's output was verified. A ratio more than 20% (time) / 25% (RAM) above its baseline in
Result: no regression |
|
Compared 196 screenshots: 196 matched. Benchmark Results
Detailed Performance Metrics
ParparVM vs HotSpot (JDK 25): macOS arm64Runner CPU: Apple M1 (Virtual) (baseline 2 performance regressions:
Ratios are ParparVM / JDK 25: below 1.00x ParparVM is faster (time) or smaller (RAM). Median of 5 interleaved, paired rounds; every run's output was verified. A ratio more than 20% (time) / 25% (RAM) above its baseline in
A change that moves performance ON PURPOSE records the new baseline in Result: performance regression |
…column, guide snippets from code The shipped template compiles against the released Codename One, where VirtualButton.setAnchor is not public, so the touch buttons use the corner anchor alone and the framework change is dropped. Profile.runner maps to the VARCHAR(40) its migration creates; PostgreSQL and MySQL refused the mismatch. The guide's two city route examples are now tagged code in CityRouteTest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…workflows build each target on its own SDK Pulse is the first sample with a watch app, and its iOS job failed three ways: - xcodebuild -sdk iphonesimulator built the watch target on the iPhone SDK, where its watch-only AppIcon has no applicable content. The destination alone picks each target's SDK (pulse.yml, and dash.yml before it gains one). - The watch slice compiles IOSNative.m with the app's switches, and watchOS has no CoreNFC: CN1_INCLUDE_NFC is now off on the watch, as on tvOS. - The surfaces mirror (applyMirroredSurface, the drain on Java ready) called natives that exist only with CN1_USE_WIDGETS; a watch app without widgets failed to compile and then to link. Both are now behind that switch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Developer Guide build artifacts are available for download from this workflow run:
Developer Guide quality checks: |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hat include it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Compared 193 screenshots: 193 matched. Benchmark Results
Build and Run Timing
Detailed Performance Metrics
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Adds
scripts/dash, an original endless-runner sample: deterministic shared rules, an authoritative backend that re-simulates every score, live same-seed races with voice, the Forge level editor with moderation, city runs built from real map routes, an admin console, the developer-guide chapter and the Initializr template.🤖 Generated with Claude Code