ManiMani Ideation
MM-DOS Game Catalog
← Operations

Playtest Cycle: build019.zip

May 2nd - July 12th · Approved Next Steps

Findings Summary

Download .md

Phase 7.1 Playtest Findings: Hi Fi Snake (build019.zip)

Executive Summary

The playtest for Hi Fi Snake (build019.zip) conducted between May 2nd and July 12th revealed critical technical and usability barriers that severely limit player onboarding and retention. The most prominent issue is a device-detection bug that misidentifies tablets and some mobile devices as desktop computers, displaying keyboard tutorials (WASD) and hiding the virtual joystick, which completely blocks touch-screen players. Additionally, players who successfully accessed the gameplay struggled significantly with control precision, grid alignment, and the active-input movement scheme, leading to high early drop-off rates.

Current Game State

Based on the current game-state GDD, the tested build features:

* Grid-Based Movement: A runner/collector loop where players navigate a grid to collect pieces, grow a tail, and unlock doors.

* Active-Input Player Movement: The player character only moves while input is actively held (joystick or keyboard) and stops immediately upon release.

* Player Speed Progression: Speed starts at 4 in Room 1 and increases by 0.4 per room up to a cap of 12.

* Runtime Control Hint Selection: The game dynamically switches UI hints based on the resolved device form factor (mobile vs. desktop).

Developer Context

According to the Developer Notes, the primary changes in this build were updating to Unity's new input system and implementing a virtual joystick for mobile. The developer explicitly noted a suspicion that tablets are being incorrectly resolved as desktop devices, which hides the virtual joystick and blocks players from controlling the character.

Positive Signals

* Progression Capability for Engaged Players

Confidence*: Medium

Evidence*: A small subset of players who bypassed or did not experience the control blockers managed to progress through multiple rooms (e.g., one JP player on Mobile Android played for 02:08 and reached Room 8; an MX player on Tablet Android played for 01:52 and reached Room 4).

Negative Signals

* Critical Device Resolution Bug (Tablets/Mobile as Desktop)

Confidence*: High

Evidence*: Multiple playtest rows explicitly report that tablets and mobile devices were resolved as desktop. For example, a TR tablet player saw the WASD keys tutorial instead of touch controls. Other tablet sessions in BR, US, and MX reported "technical bugs" and "mobile being resolved as desktop," leaving players unable to move.

* Control Precision and Grid Alignment Issues

Confidence*: High

Evidence*: Players repeatedly struggled to align with and collect pellets. Feedback notes players "circling around a single pellet trying to get it" (BR) and finding the game "hard to control" even at the slowest speed in the first room (ES).

* Black Screen and Menu Freezes on Desktop

Confidence*: Medium

Evidence*: Multiple desktop players (US, CN) reported that the screen was black the entire time. A tablet player in MY reported being stuck at the menu with extremely low FPS.

Confusion And Friction

* Active-Input Movement and Joystick Interaction

Confidence*: Medium

Evidence*: Players struggled with the active-input joystick behavior. Feedback indicates players tried to pull the joystick from outside its active visual bounds (UY, VN) or tried to move without touching the joystick directly (IN).

* Lack of UI Feedback in Shop/Menus

Confidence*: Medium

Evidence*: A BR player opened the skin store and mission popups before playing, but tapping customization skins without enough currency gave no feedback, leaving the player visibly confused. Another ID player pressed all screen buttons and accessed quests/shop but never entered gameplay.

* Onboarding and Text Overload

Confidence*: Medium

Evidence*: Several players reported that the level seemed too hard or there was "too much text to read or difficult to understand" (BR, DK) right at the start.

Retention And Replayability Signals

* High Early Drop-Off Risk

Confidence*: High

Evidence*: The majority of playtest sessions lasted less than 45 seconds. Players frequently quit within 10 to 30 seconds due to immediate control confusion, inability to move, or technical bugs, which directly triggers the Web Gen-Z Drifter exit conditions (confusion for 5-10 seconds, no immediate reaction).

Device / Browser / WebGL Concerns

* Tablet Identification Failure: Android tablets (using Mali-G610, Mali-G68, Mali-G57, Mali-G52 GPUs) consistently failed to load the mobile virtual joystick UI.

* Low-End Performance Issues: Low FPS was reported on older mobile/tablet GPUs such as the Mali-T720 and Mali-G52 MC2, causing early quits.

* WebGL Rendering Failures: Black screens were reported on desktop Windows systems running Chrome and Edge with AMD Radeon and Intel Iris Xe graphics.

Current Design Vs Observed Response

* Design Intent: Active-input movement was implemented to provide intentional, player-driven movement and cleaner pacing.

* Observed Response: Players found the active-input scheme highly frustrating on mobile, noting that releasing the joystick to turn or attempting 180-degree turns felt unresponsive or broken.

* Design Intent: Speed progression starting at a lower speed (4) was meant to soften early difficulty.

* Observed Response: Even at the lower starting speed, players still reported that the game felt too fast and difficult to control due to the precision required to collect pellets on the grid.

Missing Or Incomplete Systems Affecting Results

