Inspiration

Cricket games often try to recreate an entire match, which can make them difficult to learn and too long for a quick mobile session. We wanted to capture the tension of batting with a much simpler idea: one wicket, short sessions and a score that becomes harder to protect with every delivery.

That idea became CreaseZero—a cricket arcade game where every ball matters.

What it does

CreaseZero is a fast, one-wicket cricket arcade game for Android. Players read each delivery and tap or swipe to choose their shot. Timing and direction determine whether the result is a dot ball, boundary, six or wicket.

The game includes three modes:

  • Endless: Survive for as long as possible and chase a personal best.
  • Daily Challenge: Face a consistent daily bowling sequence and build a streak.
  • Six Rush: Focus on hitting as many sixes as possible.

As an innings progresses, the bowler introduces different combinations of pace, swing, spin, yorkers and bouncers.

Players can earn XP, complete achievements, track their statistics and share their results. Progress is stored locally, allowing the core game to work offline without accounts, cloud saves or a backend.

When an innings ends, players may optionally watch a rewarded advertisement for another wicket or Daily Challenge retry. They can always start a normal new game without watching an advertisement.

How we built it

CreaseZero was built with:

  • React Native
  • Expo
  • TypeScript
  • Android
  • AsyncStorage
  • Google AdMob
  • RevenueCat

The gameplay engine calculates each delivery using its pace, line, length, movement and difficulty. It then compares the delivery with the player's timing and chosen shot direction to determine the outcome.

Endless and Six Rush use procedural delivery generation, while Daily Challenge uses the device's local date as a deterministic seed. This creates a consistent challenge for the day without requiring a server.

Player statistics, achievements, XP, settings and Daily Challenge progress are stored locally with AsyncStorage.

Google AdMob provides optional rewarded advertisements. RevenueCat is used to generate and verify reward transactions before the game grants an extra wicket or retry.

Challenges we ran into

One of the biggest challenges was making the batting system feel simple without making the results feel random. We had to balance delivery speed, timing windows, shot direction and bowling movement so that successful shots felt earned.

Daily Challenge retries also required careful state management. The game needed to remember whether the daily attempt and rewarded retry had already been used while still allowing normal gameplay without an advertisement.

Rewarded ads introduced another challenge because a reward should only be granted after the advertisement is completed and successfully verified. We built the advertising logic behind a separate service and handled unavailable ads, network failures, cooldowns and daily limits without blocking the core game.

We also worked through Android-specific issues involving back-button navigation, responsive screen layouts, launcher assets and automatically added permissions from native libraries.

Accomplishments that we're proud of

We are proud that CreaseZero delivers a complete cricket arcade loop without requiring an account, backend or permanent internet connection.

Some accomplishments include:

  • Three distinct game modes built around one accessible batting system
  • Procedural bowling with pace, swing, spin, yorkers and bouncers
  • Deterministic Daily Challenges without a server
  • Local XP, achievements, statistics and daily streaks
  • Optional rewarded ads without forced gameplay interruptions
  • Verified advertisement rewards using AdMob and RevenueCat
  • A portrait interface designed for short, one-handed mobile sessions
  • Offline access to the complete core game

Most importantly, the game remains easy to start while creating genuine tension as the score increases.

What we learned

We learned that a small gameplay idea can still require careful design. A one-wicket format makes every timing window, animation and piece of feedback more important because a single mistake can end the run.

We also learned how to structure a React Native game loop, combine procedural and deterministic content, persist progression locally and integrate native Android services within an Expo project.

Working with rewarded advertising reinforced the importance of treating ads as optional interactions rather than barriers. Failures must be handled gracefully, and the player should never lose access to the core game because an advertisement is unavailable.

Finally, preparing the app for Google Play taught us how closely application behaviour, SDK permissions, privacy disclosures and store metadata need to match.

What's next for CreaseZero

Next, we want to expand the game while keeping its quick arcade identity. Potential additions include:

  • More delivery types and bowling variations
  • Additional achievements and progression rewards
  • Unlockable bats, balls and grounds
  • Improved batting animations and match feedback
  • More Daily Challenge variations
  • Improved accessibility and difficulty options
  • Optional online leaderboards and competitive events
  • Additional performance and device optimisations

The goal is to add more depth without losing the simplicity that defines CreaseZero:

One wicket. Endless runs. Make every ball count.

Built With

Share this project:

Updates

Submission history