Sheeraz KhanLead Game Developer
Initializing Experience 100%
Settings
Theme
Motion

XRev StudioLead Developer

CricketX

A VR cricket batting simulator for Meta Quest, where every ball is simulated, measured and explained.

UnityC#VRAnalytics
Role
Lead Developer
Platforms
Meta Quest 2, 3, 3S and Pro
Built with
Unity, C#, UI Toolkit, Firebase
Ball physics
500 steps a second

By the numbers

500/sphysics steps a second while the ball is in flight
19delivery types, from yorkers and bouncers to doosras and flippers
26,880deliveries in the bowling corpus, every one trajectory-checked

A batting net inside a headset

CricketX is a virtual reality cricket batting simulator for Meta Quest, made at XRev Studio. You stand at the crease in a stadium, a bowler runs in, and you swing a Quest controller, or a real cricket bat with a controller mounted inside it. The game runs on the headset alone, with no PC.

It is made for players who want to train, and clubs and academies in Pakistan, Canada, Australia, UK and more use it. Around the training nets there are run chases against ten international sides, knockout tournaments, famous match situations that start from the real score, and pass-and-play matches for two players on one headset.

How the ball flies

While the ball is in the air, its flight is simulated 500 times a second. Swing acts only before the bounce, and only after a set point in the flight. Spin is split into two parts, so a topspinner dips, a flipper skids low and a cutter turns only off the pitch. Four pitch surfaces change the pace and the bounce.

There are 19 delivery types, from yorkers and bouncers to doosras and flippers, across 20 bowler types. The deliveries are not tuned by hand. I wrote a research document that sets a target for each delivery from bowling studies, coaching guidance and the Laws of Cricket, and it marks which numbers are our own tuning. A generator builds 26,880 deliveries from those targets, and a trajectory check tests every one. When a delivery missed its target, we fixed the generator, never the check, until all of them passed.

What players notice

AFTER THE BALL Timing EARLYPERFECTLATE Bat speed Pitched Ball simulated 500 times a second
  • Mount a controller inside a real cricket bat, for real weight and reach.
  • Relive real matches with the real numbers: walk in at 248 for 4, chasing 275, in the 2011 final.
  • New training sessions reach headsets as signed files. No app update needed.
  • A coach can ring your headset from a browser and talk you through the next over.

Every ball becomes a measurement

The game records where the ball pitched, how fast you swung, when you made contact and where your head was. Contact between bat and ball is rebuilt between rendered frames, so a fast swing still meets the ball at the right point. After each ball you see bat speed, timing, exit speed, launch angle, a pitch map and a wagon wheel.

A replay of the last ball plays on the big stadium screen in front of you or behind you. Batting Analysis filters your balls by bowler, delivery, length and outcome, then lists your strengths, what needs work and what to focus on next. Clips you save can go to the community Discord, and from there to the CricketX website.

Made for Quest, and for a real bat

Hold the controller like a bat, or mount it inside a compatible bat for real weight and reach. A calibration step saves your grip as a preset, and a second controller can be strapped to the front pad to track it. Passthrough shows your real room while you bat, and you can touch the floating panels with the bat as well as point at them.

The game asks the headset for 90 Hz. Session files are read and checked in the background, away from the thread that draws each frame. A two-second freeze when content first loaded now takes 31 milliseconds at most. You can also play offline from content already on the headset, and guest progress can be merged into your account at the next sign-in.

New sessions without an app update

Training modes are data, not code. A session is one file with a timeline of deliveries, messages and commentary, plus rules and up to three star goals. A core written in plain C#, with no engine code, reads each file, checks it and runs it once as a dry run before any player sees it.

New sessions and bowling data are signed and sent to headsets that already have the game. Content goes to a testing channel before it goes live, every release starts with a dry run, and a signed policy can switch any item off. New content is also replayed through older versions of the game first. Players can even build their own sessions in the headset from approved templates.

What I built, and what the team built

As Lead Developer I merge the whole team's work into one codebase and make nearly every release build. I built most of the session platform and all of its signed publishing. I also built the UI Toolkit framework behind every in-headset screen, the offline save system, in-app purchases, tournaments, the replay buffer, crash logging and the release pipeline. I also wrote the rules the team works by, including the rules for the AI agents that work inside the Unity editor.

CricketX is a team game. Teammates led the fielding and the commentary, and did much of the stadium art. They also built the voice calls that let a coach ring your headset from a browser and talk you through the next over.

What I used here

Game Feel & UX

Every hit buzzes the bat hand, and the swing sound rises with bat speed.

  • The hit sound changes with bat speed and where the ball meets the bat.
  • A replay plays on whichever stadium screen you're facing.

Level Design

Sessions are written as data: a timeline of deliveries, trigger rules and star goals.

  • We generated 26,880 deliveries, and every one passed the research-based checks.
  • Colour-coded balls warn of a steep bounce, a slower ball or a low skid.

UI Development

In-headset screens are real panels in the VR world, all sharing one theme.

  • Seven chart types, including radar, pitch map and wagon wheel, are drawn in code.
  • Scrolling is tuned for VR pointers, which magnify small wrist movements.

VR Interaction & Comfort

Hold the controller like a bat, or mount it in a compatible bat for true weight.

  • A second controller can be strapped to the front pad to track it.
  • In a session, a high ball can be aimed at the player's own head height.
  • Switch on a view of your real room while you bat.

Game Architecture

A mode built from existing parts needs no new code, just a data file.

  • Ten shared catalogues hold the reusable parts: deliveries, scoring and win conditions.
  • Content updates are signed, versioned and can roll back in one step.

Performance

The headset is asked for 90 Hz, and the ball is simulated 500 times a second while it flies.

  • A 2-second freeze at startup is gone; the worst frame now takes 31 milliseconds.
  • In gameplay, each headset model gets its own graphics settings.

Testing & Quality

Every session file, rule and build step has tests, and a headset build passes the suite before it ships.

  • A Quest 2 stress test under heavy memory load ended with no crashes or freezes.
  • Three months of crash reports were traced to their root causes and fixed with tests.
  • New content is replayed through older game versions before it goes live.

Tools & AI Workflow

A playtest driver plays whole sessions to a win or a loss at 12× speed in the editor.

  • AI agents work inside the game editor through a bridge with over 100 skills.
  • Publishing tools always start with a safe dry run.

Release & Publishing

New sessions and bowling data go live signed and versioned, with no app update needed.

  • Every build uploads its crash symbols automatically.
  • Content moves through two signed channels: a testing channel first, then live, and every release is dry-run before it goes out.

Team Leadership

I lead a team of 10 engineers across several VR and web productions at once.

  • Shared coding and commit standards keep merge conflicts rare across several productions at once.
  • Plain-English commit messages become release notes automatically.
  • Risky changes, like physics or security rules, need owner approval first.

End of the case studyThanks for reading.

Working on something like this?

I'd love to hear about it. If there is a game or a project where this kind of work would help, send me a message.