* Desktop Hint Asset: The GDD notes that the desktop control hint is a "Next Step" and optional. The lack of clear, persistent desktop hints likely contributed to desktop players reporting they "didn't understand the controls."

* Customization Feedback: The cosmetic expression system lacks error handling or feedback for insufficient currency, causing players to get stuck or confused in the menus before starting a run.

Confidence By Finding

FindingConfidenceWhy
Tablet/Mobile resolved as DesktopHighExplicitly noted by the developer and observed across multiple playtest rows with tablet devices showing WASD hints.
Control precision and turning difficultyHighRepeatedly reported across multiple regions (BR, ES, JP, UY) with players struggling to collect pellets or turn.
High early drop-offHighQuantitative session durations show the vast majority of players exiting in under 45 seconds.
Black screen rendering bugsMediumReported by multiple desktop players on Windows across different browsers (Chrome, Edge).
Active-input joystick confusionMediumObserved in several sessions where players tried to drag from outside the joystick area or failed to hold it.
UI/Shop feedback confusionMediumDetailed in playtest notes where players interacted with locked skins and menus without clear feedback.

Data Quality Caveats

While the playtest contains a healthy number of rows (41 sessions) across diverse regions (BR, ES, US, MX, TR, JP, VN, IN, etc.), a significant portion of the mobile/tablet data is corrupted by the device-detection blocker. Because many players could not move at all, we have limited data on actual room progression, upgrade choices, or the late-game speed curve.

Next-Step Proposal

Download .md

Phase 7.2 Revised Next-Step Proposal: Hi Fi Snake — build019

Cycle Objective

Resolve the remaining control-accessibility and usability problems without reopening issues that have already been addressed.

Phase 7.2 should focus on:

  1. Correct tablet and mobile control detection.
  2. Making pellet collection less punishing.
  3. Improving grid turning only if collision adjustments are insufficient.
  4. Making the virtual joystick more forgiving.
  5. Providing clear feedback for locked skins.

The existing active-input movement model should remain in place. Auto-walk has produced worse session times across all tests and should not receive further testing during this cycle.

---

Completed or Removed from Scope

The following items are already resolved and should not remain in the Phase 7.2 task list:

* WebGL black-screen rendering failures

* Desktop control hint

* Auto-walk versus active-input testing

Movement Decision

Retain ActiveInputPlayerMovementService.

Auto-walk has consistently produced worse session times and should be treated as a rejected direction unless future evidence provides a strong reason to revisit it.

---

Urgent

1. Correct Tablet and Mobile Input Resolution

Fix the device-resolution logic in:

* JoystickControls

* IcoBitZipDevice.jslib

* Any Playgama device-resolution integration

* Browser fallback checks

Modern tablets may request desktop versions of websites or expose desktop-like browser identifiers. Device classification should therefore not rely entirely on user-agent or screen-resolution assumptions.

Detection should consider available touch and pointer capabilities where possible.

#### Acceptance Criteria

* Tablets consistently display the virtual joystick.

* Mobile devices are not shown desktop-only controls.

* Desktop devices without touch continue to use keyboard controls.

* Previously affected tablet configurations can begin playing immediately.

* Desktop-site mode on a tablet does not disable touch controls.

---

2. Increase Pellet Collision Bounds

Test a small increase to the physical trigger size of collectible pellets before changing the movement or input-buffering system.

This is the lowest-risk intervention and may resolve a significant portion of the reported frustration without altering the core control model.

Use incremental adjustments rather than a large increase.

#### Test Order

  1. Record the current pellet trigger dimensions.
  2. Create a small increase.
  3. Test common near-miss approaches.
  4. Confirm that pellets cannot be collected from adjacent lanes.
  5. Compare Room 1 behavior with the existing build.

#### Acceptance Criteria

* Players can collect pellets during visually reasonable passes.

* Minor grid misalignment does not repeatedly prevent collection.

* Pellets cannot be collected from an adjacent lane.

* Collection still appears visually believable.

* The increase does not cause unintended multiple-pellet collection.

---

Next

3. Refine Grid Turning and Input Buffering

Only proceed with deeper movement changes if increasing the pellet collision bounds does not sufficiently reduce control frustration.

Investigate:

* Grid alignment tolerance

* Timing of perpendicular turns

* Joystick release during a partially completed grid movement

* Buffered directional input

* Invalid reverse-direction requests

The first movement change should be the smallest intervention capable of resolving the remaining issue.

#### Recommended Implementation Order

  1. Slightly widen the valid grid-turn window.
  2. Test whether this resolves missed turns.
  3. Add a single buffered next-direction input only if needed.
  4. Review joystick-release behavior if buffered turns are still being cancelled.
  5. Keep reversal behavior explicit and consistent.

#### Reverse-Direction Rule

A rapid 180-degree reversal should not appear to be ignored because of a control failure.

If reversals are prohibited by the game rules:

* Reject the input consistently.

* Preserve the current valid movement direction.

* Consider providing subtle feedback when the input is invalid.

#### Acceptance Criteria

* Valid perpendicular turns execute predictably.

* Players do not need to hit an extremely narrow grid-alignment window.

