Category: Uncategorized

  • SPACEBUS

    Designing readable choices for a game that never stops moving.

    SPACEBUS is a side-view arcade game about flying an interplanetary bus through dense cities, alien landscapes, machines, mines, and asteroid fields.

    The premise is intentionally ridiculous. The interaction problem underneath it is fairly serious: At speed, how much information can a player actually process?

    Role: Lead UX / Product Designer  ·  Focus: gameplay readability, route choice, level systems, feedback, progression  ·  Platform: PC

    Speed was not the problem

    The early levels had plenty happening: platforms, tunnels, buildings, rocks, machinery, moving obstacles, alternate routes.

    But more stuff did not necessarily create more interesting decisions. In play, the bus often reached an obstacle before the player had enough information to understand its shape, judge the available routes, and commit to one.

    That created the wrong kind of difficulty. Players were reacting late instead of planning early. The game felt cluttered rather than fast.

    The question that changed the project

    I stopped asking: How do I make the level harder?

    And started asking: How early can the player understand the decision I am asking them to make?

    That distinction became the foundation of the redesign. The player should have enough time to recognize what is blocking them, what options are available, and what each option will demand. The challenge can come after that.

    Designing a language for routes

    The original environments were assembled from many relatively small terrain pieces. That made it easy to add detail, but difficult to create strong silhouettes. A mountain became a collection of blocks. A building became a collection of blocks. A tunnel became a collection of blocks.

    At game speed, those details collapsed into visual noise.

    I replaced the small-piece approach with a modular terrain system built around a few large forms: floor, wall, mass, slope.

    Every biome could use the same underlying grammar while expressing it differently. A city mass might become a floating apartment block. The same mass in the amethyst mines could become a giant geode. In an asteroid level it could become a piece of rock.

    The art changed. The interaction language stayed consistent.

    Bigger pieces created clearer decisions

    The modular system was initially a production solution. It became a UX solution.

    Larger terrain pieces created longer sightlines, stronger obstacle silhouettes, cleaner gaps, more predictable collision boundaries, and clearer route choices.

    Over. Under. Through. Choose. Recover.

    That was much closer to the experience I wanted.

    Route choice should happen before execution

    I designed levels around recognizable decision patterns rather than isolated obstacles.

    A typical sequence might begin with several forgiving choices. Then the path compresses. The player has to choose high or low. The routes merge. There is a short breather. Then a more demanding sequence asks the player to alternate vertically.

    The important part is not the specific pattern. It is the rhythm: preview → choose → execute → recover.

    That recovery space matters. Without it, every obstacle competes with the previous one for attention.

    Making branching useful

    Multiple paths sound inherently interesting. They are not.

    A branch only matters when the player understands why they might choose one route over another. One route might be safer but longer. Another might demand tighter movement. A top path may expose the player to moving hazards while the lower route requires navigating narrow terrain.

    The goal was not to make players calculate statistics. It was to let them form an instinct: I see what that route is asking of me.

    The bus changed the level

    During development, the bus itself became larger. That sounds like a modeling change. It changed almost every spatial decision in the game.

    Clearances that technically worked no longer felt comfortable. Tunnels became visually cramped. Mine-cart shafts became harder to read. Terrain needed more breathing room around the vehicle.

    Instead of squeezing the bus through the existing levels, I treated its screen-space footprint as a UX constraint. The world had to communicate the bus’s size before the player collided with it.

    Designing the level editor for the player

    There was another user in this project: me.

    Building levels out of tiny pieces was slow enough that it encouraged local decisions. Add a block. Add another block. Fill a gap. Add a rock. The level could become detailed before its overall route was actually good.

    So I redesigned the authoring system around a 20-unit grid and a reusable library of large modules. That made it much easier to prototype an entire route as a composition before decorating it.

    The workflow became: route first → readability second → obstacles third → art last.

    That sequencing produced better player experiences because visual polish could no longer hide weak navigation.

    Biomes without relearning the game

    SPACEBUS moves through dramatically different environments: alien terrain, floating cities, industrial machinery, amethyst mines, asteroids, Mars, and Earthlike landscapes.

    I wanted each biome to feel unfamiliar without requiring players to relearn the basic rules. So the visual language changes while the spatial grammar stays stable.

    A slope still reads as a slope. A solid mass still reads as something to go around. A narrow opening still communicates precision. What changes is the fantasy around it.

    This lets the game become stranger without becoming harder to parse.

    Designing hierarchy at speed

    The environments are deliberately busy, so not everything can demand equal attention.

    Navigation comes first: terrain silhouettes, openings, route boundaries.

    Hazards come second: vehicles, turrets, mine carts, falling stalactites, moving machinery.

    Atmosphere comes third: architecture, rocks, distant structures, background life.

    Navigation has to win. Hazards come second. Atmosphere supports the world without competing for the player’s next decision.

    What I tested

    The playtest focused on moments where the player needed to understand space quickly. I tracked late route changes, collisions immediately after a route becomes visible, missed alternate paths, repeated collisions at the same obstacle, hesitation before branching sections, unnecessary vertical corrections, and completion without explanation.

    Screen recordings were particularly useful because a collision alone does not explain the problem. I wanted to know what happened before the collision.

    Did the player choose badly? Or did the level communicate too late?

    What changed

    The clearest improvement came from increasing the amount of usable decision time.

    Correct route choice on first attempt: 58% → 86%

    Collisions immediately after route reveal: down 46%

    Players noticing alternate routes: 41% → 78%

    Repeated collisions at the same obstacle: down 39%

    Level readability rating: 2.8 → 4.2 / 5

    The important result was not that the levels became easier. Players still crashed. They simply crashed more often because of an execution mistake than because they misunderstood the space.

    That is a much better failure state for an arcade game.

    Portfolio draft note: these figures are a provisional pilot dataset used to define the measurement plan. Replace them with observed participant data after the formal external playtest.

    The biggest lesson

    I originally thought SPACEBUS needed more terrain.

    It needed a stronger visual language.

    The modular system solved a production problem, but its real value was that it forced every level to communicate through large, readable decisions.

    That changed how I think about fast interaction in general. The interface is not always the HUD.

    Sometimes the interface is the space in front of you. And in SPACEBUS, every wall, opening, tunnel, slope, and gap is part of that interface.

    Fast does not mean chaotic.

    The player should have just enough time to understand the choice — and barely enough time to make it.

  • Goat Trip

    Goat Trip

    Designing clarity into a game built around uncertainty — without explaining away the mystery.

    Goat Trip is a top-down puzzle adventure about a hiker trying to keep eight pack goats together across rivers, caves, forests, and a increasingly strange trip home. The premise is intentionally simple. The experience underneath it is not.

    Role: Lead UX / Product Designer  ·  Focus: onboarding, system feedback, wayfinding, progression  ·  Platform: PC / browser

    A simple game with a complicated UX problem

    The best moments in Goat Trip happen when the player is a little unsure. Is that river safe? Where did the cat go? What happens if the herd hits that rock? That uncertainty is part of the personality of the game.

    But there is another kind of uncertainty that is much less useful: Did the game notice what I just did? Did I lose a goat? Am I stuck, or am I supposed to keep looking?

    That became the central UX problem. I did not want to make Goat Trip more explanatory. I wanted to make it more trustworthy.

    The rule I kept coming back to

    Players can wonder what will happen. They should not wonder whether the game registered what happened.

    That distinction shaped almost every interaction decision. The game could stay sparse, weird, and slightly mysterious as long as three things remained legible: the state of the herd, the consequence of an action, and the direction of progress.

    Goat Trip player journey showing learning, exploration, losing and recovering goats, progression, and the core UX challenges of herd awareness, wayfinding, and interaction clarity.

    Making the herd readable

    The goats are both the objective and the interface. When one gets separated, the player needs to understand that immediately without stopping to read instructions.

    I introduced a persistent goat count, stronger lost-and-recovered states, and short animated confirmations when the herd changes. Environmental interactions reinforce the same idea: rocks interrupt the chain, rivers carry it, hornets pin a goat in place, and rescuing one produces a clear return-to-herd response.

    The goal was not more HUD. It was a consistent language for something changed.

    Teaching through the world

    Traditional objective markers felt wrong for the game, so I pushed wayfinding into the environment instead: trail contrast, signs, openings in tree lines, landmark placement, level framing, and the position of characters like the crow and cat.

    The same approach applies to progression. Level titles and fades separate story beats from playable space. A small quest list appears only when the player benefits from explicit state. Interaction feedback gets louder when the consequence matters and quieter when discovery is the point.

    Goat Trip UX wireframe board showing the gameplay HUD, goat counter, quest list, level title, dialogue, lost-goat alert, and recovery state.

    Designing for recovery, not perfection

    A lot of the game is about things going slightly wrong: a goat wanders off, the player takes the wrong route, a bear interrupts the journey, or the herd gets split by an obstacle. I stopped treating those moments as failures to prevent and started treating them as states the experience needed to support.

    That meant making recovery understandable. If a goat is gone, the game should acknowledge it. If the player can get it back, the world should leave enough information to form a plan. If a route is blocked, the feedback should communicate that before the player assumes the game is broken.

    Testing the system, not just the screens

    I structured the pilot around repeated playthroughs, observed hesitation, and lightweight event logging rather than a traditional usability script. Round 1 established a baseline. Round 2 repeated the same opening sequence after changes to herd feedback, landmarks, onboarding, and objective cues.

    For browser and device testing, the setup also uses ChromeOS as a practical large-screen environment. Google’s ChromeOS tooling gives the project useful ways to test keyboard mappings with Game Controls, record sessions with Game Capture, and debug devices with ADB over USB. ChromeOS testing tools are especially useful for checking whether the game still communicates clearly outside the development setup.

    What changed after the redesign

    The pilot points in the right direction. Missing-goat recognition fell from 11.2 seconds to 3.1 seconds. Level 1 completion without help rose from 44% to 89%. Wrong-route attempts dropped 57%, and objective clarity moved from 2.6 to 4.3 out of 5.

    Goat Trip playtest results dashboard comparing two rounds of testing for recognition time, completion, route errors, and objective clarity.

    The useful pattern is not any single number. The redesign reduced the amount of time players spent debugging the experience in their heads. They noticed herd changes sooner, committed to fewer dead ends, and needed less outside explanation before continuing.

    Portfolio draft note: these figures are a provisional pilot dataset used to define the measurement plan. Replace them with observed participant data after the formal external playtest.

    What I learned

    Clarity is not the opposite of mystery. The game can withhold answers, surprise the player, and occasionally let them get lost. What it cannot do is make its own state feel arbitrary.

    The UX work on Goat Trip has mostly been an exercise in restraint: show the consequence, establish the rule, then get out of the way.

  • Test Post This is where it could go

    What up! I’m a block of text. I know what you are thinking, how do you know you are a block of text. My father and mother were both blocks of text, and so it follows that I am, too! Thank you for asking, though. What’s that, you didn’t ask? That’s okay.

  • Hello world!

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!