AeroSports
Realtime score display rendered in a secondary WebView, designed to show game state, scores, timers, lives, and mode-specific information with minimal latency and high readability.
Stack
Next.js + WebView
Runtime
Realtime JSON updates
Modes
Alliance + PvP + Custom
Deployment
Hosted centrally for all rooms
Role
Thin display layer
Grouped by the primary systems, languages, and infrastructure used in this build.
Frameworks
Next.js
Libraries
React
Languages
JavaScript, CSS
Supporting Systems
Backend, Kiosk Host
AeroSports
Realtime score display rendered in a secondary WebView, designed to show game state, scores, timers, lives, and mode-specific information with minimal latency and high readability.
Stack
Next.js + WebView
Runtime
Realtime JSON updates
Modes
Alliance + PvP + Custom
Deployment
Hosted centrally for all rooms
Role
Thin display layer
Tech Stack Overview
Grouped by the systems, languages, and supporting layers used in this project.
The Scorecard is a Next.js project rendered as the second WebView inside the kiosk host application.
Its purpose is to give players a clear realtime view of:
The scorecard is intentionally designed as a lightweight dummy structure. It does not own game logic. Instead, it receives structured realtime data from the Kiosk Host, which itself receives the runtime state from the Game Engine.
This thin display architecture makes the scorecard:
The scorecard is a lightweight hosted display layer rendered inside the kiosk runtime. It receives structured realtime data from the kiosk host, which itself relays state from the game engine.
When the Kiosk Host launches, the Alliance mode scorecard is loaded by default, except for custom games where the host can load a room-specific custom screen instead.
Step 1
Typical realtime updates include:
This keeps the scorecard focused only on rendering the current truth, rather than calculating state on its own.
The scorecard has three major display modes.
Used when players are playing together as a team.
Displays shared values such as:
Used for player-vs-player gameplay.
In addition to common score data, it also displays:
This became important because showing generic labels like Player 1, Player 2 created confusion during live gameplay.
Used for games that do not fit the standard scorecard structure.
This allows custom layouts for special game types, including:
The first major custom example was Recipe, where the page needed to display:
In the beginning, we only had Alliance mode game variants for the first two game rooms.
That meant one display structure was enough.
As the facility grew, the scorecard had to evolve.
Once competitive / PvP variants were introduced, we needed a different display model. We added: We also improved the UI multiple times so the infor...
When customformat games such as Recipe were introduced, the standard layout no longer worked. So we added: We also improved player clarity over tim...
Although the scorecard is a relatively lightweight project, it was a very important part of the room experience.
The first challenge was purely visual: Players should be able to glance at the scorecard and instantly understand it. Because the games often requi...
The first challenge was purely visual:
Players should be able to glance at the scorecard and instantly understand it.
Because the games often require:
the display could not be something players had to "decode."
That meant:
The scorecard was not always a pure dummy display. Earlier versions behaved more like an independent screen process and were updated through smalle...
Another challenge was making sure the correct screen type was always shown. Sometimes, due to communication loss or data mismatch: This made the di...
The custom mode introduced a new challenge: we needed entirely different page formats for games that did not fit the standard scorecard model. For...
My contribution followed the same pattern as the other AeroSports software systems.
I helped build:
Once the dummy structure was in place, the scorecard became much easier to evolve because changes were mostly about:
I worked with my team on:
I also trained team members on how the scorecard page worked and how it could be extended safely.
Core technologies
Supporting technologies