* A buffered turn executes at the next valid opportunity.

* Releasing the joystick does not unintentionally erase a valid queued turn.

* Invalid reversal attempts do not interrupt valid movement.

* Changes do not introduce wall clipping or unintended lane switching.

---

4. Expand the Virtual Joystick Interaction Area

Increase the active touch bounds beyond the visual joystick boundary.

A touch that begins on the joystick should continue controlling movement when the player drags slightly outside the artwork.

Consider two related improvements:

* Larger initial touch-acquisition area

* Continued drag tracking outside the visible joystick bounds

#### Acceptance Criteria

* Slightly inaccurate initial touches still activate the joystick.

* Dragging outside the visual boundary does not immediately cancel input.

* Input stops correctly when the touch ends.

* The expanded area does not block nearby interface elements.

* Multi-touch interactions remain predictable.

---

5. Add Locked-Skin Feedback

Players should receive immediate feedback when they select a skin that they cannot purchase or equip.

The response should communicate:

* That the skin is locked

* Its unlock condition or price

* The player's current currency when relevant

* Why the attempted action did not succeed

Possible feedback includes:

* A short message

* Currency or lock animation

* Button-state change

* Error sound

* Highlighting the missing requirement

#### Acceptance Criteria

* Every locked skin provides feedback when selected.

* Insufficient currency is clearly communicated.

* Purchased, equipped, selected, and locked states are visually distinct.

* Currency is only deducted after a successful purchase.

* Repeated taps do not create duplicate transactions or conflicting states.

---

Recommended Build Order

Build 7.2A — Device Access

* Fix tablet and mobile device detection.

* Test previously affected tablet configurations.

* Confirm desktop behavior remains unchanged.

Build 7.2B — Low-Risk Control Assistance

* Increase pellet collision bounds.

* Expand virtual joystick interaction bounds.

* Add locked-skin feedback.

Build 7.2C — Movement Refinement

Only create this build if control issues remain after Build 7.2B.

* Adjust grid-turn tolerance.

* Add directional input buffering if necessary.

* Refine joystick-release behavior.

* Confirm reverse-direction handling.

---

Deferred Work

Do not include the following in Phase 7.2:

* Daily three-room remix systems

* Advanced upgrade synergies

* Additional skins or trails

* Shop inventory expansion

* Tighter corridors

* More complicated hazards

* Major room-layout complexity

* Broad economy rebalancing

* Further auto-walk testing

These features should remain deferred until tablet access, pellet collection, joystick usability, and turning reliability have been validated.

---

Systems to Preserve

Active-Input Movement

Retain the active-input control model. It has outperformed auto-walk in session-time testing.

Room-Based Progression

Keep the short, self-contained room structure supporting the intended two-to-five-minute play sessions.

Speed Progression

Retain the current speed progression:

* Starting speed: 4

* Increase per room: 0.4

Do not change speed progression during the pellet-collision or turning tests. Keeping it stable will make test results easier to interpret.

---

Measurement and Poki Analytics

Custom telemetry may not be practical or available in the current Poki integration.

Before defining new analytics requirements, verify which metrics and custom events Poki currently supports.

At minimum, use any available Poki data to review:

* Session duration

* Early exits

* Device category

* Platform or browser breakdown

* Gameplay start rate

* Return rate, if available

Where analytics cannot measure specific control failures, rely on structured playtest observation.

Playtest Observation Checklist

Record whether the player:

* Receives the correct control method

* Starts moving without assistance

* Misses a pellet during a visually valid pass

* Circles around a pellet

* Attempts a turn that does not execute

* Drags outside the joystick boundary

* Taps a locked skin and understands the result

* Completes Room 1

* Exits during Room 1

Do not make custom telemetry a release requirement until Poki capabilities have been confirmed.

---

Test Hypotheses

Hypothesis 1 — Tablet Accessibility

Correctly displaying touch controls on tablets will substantially reduce immediate abandonment among affected tablet players.

Hypothesis 2 — Pellet Forgiveness

A small increase in pellet collision bounds will reduce repeated approaches and circling behavior without requiring major movement changes.

Hypothesis 3 — Joystick Reliability

Expanding the joystick interaction area will reduce accidental control loss caused by imprecise dragging.

Hypothesis 4 — Turning

If collision adjustments are insufficient, a wider turn window or single buffered input will improve turning reliability without weakening the core Snake challenge.

Hypothesis 5 — Shop Feedback

Clear locked-skin feedback will prevent players from interpreting unavailable purchases as broken UI.

---

Phase 7.2 Exit Criteria

Phase 7.2 is complete when:

* Previously affected tablets consistently receive touch controls.

* Players can collect pellets without excessive alignment correction.

* The joystick remains active during normal imprecise dragging.

* Locked skins clearly explain why they cannot be selected or purchased.

* Room 1 can be completed without recurring control-related confusion.

* Any remaining turning problems have either been resolved or clearly isolated.

* No major regression appears in desktop controls, movement difficulty, or shop transactions.

---

Suggested Version Note

“Control and usability update improving tablet detection, pellet collection, virtual joystick reliability, grid turning, and locked-skin feedback.”

