About project
Ball Sort Game2026Concept
Every control a casual puzzle needs, and the board still wins the screen.
Ball Sort is a casual mobile puzzle for players aged 35 to 50. Working solo, I designed the game and win screens, drew every flask and ball from scratch, and made yarn and wooden ball materials for Unity. The result is a prototype you can play here, with all 66 colour pairs checked at the real 34 px size.
- Role
- UI/UX designer & game artist, solo
- Client
- Ball Sort · casual puzzle for mobile
- Platform
- Game · Mobile
- Tools
- Figma, Unity
Challenges
The main screen carries twelve elements, from the level number, store and rating to the extra flask for an ad and a banner that always owns the bottom. At equal weight that is a control panel, not a game. The real problem was hierarchy: the board has to win the screen, and everything else waits its turn.
- 12 elements on one screen, and none can go: each is gameplay, progress or revenue
- Up to 12 colours on balls about 34 px across
- Free space above the flasks for the lifted ball, and an ad banner always at the bottom
- A calm, grown-up palette rather than neon, for an audience of 35 to 50
- The player
- is 35 to 50, about half of them women: targets have to be generous, contrast high, and twelve ball colours apart at a glance.
- The business
- sits in four of the twelve: the store, rating, daily mode and the flask for an ad. None can hide, and none may drown the board.
Solutions
- 01
Three bands, placed by habit rather than novelty
I split the screen by function into three bands: the stats, the board, and the controls with the banner under them. Placement follows the genre on purpose, balance top right and pause top left, because people already know where to look. Every button is large, and the ones that drive the level are a size up.
Trade-offPlacing by convention gives up the chance to surprise. For this audience recognition is worth more: nobody should hunt for pause in a casual puzzle.
- 02
Two icon families tell level from metagame
The icons look inconsistent, and that is the point. They split into two groups by meaning: control of the current level (pause, restart, undo, the extra flask) and the metagame (balance, rating, dailies). The player tells, without learning it, what changes this level and what changes overall progress.
Trade-offOne icon style would look tidier on a style sheet. Two cost that uniformity, and in return the style itself carries a message the player reads for free.
- 03
Readability measured at game size, not at showcase size
The yarn and wood textures looked right at 216 px and turned into a blob at the real 34 px. I tuned the renders and the colour blend, then checked all 66 colour pairs at game size: the closest sat at 5.3, and now the minimum is 13.98 for yarn and 14.53 for wood, with no hex code changed.
Trade-offContrast came from lightness rather than new colours, so the palette stays one system. The price: one pair for yarn and two for wood still sit just under the comfortable threshold of 15.
- 04
A win screen that only leads forward
The key decision is colour: the game lives on purple, so the win takes a blue accent, because players see this screen after every level and it has to feel different at once. Only what matters stays: the coins earned, the rating and the way on.
Trade-offNo menu and no restart means one more tap for a player who wants to leave. That is the intent: the screen keeps the player in the loop instead of showing the exit.
Results
The screens, every flask state and both materials come together in a playable prototype, so the game is judged in play. The material pipeline was built with Claude on my approach: the colouring method, the 34 px check and the choice of skins were mine.
Reflection
- A texture that works at showcase size proves nothing. The 34 px check found a problem the 216 px sheet hid completely.
- Genre convention is a feature for this audience, not a lack of ideas. The personality went into the materials and the win screen instead.
- Packing assets for Unity is not my daily routine. Pairing with Claude got it done; next time I would agree the export format with the engineers first.

