Ultimate Physics-Based Screw Board Mechanics
A premium game wrapper around a high-performance Construct 3 puzzle canvas. Built in Flutter to serve assets locally over secure ephemeral server channels while binding native iOS/Android bridge APIs directly into the browser context.
A high-performance hybrid implementation optimized for modern mobile web views.
Bypasses WebAssembly, CORS, and local file sandboxing limits enforced by modern Android & iOS WebViews. By serving the HTML5/Wasm bundle from a secure, dynamic loopback port on local device sockets, the wrapper ensures instant resource rendering.
Full bidirectional communication channel (`FlutterBridge`) connects the JS canvas context directly to Dart handlers.
Intuitive native navigation flows that intercept back events depending on current game layout.
Built-in inspector console that renders event logs in real time. Provides developers with immediate actions to test game builds, inspect webview states, or inject custom payloads.
Rather than building overlays inside the HTML canvas, the app utilizes native Flutter widgets overlaid on top of the webview stack. This ensures completely smooth rendering, native platform fonts, and full hardware acceleration. Handles custom app rating requests, content sharing panels, and confirm-exit sheets.
The application implements a robust event bridge. When events are fired in Construct 3, they call standard window hooks. The Flutter wrapper registers JavaScript Channels, translating web clicks or game states into native operations.
Direct hook evaluation without complex serialization layers.
Fires load/show triggers directly to AdMob native services.
Saves states locally to localStorage with Dart backups.
Inject scripts directly from Dart to simulate game events.
Integration details of the google_mobile_ads package within the hybrid wrapper framework.
Google Mobile Ads SDK is initialized on application startup within `main.dart`. This guarantees ads are pre-cached and ready before the user completes the first levels, providing a seamless gameplay flow.
The `AdHelper` class in `game_page.dart` manages IDs dynamically. In Debug builds, official standard Google test IDs are used automatically. Release builds automatically pull live production ad unit IDs configured securely.
The bridge communicates playback states dynamically. When the user requests hints, a rewarded ad triggers. Interstitial ads display during normal game progression transitions (e.g. exit prompts or menu changes).