Protect rendering performance
For a game designer, this purchase confirmation prototype should make every player action and result shown in the game easy to evaluate. Write how to show the exact item, Koin amount, balance impact, and explicit confirm/cancel actions. Choose the offer moment, explain the game benefit, and protect the complete free path. Compare the experience before and after ownership. Open and close the interface during GPU-heavy scenes, then monitor input, frame pacing, and canvas recovery. A commerce overlay should not leave the game loop paused or controls captured unexpectedly.
Coordinate DOM and canvas state
Make the selected item and outcome visible in both interface and gameplay context. Handle focus loss, pointer lock, fullscreen transitions, and a resized canvas around confirmation and return.
Exercise context recovery
Simulate refresh, background suspension, and a lost rendering context. The player-facing purchase result should reconcile separately from graphics recovery and must never duplicate an item.
Judge the offer in the core loop
Run the game without opening the purchase choice, then run it with the item. Compare pacing, motivation, difficulty, and recovery so the offer supports play instead of repairing frustration that was added deliberately.
Make the player promise concrete
Describe what changes on screen, how long it lasts, where it appears, and what remains available without it. Replace value labels such as better or premium with rules a player can observe.
Review the moment of choice
Check what the player was doing immediately before the offer and where cancel returns them. The item should arrive after enough context to understand it, but never during a time-critical or emotionally pressured action.
Repeat the complete choice
The confirmation should repeat the selected item, exact Koin amount, current Koin balance, remaining balance, and ownership rule without introducing a different offer. Test that behavior using WebGL games. WebGL rendering and commerce state need separate failure testing.
Separate confirm from cancel
Use distinct actions with clear labels and enough spacing for the target input method. Returning to the game should never spend Koin. Test that behavior using WebGL games. WebGL rendering and commerce state need separate failure testing.
Prevent repeated confirmation
After confirmation, show a pending state and disable repeated input until the result is known. A slow response should not create duplicate grants. Test that behavior using WebGL games. WebGL rendering and commerce state need separate failure testing.