---

What to Watch Next

* Whether tablet players receive the joystick immediately

* Whether a larger pellet trigger resolves circling behavior

* Whether joystick dragging remains active outside the visual bounds

* Whether players still miss valid perpendicular turns

* Whether locked-skin interactions are understood

* Whether Room 1 completion and session duration improve

Developer Notes

The only actual change from the original game as the update to Unity's new input system and a virtual Joystick in the mobile version.
It feels like our code is mistakenly resolving tablets as Desktop which creates a blocker because the player has no virtual joystick to control the character. This should be fixed primarily.

Current GDD / Game State

# IcoBitZip / Hi-Fi Snake

Project type: A Unity Game / Unity Project.

# Diary Notes
2026 - July - 15th
Ideation setup is completed
Ideation phase 5 is under `Ideation\hi-fi-snake-game-concept.md`
Ideation phase 6 is under `Ideation\hi-fi-snake-experiment-setup.md`

2026 - July - 16th
This project has started as a clean Vault Retest project, without much changes from the original mobile game but now, after its first playtests we will start the adaptation proceess. Basically `ideation/GAME_CONCEPT.md` starts to become history record instead of actual project design and goals source of truth.

## Game Overview
IcoBitZip is a grid-based runner/collector game where the player advances through rooms, gathers pieces, avoids hazards, and opens doors that require collected pieces.

Core loop:
1. Move the character on a grid.
2. Collect pieces to grow your tail/resource count.
3. Reach doors and spend required pieces to progress.
4. Survive hazards and push distance/progression further.

This project doesn't use MMCore.

## Game Design Notes

### Controls
- Mobile: virtual joystick (OnScreenStick).
- Desktop: keyboard movement (WASD and Arrow Keys).
- Movement intent is consumed through the grid-direction provider path and converted into grid turns.
- `JoystickControls` resolves mobile-vs-desktop at runtime for WebGL UI presentation.

Design intent:
- Controls should feel immediate and readable.
- The player should always understand available input on desktop and mobile.

## Current Codebase Snapshot (Small Assessment)
This project is built on the Manifesto/MMCore-style service architecture and scene/gameplay modules.

Key systems currently visible in code:
- Grid movement and directional turning.
- Room progression + door requirement checks.
- Piece collection and tail consumption.
- Match lifecycle (start, death, game over).
- Platform integration via PlayGama service.

### Current Input State
- Playable and stable with current controls.
- Active production flow is joystick + keyboard through the grid-direction provider architecture.
- Joystick visuals and the mobile hint are now hidden on desktop browser contexts.
- Desktop hint support is optional and can be wired into `JoystickControls.desktopHint` when the UI asset exists.

## Project Plan

### Implemented - Runtime Control Hint Selection
`JoystickControls` now keeps the input popup alive but switches visible UI based on resolved device form factor.

Runtime behavior:
- Mobile/tablet: show joystick visuals and the mobile hint.
- Desktop: hide joystick visuals and the mobile hint, then show the optional desktop hint if assigned.
- Missing hint references are allowed, so the current prefab works before the desktop hint exists.

Device resolution:
- Editor defaults to desktop in `Auto`.
- `JoystickControls.deviceOverride` can force desktop or mobile for editor/development testing.
- WebGL `Auto` uses Playgama device type when available, otherwise falls back to browser checks through `IcoBitZipDevice.jslib`.

Browser fallback signals:
- `navigator.userAgentData.mobile` when available.
- `matchMedia("(pointer: coarse)")`, `matchMedia("(hover: none)")`, and `navigator.maxTouchPoints`.
- User-agent string only as a final fallback.

### Implemented - Player Speed Progression Per Room
To soften early difficulty while keeping escalation, player speed now starts lower and scales when entering new rooms.

Architecture:
- `GridMover` exposes runtime speed (`RuntimeSpeed`) and effective speed (`EffectiveSpeed`) but does not contain progression rules.
- `PlayerSpeedResolver` is responsible for progression logic and applies runtime speed updates to the player mover only.
- Room progression signal source is `IcoBitZipIngameScene.OnNewRoom`.

Current tuning (v1):
- `startSpeed = 4`
- `speedPerRoom = 0.4`
- `maxSpeed = 12`

Rule:
- Room 1 starts at 4.
- Entering room 2 already increases speed.
- Formula: `speed = min(12, 4 + (roomIndex - 1) * 0.4)`.

Design intent:
- Easier onboarding for players struggling in first rooms.
- Predictable progression and easy balancing via 3 variables.
- Hazard speed remains unchanged.

### Next Step - Desktop Hint Asset
Create and wire the desktop control hint:
- Place it under `JoystickControls.prefab` in the existing bottom control band.
- Communicate WASD + Arrow Keys.
- Assign it to `JoystickControls.desktopHint`.
- Ensure `HideOnJoystickMove` also hides the desktop hint after the player moves.

### Following Step - Portal SDK Abstraction + Poki Playtest
Integrate Poki SDK for playtesting while keeping PlayGama support:
- Keep existing PlayGama integration functional.
- Introduce/extend a portal abstraction layer to handle PlayGama, Poki, and future portals.
- Route portal-specific features (ready signal, ads, storage hooks, etc.) through this abstraction.

