Back to selected work

Oddletics · Browser games

A quick round. A score to beat.

I built a browser sports arcade with basketball, archery, sprint and curling. Play a quick round, beat your best or challenge a friend.

Oddletics game selection with illustrated basketball, archery, sprint and curling gamesView full screenshot

Live browser release · 19 September 2026.

The problem

I started with the idea of an Olympics-style competition for everyday people, played in a browser. It needed games you could learn quickly on a keyboard, mouse or phone, with a score worth coming back to beat.

What I built

I built four sports with their own rules and Canvas artwork, then shared the navigation, settings, results and scorecards between them. A separate server checks submitted rounds before they can enter the daily rankings.

  1. Choose

    Pick a sport and difficulty, or open a friend's challenge code.

  2. Play

    Shoot a basket, aim an arrow, find a running rhythm or guide a curling stone.

  3. Try again

    Beat your best, challenge a friend or choose to publish your result.

What I had to get right

  1. Keep the rules separate from the drawing

    Each sport has its own rules, separate from Canvas rendering. Basketball advances in fixed steps so extra drawing frames do not change the shot.

  2. Separate sharing from ranking

    Challenge codes carry the sport, difficulty and a result to beat. Basketball, archery and curling also preserve the course. Public rankings use server-checked rounds; a shared code is not proof of a score.

  3. Make the small details feel connected

    The same athletes and kit colours carry through the collection, games and scorecards. Music and effects have separate controls, and saved preferences carry between games.

How I check it

  • Game-rule tests cover scoring, difficulty, challenge validation and server replay.
  • Browser checks cover touch, mouse and keyboard controls, interrupted rounds, audio, sharing and saved preferences.
  • Server and database tests cover score publication, concurrent updates, profile deletion and daily ranking boundaries.

The result

All four games are live, with personal bests, challenge codes, shareable scorecards and optional daily player and country rankings. Players can keep their results private or choose to publish them.

Where it stops short

Personal bests are kept in browser storage and can be lost if it is cleared. Shared challenge scores remain unverified; publishing to the online rankings is a separate, server-checked step.

Have a similar problem?

Let’s talk about your project