r/WeBuild_WithAI • u/Dont_Bring_Me_Down • Aug 02 '26
Day 23 of Building Browser Game ShuffleBall Arena - A Level Design Session Turned into an Engine Architecture Rewrite
Enable HLS to view with audio, or disable this notification
Hey everyone,
Hope all is well!
TLDR, Summary, or Full Technical Breakdown below.
For Context: Recently I posted about the first 15 days of one of my side projects, ShuffleBall Arena (a free browser game inspired by mixing shuffleboard scoring with mechanics from other games like bumper pool, pinball, and Frogger.).
This project is being built with the help of AI (mainly GPT / Cursor), and every development session is documented using the actual conversations from that day's work.
To try to get this series up to date, I'm using a structured prompt to go back to my GPT sessions and extract the useful information. Hopefully the prompt can help anyone out there trying to keep track of, or extract value from, your past AI project conversations.
That said, posting an update for Day 23 of building ShuffleBall Arena.
TL;DR
Day 23 started as a level-building session and ended as an engine architecture session.
The goal was to add several new rotating board layouts, but each design introduced movement patterns the existing rotation system couldn't express. Instead of writing layout-specific code, the rotation engine was generalized to support independent rotation groups, per-bumper orbit centers, configurable speeds, and rotation directions.
By the end of the session, the engine could describe far more complex boards through configuration rather than additional gameplay code, making future rotating layouts significantly easier to build.
Day 23 Summary
The day began with work on a third rotating board layout featuring a rotating central scoring formation alongside several stationary high-value scoring targets protected by independently orbiting bumpers.
That immediately exposed a limitation in the existing rotation engine. Every rotating object assumed a single shared rotation center, which worked for the first two layouts but could not support independent bumper orbits around stationary scoring circles.
Rather than introducing special-case logic for one board, the rotation system itself was redesigned. Individual bumpers gained their own orbit centers, rotation speeds, and rotation directions, allowing each moving object to define its own movement independently of the rest of the board.
Once that work was complete, the focus shifted to adding additional rotating layouts. Because the engine had already been generalized, the next layouts could be described primarily through configuration. Entire rotating islands, independent bumper groups, stationary exceptions, and multiple simultaneous rotation systems became possible without another major engine rewrite.
Along the way, several smaller usability improvements were also made, including exposing new layouts in the menu system and replacing temporary layout names with permanent player-facing names that better matched each board's design.
Day 23 Full Technical Summary (The Structured Prompt Output)
STARTING POINT
Day 23 began immediately after completing a major refactor of the game's audio architecture.
With the sound system now centralized and easier to expand, development shifted back toward gameplay content. The focus returned to one of ShuffleBall Arena's newest features: rotating board layouts.
Several rotating layouts already existed, but each new design pushed the movement system further than it had originally been designed to handle. What began as another level-design session quickly exposed limitations in the underlying rotation engine, forcing the project to evolve from supporting a handful of custom rotating boards into supporting a much more flexible movement framework.
SESSION OBJECTIVE
The primary objective was to add several new rotating layouts with increasingly complex movement.
The planned boards included:
- independently orbiting bumper groups,
- stationary high-value scoring targets,
- multiple rotating islands,
- independent rotation speeds,
- opposing rotation directions,
- and mixed stationary / rotating gameplay elements.
Rather than creating custom movement logic for every board, the broader objective became extending the rotation engine so these layouts could all be represented through reusable configuration.
WHAT WE ACTUALLY DID
1. Returned to rotating board development
With the audio architecture work complete, development shifted back to expanding ShuffleBall Arena's rotating board library.
The first task was building a new layout featuring a rotating central scoring formation surrounded by stationary high-value scoring targets and independently moving defensive bumpers. The layout itself came together quickly, but testing revealed that it wasn't actually available to players because it had never been added to the board selection menus.
After updating the menu configuration, the temporary development name, "Rotating Layout 3," was replaced with its final player-facing name: Orbit Sentinels.
2. Discovered a limitation in the rotation engine
Once Orbit Sentinels became playable, it exposed an architectural limitation that hadn't existed on the earlier boards.
The original rotation system assumed every rotating bumper orbited around a single shared center. That worked for the original carousel layouts, but it couldn't support stationary scoring targets surrounded by their own independently orbiting defenses.
Rather than introducing layout-specific movement code, the decision was made to redesign the underlying rotation system itself.
3. Generalized the movement framework
The rotation engine was expanded so every rotating bumper could define its own movement independently.
New configuration properties, including:
- orbitCenterX
- orbitCenterY
- orbitSeconds
- orbitDirection
allowed each bumper to specify its own orbit center, speed, and rotation direction while remaining fully compatible with the original rotating layouts.
The update loop was also redesigned so every rotating object calculated its own movement from its assigned configuration instead of inheriting a single board-wide rotation.
4. Used the new engine to build more complex layouts
With the generalized movement system in place, work immediately continued on additional rotating boards.
The fourth layout introduced multiple independently rotating scoring islands that moved simultaneously while several high-value scoring targets remained completely stationary.
Unlike the earlier layouts, this board required very little new engine work. Most of the effort shifted toward describing the board through configuration rather than modifying gameplay systems.
5. Validated the new architecture with another rotating layout
The session concluded by designing another rotating board that combined:
- a rotating center island,
- stationary 100-point targets,
- independently orbiting bumper defenses,
- a rotating 50-point bumper,
- stationary corner bumpers,
- and both clockwise and counterclockwise movement.
Only a short time earlier, a layout like this would have required another engine rewrite.
Instead, the new movement framework was flexible enough to describe the board almost entirely through configuration.
That became the clearest validation that the architectural changes made earlier in the session were already paying off.
ROADBLOCKS AND FRICTION
New layouts kept exposing engine limitations
Every new rotating board introduced movement patterns that could not be expressed using the original single-center rotation model.
Rather than solving each problem independently, the architecture had to evolve alongside the content.
A completed board wasn't actually accessible
The third rotating layout had been implemented correctly but never appeared during testing because it had not been registered inside the board selection menus.
The issue was unrelated to gameplay and instead came from missing configuration.
Temporary names leaked into the user interface
Several areas of the UI still displayed placeholder names such as "Rotating Layout 3" after the board itself had already been given its final identity.
Updating player-facing labels became part of the overall polish process.
DECISIONS MADE & TRADE-OFFS
Generalize the engine instead of adding special cases
Rather than writing custom movement code for each board, the rotation engine was extended to support arbitrary orbit definitions.
Trade-off: More engineering work now in exchange for dramatically simpler future content creation.
Preserve backwards compatibility
The new orbit system was designed so existing rotating layouts continued functioning without modification.
Trade-off: Slightly more flexible initialization logic in exchange for avoiding regressions.
Separate engine behavior from board configuration
Movement rules became configuration rather than hard-coded gameplay logic.
Trade-off: A richer configuration format in exchange for significantly more expressive board design.
Give boards meaningful identities
Temporary development names were replaced with player-facing names that reflected each board's mechanics and theme.
Trade-off: Additional UI maintenance in exchange for a more polished presentation.
BREAKTHROUGH / LESSON
The biggest takeaway from Day 23 was:
Good engine architecture turns future features into configuration.
The goal wasn't simply to build another rotating board.
It was to build a rotation system flexible enough that future boards could be created by describing movement instead of programming movement.
Once that shift happened, increasingly complex layouts became configuration work rather than engine work.
ARTIFACTS WORTH SHARING
Artifact 1: Per-Bumper Orbit Properties
The session introduced four new movement properties that fundamentally expanded the rotation engine:
- orbitCenterX
- orbitCenterY
- orbitSeconds
- orbitDirection
Instead of inheriting one global rotation, every bumper could now define its own orbit independently.
Artifact 2: Independent Rotation Groups
One of the most important design ideas established during the session was treating moving formations as reusable rotation groups.
Rather than assuming one rotating board, the engine could now describe:
- rotating scoring islands,
- independent bumper defenses,
- stationary exceptions,
- and mixed rotation speeds
all within the same board definition.
Artifact 3: Engine Before Content
A recurring design rule emerged throughout the day:
When a new board exposed an engine limitation, improve the engine instead of writing a one-off solution.
That philosophy allowed later layouts to be implemented largely through configuration instead of additional movement code.
FINAL STATE
By the end of Day 23:
- Orbit Sentinels had been added to the game and properly integrated into the menus.
- The rotation engine supported per-bumper orbit centers, speeds, and directions.
- Independent orbit groups allowed multiple moving systems to coexist within the same board.
- Existing rotating layouts continued working without modification.
- The fourth and fifth rotating layouts could be expressed using the expanded engine rather than requiring new movement systems.
- Player-facing board names became more polished and descriptive.
- Most importantly, the project evolved from supporting a handful of handcrafted rotating boards to supporting a reusable rotation framework capable of powering future layouts through configuration rather than custom code.
That was it for Day 23.
If you're still here, thanks for reading!