Target outcome:
- Single gameplay code path with portal-specific adapters.
- Easy switching of portal backend per build target.

### Implemented - Active-Input Player Movement
Player movement mode is now selected through a service prefab in the active `ServiceManager-Services-*` preset.

Current mode:
- `ActiveInputPlayerMovementService` is enabled in the active service preset.
- Player movement only runs while the virtual joystick or keyboard movement action is actively producing input.
- Releasing input stops the player immediately, even mid-cell.
- Robot animation now follows the same active movement state: active movement crossfades to `Running`, standing still crossfades to `Idle`.
- Door opening and death still force movement to stop.
- Grid turn behavior is selected on `GridInput.turnMode`.
	- `PerpendicularAndReverse`: 90-degree turns and 180-degree reversals are allowed.
	- `PerpendicularOnly`: only 90-degree turns are allowed; holding the opposite direction stops movement while held.

Revert/swap option:
- `AutoWalkPlayerMovementService` exists as the previous auto-walk behavior option.
- To restore auto-walk, replace `ActiveInputPlayerMovementService` with `AutoWalkPlayerMovementService` in the active service preset.
- Do not include both movement service prefabs at the same time because both register as `PlayerMovementService`.

Design intent:
- Intentional player-driven movement at all times.
- Cleaner interaction pacing for talk/interaction moments.
- Easy behavior switching without changing player prefab wiring.

## Cheat Sheet (To Expand)
- Reset progress: TBD (document exact persistence keys/flow once mapped).
- Skip flow/testing shortcuts: TBD.
- Portal test switches (PlayGama/Poki): TBD.
- Movement mode:
	- Active input: use `ActiveInputPlayerMovementService` in the active `ServiceManager-Services-*` preset.
	- Auto walk: use `AutoWalkPlayerMovementService` in the active `ServiceManager-Services-*` preset.
	- Only one `PlayerMovementService` prefab should be present in the service preset.
- Turn mode:
	- `GridInput.turnMode = PerpendicularAndReverse`: allows reversing direction.
	- `GridInput.turnMode = PerpendicularOnly`: keeps classic 90-degree turns and stops on opposite input.
- Player speed tuning variables:
	- `startSpeed`: first room speed.
	- `speedPerRoom`: increment applied on each new room.
	- `maxSpeed`: hard cap for late-run speed.
- Control UI testing:
	- `JoystickControls.deviceOverride = Auto`: Editor behaves as desktop; WebGL resolves from portal/browser.
	- `ForceDesktop`: hides mobile joystick visuals and mobile hint.
	- `ForceMobile`: shows mobile joystick visuals and mobile hint.

### Quick Verification Matrix (Portal Builds)

| Mode | Define Symbols (WebGL) | Expected Template | Expected Runtime Behavior | Quick Pass Criteria |
|---|---|---|---|---|
| Playgama | `PLAYGAMA_BUILD;DOTWEEN` | `PROJECT:Bridge` | Playgama bridge initializes; game sends ready message through `PlayGamaService` | Game boots, no missing-service errors, Playgama calls succeed |
| Poki | `POKI_BUILD;DOTWEEN` | `PROJECT:poki-template` | Poki SDK initializes; loading start/finished flow runs | Game boots, no missing-service errors, Poki init completes |
| Clean | `DOTWEEN` | Neutral template (not Poki, not Bridge) | No Poki/Playgama SDK initialization; local persistence fallback is used | Game boots, no SDK init logs/errors, gameplay/save loop works |

Validation rules:
- Never enable `PLAYGAMA_BUILD` and `POKI_BUILD` together.
- `ServiceManager.prefab` currently points to `ServiceManager-Services-Poki.asset`.
- If `PLAYGAMA_BUILD` is enabled, WebGL template must be `PROJECT:Bridge` and `ServiceManager.prefab` should point to `ServiceManager-Services-Playgama.asset`.
- If `POKI_BUILD` is enabled, WebGL template must be `PROJECT:poki-template` and `ServiceManager.prefab` should point to `ServiceManager-Services-Poki.asset`.
- If neither symbol is enabled, use a neutral template and `ServiceManager-Services-Clean.asset`.
- `ServiceManager-Services-Poki.asset` must include `PokiService` and must not include `PlayGamaService`.
- `ServiceManager-Services-Playgama.asset` must include `PlayGamaService` and must not include `PokiService`.
- `ServiceManager-Services-Clean.asset` must not include `PokiService` or `PlayGamaService`.
- `WebPersistenceService` is shared by portal and clean presets; in Playgama builds it syncs through Bridge storage, otherwise it uses local `PlayerPrefs`.
- `PortalAdService` is shared by all presets; it only supports ads in Playgama builds and acts as a no-op fallback elsewhere.

### Local WebGL Test via Python Server (Windows PowerShell)
Use this when testing already exported builds inside builds/.

