OnePlus - A mobile web game - React, TypeScript, Redux, PWA, WebSocket, WebGL, Sass, Django - Selected Works & Case Studies by João Pescada

Selected Works & Case Studies

Tapping into new speeds.

OnePlus

A mobile web game.
September 2018

For the launch campaign of the smartphone OnePlus 6T, I joined a small team at MPC to help develop a web game optimised for mobile phones.

The whole experience was based on a tap gesture counter with generative animations. Each user had a personal counter and a global counter summing up taps from everyone since the game launched. To keep things interesting, milestones and challenges with prizes were unlocked as the counts increased. The champion (ie: the user with the highest number of taps) was awarded OnePlus devices for life.

What looked like a simple tapping game, soon turned into a much heavier system as we opened doors to the public. When the client is a global brand offering such valuable prizes and inciting game hacking, things can get out of control quicker than expected.

We learned that the hard way and had to rethink and refactor some game features into the most performant and hack-proof versions possible with the little time available. When we finally reached a stable solution the game was able to handle thousands of users generating millions of taps per second, without any noticeable performance toll on the user experience.

As a side note, to find considerate hack protections, we actually looked into the Guinness World Records to find out what was humanly possible and filter out robot interactions.

Technical

This mobile-optimised progressive web app was built with React on TypeScript with Redux supported by a multi-language Django app and Sockets.io to keep the experience synced across thousands of active users every second.

Credits

Design and account management: MPC
Frontend development: Dan Lewis, Marinda Sephton and me
Backend developement: Bongani Ndlovu
Client: OnePlus

Need help with your idea?

If you have an idea for a digital product, no matter how big or small,
I would really love to hear from you.

Even if it’s still very abstract, a little chat won’t hurt.

Let’s get in touch