1. Open PowerShell in the project root.
2. Pick the build folder you want to test (example: build004).
3. Start a local HTTP server from that build folder.

	cd builds/build004
	py -m http.server 8080

If py is not available, use:

	python -m http.server 8080

4. Open the browser at:

	http://localhost:8080

5. Stop the server with Ctrl+C in the same terminal.

Notes:
- Run the server from the specific build folder that contains the exported index.html.
- If one build fails, test another build folder the same way (for example build002, build003, build004).
- If local loading fails due to compression or MIME behavior, generate a Development WebGL build with Decompression Fallback enabled for local verification.

Raw CSV / Spreadsheet Text

Hi Fi Snake,26-jul.-12,7496140b-a843-46a9-b1f5-536654dffc61,BR,00:45,2,Chrome,Mobile Android,both,"ANGLE (Qualcomm, Adreno (TM) 610, OpenGL ES 3.2)",8,2.75,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36",Control precision seems to be an issues here - player spent a good amount of time circling around a single pellet trying to get it.
Hi Fi Snake,26-jul.-12,7496140b-a843-46a9-b1f5-536654dffc61,BR,01:27,3,Chrome,Mobile Android,both,ANGLE ((Samsung Xclipse 940) on Vulkan 1.3.279),10,2.8125,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36",Level seemed too hard; Too much text to read or difficult to understand
Hi Fi Snake,26-jul.-12,7496140b-a843-46a9-b1f5-536654dffc61,ES,03:35,3,Chrome,Mobile Android,both,Mali-G57,8,2.75,"Mozilla/5.0 (Linux; Android 10; M2007J22G Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/150.0.7871.46 Mobile Safari/537.36","Even with a very slow speed in the first room now, the game still feels hard to control even for players that continue playing after 1 or 2 minutes like this one. Speed can be reduced, proportional to sitck displacement or we can also have an acceleratoin"
Hi Fi Snake,26-jul.-12,7496140b-a843-46a9-b1f5-536654dffc61,US,00:28,1,Chrome,Tablet Android,both,"ANGLE (ARM, Mali-G52 MC2, OpenGL ES 3.2)",8,1,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36",There was a technical bug
Hi Fi Snake,26-jul.-12,7496140b-a843-46a9-b1f5-536654dffc61,BR,00:25,1,Chrome,Tablet Android,both,"ANGLE (ARM, Mali-G68, OpenGL ES 3.2)",8,1.5,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36",There was a technical bug; Something else: There seems to be quite a few mobile devices being resolved as desktop
Hi Fi Snake,26-jul.-12,7496140b-a843-46a9-b1f5-536654dffc61,EC,01:28,2,Chrome,Mobile Android,both,Mali-G57 MC2,8,2.75,"Mozilla/5.0 (Linux; Android 16; Infinix X6855 Build/BP2A.250605.031.A3; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/149.0.7827.159 Mobile Safari/537.36",The user tried to pull the joystick a few times before being able to actually move (maybe we should increase the virtual joystick size). A bigger joystick might also make control more precise.
Hi Fi Snake,26-jul.-12,7496140b-a843-46a9-b1f5-536654dffc61,BR,01:12,1,Samsung Internet,Mobile Android,both,ANGLE ((Samsung Xclipse 530) on Vulkan 1.3.279),8,2.8125,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/30.0 Chrome/143.0.0.0 Mobile Safari/537.36","The player opened the skin store and the mission popup before trying to play. Even release the joystick to pause and using again to turn, it is hard (feels like we really need acceleration or slow down - maybe pellets are bigger?). Tapping customization skins without enough currency gave no feedback (player looked confused)"
Hi Fi Snake,26-jul.-12,7496140b-a843-46a9-b1f5-536654dffc61,MX,00:23,1,Chrome,Tablet Android,both,"ANGLE (ARM, Mali-G57 MC2, OpenGL ES 3.2)",8,13.312.501,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",There was a technical bug; Something else: Mobile being resolved as Desktop
Hi Fi Snake,26-jul.-12,7496140b-a843-46a9-b1f5-536654dffc61,TR,00:47,1,Chrome,Tablet Android,both,"ANGLE (ARM, Mali-G610, OpenGL ES 3.2)",8,1.875,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",Poki resolved the device as a tablet (seems correct) but our code resolved as Desktop (the WASD keys tutorial appeared)
Hi Fi Snake,26-jul.-12,7496140b-a843-46a9-b1f5-536654dffc61,DK,00:02,1,Opera,Desktop Windows,both,"ANGLE (AMD, AMD Radeon 740M Graphics (0x000015C8) Direct3D11 vs_5_0 ps_5_0, D3D11)",12,1,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36 OPR/132.0.0.0",User got stuck; Too much text to read or difficult to understand
Hi Fi Snake,26-jul.-5,33c667e8-e525-4f02-a1c1-d8066f211270,JP,02:08,8,Chrome,Mobile Android,both,"ANGLE (ARM, Mali-G57 MC2, OpenGL ES 3.2)",8,2,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Mobile Safari/537.36",
Hi Fi Snake,26-jul.-5,33c667e8-e525-4f02-a1c1-d8066f211270,VN,00:42,2,Chrome,Mobile Android,both,"ANGLE (Qualcomm, Adreno (TM) 735, OpenGL ES 3.2)",8,3,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Mobile Safari/537.36",
Hi Fi Snake,26-jul.-5,33c667e8-e525-4f02-a1c1-d8066f211270,NP,00:41,2,Chrome,Mobile Android,both,"ANGLE (Imagination Technologies, PowerVR Rogue GE8320, OpenGL ES 3.2)",8,2,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Mobile Safari/537.36",
Hi Fi Snake,26-jul.-5,33c667e8-e525-4f02-a1c1-d8066f211270,VN,00:43,1,Chrome,Mobile Android,both,"ANGLE (ARM, Mali-G57, OpenGL ES 3.2)",8,2,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Mobile Safari/537.36",
Hi Fi Snake,26-jul.-5,33c667e8-e525-4f02-a1c1-d8066f211270,VN,00:44,2,Chrome,Mobile Android,both,"ANGLE (Qualcomm, Adreno (TM) 610, OpenGL ES 3.2)",8,2.8125,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Mobile Safari/537.36",
Hi Fi Snake,26-jul.-5,33c667e8-e525-4f02-a1c1-d8066f211270,IN,00:22,1,Chrome,Mobile Android,both,"ANGLE (Imagination Technologies, PowerVR Rogue GE8320, OpenGL ES 3.2)",8,2.0625,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36",User didn’t understand the controls; User got stuck; Something else: tried to move the joystick but without touching in it
Hi Fi Snake,26-jul.-5,33c667e8-e525-4f02-a1c1-d8066f211270,JP,00:08,1,Chrome,Mobile Android,both,"ANGLE (ARM, Mali-G615 MC2, OpenGL ES 3.2)",8,2.625,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Mobile Safari/537.36",User got bored; Something else: user tried to d o a 180 from going left to right and it didn't work. left
Hi Fi Snake,26-jul.-5,33c667e8-e525-4f02-a1c1-d8066f211270,MX,00:20,1,Chrome,Mobile Android,both,Adreno (TM) 619,8,2.5,"Mozilla/5.0 (Linux; Android 16; moto g85 5G Build/W1UOS36H.35-39-2; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/150.0.7871.46 Mobile Safari/537.36",
Hi Fi Snake,26-jul.-5,33c667e8-e525-4f02-a1c1-d8066f211270,JP,00:06,1,(not set),Tablet Android,both,Mali-G52 MC2,8,1.5,"Mozilla/5.0 (Linux; Android 11; KFTUWI) AppleWebKit/537.36 (KHTML, like Gecko) Silk/148.4.3 like Chrome/148.0.7778.265 Safari/537.36",Something else: very low FPS - quit early
Hi Fi Snake,26-jul.-5,33c667e8-e525-4f02-a1c1-d8066f211270,UY,00:31,2,Chrome,Mobile Android,both,"ANGLE (ARM, Mali-G52 MC2, OpenGL ES 3.2)",8,1.5,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36",User didn’t understand the controls; Level seemed too hard; Something else: Tried to pull the controller from the far left
Hi Fi Snake,26-jul.-5,8ce73326-9ebf-4cc1-a959-c2f6b7a3ebaf,BR,00:49,1,Chrome,Mobile Android,both,"ANGLE (ARM, Mali-G52, OpenGL ES 3.2)",8,1.75,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Mobile Safari/537.36",User didn’t understand the controls; User got stuck
Hi Fi Snake,26-jul.-5,8ce73326-9ebf-4cc1-a959-c2f6b7a3ebaf,ID,00:59,3,Chrome,Mobile Android,both,PowerVR Rogue GE8320,8,2,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36",
Hi Fi Snake,26-jul.-5,8ce73326-9ebf-4cc1-a959-c2f6b7a3ebaf,ID,01:04,3,Chrome,Mobile Android,both,"ANGLE (ARM, Mali-G57 MC2, OpenGL ES 3.2)",8,2.75,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Mobile Safari/537.36",
Hi Fi Snake,26-jul.-5,8ce73326-9ebf-4cc1-a959-c2f6b7a3ebaf,US,00:28,2,Chrome,Tablet Android,both,"ANGLE (ARM, Mali-G615 MC2, OpenGL ES 3.2)",8,1.5,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36",User didn’t understand the controls
Hi Fi Snake,26-jul.-5,8ce73326-9ebf-4cc1-a959-c2f6b7a3ebaf,BR,00:41,3,Edge,Desktop Windows,both,"ANGLE (Intel, Intel(R) UHD Graphics (0x00004628) Direct3D11 vs_5_0 ps_5_0, D3D11)",12,1,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36 Edg/150.0.0.0",
Hi Fi Snake,26-jul.-5,8ce73326-9ebf-4cc1-a959-c2f6b7a3ebaf,ID,00:41,0,Chrome,Mobile Android,both,"ANGLE (ARM, Mali-G52 MC2, OpenGL ES 3.2)",8,2,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Mobile Safari/537.36",User didn’t know where to click or press; User got stuck; Something else: Player pressed all the buttons on the screen and acessed the quest and shop but never entered gameplay
Hi Fi Snake,26-jul.-5,8ce73326-9ebf-4cc1-a959-c2f6b7a3ebaf,MX,01:52,4,Chrome,Tablet Android,both,"ANGLE (ARM, Mali-G57, OpenGL ES 3.2)",8,1.3125,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",
Hi Fi Snake,26-jul.-5,8ce73326-9ebf-4cc1-a959-c2f6b7a3ebaf,JP,00:45,5,Chrome,Tablet Android,both,"ANGLE (ARM, Mali-G52 MC2, OpenGL ES 3.2)",8,1.5,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36",Level seemed too hard; User got stuck
Hi Fi Snake,26-jul.-5,8ce73326-9ebf-4cc1-a959-c2f6b7a3ebaf,BR,00:04,0,(not set),Tablet Android,both,Mali-G52 MC2,8,1.5,"Mozilla/5.0 (Linux; Android 11; KFTUWI) AppleWebKit/537.36 (KHTML, like Gecko) Silk/148.4.3 like Chrome/148.0.7778.265 Safari/537.36",There was a technical bug
Hi Fi Snake,26-jul.-5,8ce73326-9ebf-4cc1-a959-c2f6b7a3ebaf,VN,00:33,2,Chrome,Mobile Android,both,"ANGLE (ARM, Mali-G57 MC2, OpenGL ES 3.2)",8,2.8125,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Mobile Safari/537.36",User got bored; Something else: in the 2nd play i got the impression the player was tryingo to move from outside the joystick
Hi Fi Snake,26-mai.-3,cb117e09-a8ba-4c43-a797-d7424e355db1,US,13:42,0,Chrome,Desktop Windows,both,"ANGLE (AMD, AMD Radeon(TM) Graphics (0x00001636) Direct3D11 vs_5_0 ps_5_0, D3D11)",8,1.5,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",Something else: Screen was black the whole time
Hi Fi Snake,26-mai.-3,cb117e09-a8ba-4c43-a797-d7424e355db1,MY,14:04,3,Opera,Tablet Android,both,Mali-T720,8,1.3125,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 OPR/90.0.0.0","Something else: Low FPS, player was stuck at menu the whole time"
Hi Fi Snake,26-mai.-3,cb117e09-a8ba-4c43-a797-d7424e355db1,CN,01:28,0,Edge,Desktop Windows,both,"ANGLE (Intel, Intel(R) Iris(R) Xe Graphics (0x00009A49) Direct3D11 vs_5_0 ps_5_0, D3D11)",8,1.75,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0",There was a technical bug; Something else: Screen was black the whole time
Hi Fi Snake,26-mai.-3,cb117e09-a8ba-4c43-a797-d7424e355db1,CO,00:52,2,Chrome,Mobile Android,both,Mali-G57 MC2,8,2.8125,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36",User didn’t know where to click or press; User didn’t understand the controls
Hi Fi Snake,26-mai.-3,cb117e09-a8ba-4c43-a797-d7424e355db1,IN,00:32,1,Chrome,Desktop Windows,both,"ANGLE (AMD, AMD Radeon (TM) Graphics (0x000015E7) Direct3D11 vs_5_0 ps_5_0, D3D11)",16,1.25,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",User didn’t understand the controls; User got stuck
Hi Fi Snake,26-mai.-3,cb117e09-a8ba-4c43-a797-d7424e355db1,IN,02:08,6,Chrome,Mobile Android,both,Adreno (TM) 613,8,2.75,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36",User didn’t know where to click or press; User didn’t understand the controls
Hi Fi Snake,26-mai.-3,cb117e09-a8ba-4c43-a797-d7424e355db1,BR,00:42,2,Samsung Internet,Mobile Android,both,Mali-G57 MC2,8,1.875,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/29.0 Chrome/136.0.0.0 Mobile Safari/537.36",User didn’t know where to click or press; User didn’t understand the controls
Hi Fi Snake,26-mai.-3,cb117e09-a8ba-4c43-a797-d7424e355db1,MX,00:12,1,Chrome,Mobile Android,both,"ANGLE (ARM, Mali-G52 MC2, OpenGL ES 3.2)",8,1.875,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36",User didn’t know where to click or press
Hi Fi Snake,26-mai.-3,cb117e09-a8ba-4c43-a797-d7424e355db1,US,00:11,1,Edge,Desktop Windows,both,"ANGLE (AMD, AMD RadeonT 610M (0x00001506) Direct3D11 vs_5_0 ps_5_0, D3D11)",8,1.25,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36 Edg/147.0.0.0",User didn’t understand the controls
Hi Fi Snake,26-mai.-3,cb117e09-a8ba-4c43-a797-d7424e355db1,US,00:31,3,Chrome,Tablet Android,both,Mali-G71,8,1.875,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",User didn’t know where to click or press; User didn’t understand the controls
Hi Fi Snake,26-mai.-3,cb117e09-a8ba-4c43-a797-d7424e355db1,PE,01:05,0,Chrome,Mobile Android,both,Mali-G52 MC2,8,2,"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36",There was a technical bug