Apex Packs Calc

Published on March 21st, 2023

Apex Packs Calc project image

GotAHopUpHere.com is a calculator utility web app that I built in 2020 for the popular game Apex Legends. One evening while playing online with friends, I wound up talking out the idea which stuck with me long enough to become a utility that sees over a million sessions per year.

Background

Being a transplant and all, one of the major reasons why I play video games after recreation is to keep close to friends and family who live far away. While playing Apex with friends (hi Jon + Josh) we got into a conversation about loot boxes, "the grind," and a myriad of other Apex topics. This led one of us to wonder out loud "I wonder how many Apex Packs I've opened so far. I wish there was a way of finding out."

If you know me at all, you know it was all over from here.

Flash slightly forward to when I (remotely) attended a weekend code jam. The purpose was to attempt to create an app while keeping the bundle size low, however very quickly it became apparent to me that I was doing something else. I threw the initial idea together in about a weekend, and from there it caught a bit of traction in places like Reddit and Twitter. A few weeks later I realized based on the traffic I was seeing that my solution deserved to be a bit more robust. I performed a complete rewrite, pulled in a component library, implemented a CI/CD pipeline and some proper tooling, and went to work to put together a focused suite of tools for anyone who might want to spend some time in the Apex Outlands. Which as it turns out, is a lot of people.

Popularity

Apex Legends is a popular game. It's pretty clear if you look at the engagement on the Apex Legends subreddit or observe how their fans interact on social media, but we don't have to rely on anecdotal evidence. Here are some stats right from the publisher-horse's mouth:

  • During their May 2021 earnings call, EA reported that Apex Legends had achieved 100MM+ lifetime players
  • On their August 2021 earnings call, EA reported Apex Legends had 13MM+ weekly active players
  • In February of 2022, EA reported "monthly active players were up more than 30% year-over-year"
  • In May of 2022, EA reported their "highest engagement since launch"

So as of February 2022 - a little over a year ago at the time of this writing - Apex Legends had more than 17MM+ weekly average players. Seeing no signs of slowing down, my guess is the weekly active cohort has grown beyond 20MM+ players. This steady growth of new players, combined with solid retention of veteran players has translated to more and more engagement for my utility app.

Now that we've established how insanely popular the game is, the other half of the equation is the fact that I wound up providing an answer to one of the most widely asked questions throughout the community: “is there any way to know how many packs I've opened?

App Overview

To understand my app's usefulness, first we need to understand a little bit about what we're doing here and why:

Apex Legends employs a system of randomized loot boxes as a compliment to their microtransaction store strategy - called Apex Packs. The “big prize” that everyone is chasing (called an heirloom in this case) is extremely rare, and has a <1% chance of dropping. It may be worth noting that this is the only information we have about the odds, so those odds could be 0.05%, or 0.00001%, or slide on a scale depending on how much money you spend.

To offset these obscenely low odds, there is a “bad luck protection” mechanism such that once a player opens their 500th loot box, they are guaranteed this ultimate prize. The rub here, is that the game's UI doesn't display to the player how many loot boxes they've opened over their career. This opaque stat combined with the loot box mechanism has surely pushed players to spend real money in an attempt to speed up the process. I endeavored to help players understand more intimately the nuances of this system, it's psychological effect on how players spend real money, and give players a way to feel more in control.

GotAHopUpHere's Apex Pack Calc works by asking about where you've been, what you've earned (and purchased), and what you've accomplished over your career as an Apex Legend. I can then use that information to infer how many loot boxes you have opened, and from there advise on how close (or far!) you might be from the next big prize.

The trick here is that most online games have an API, or a programmatic way of retrieving a player's history by allowing them to log in. Apex Legends is different in that Respawn the developer offers no such API, so all of these calculations must be done manually.

Additional Features

There are also some additional quality of life features, such as:

  • Maps Schedules - shows which maps are live now, and which maps are coming up soon on the rotation
  • Maps Explorer - navigate the arenas of the Outlands and plan your next rotation
  • Kills + Wins - keep track of how many kills and wins you've recorded with each Legend
  • Profiles - sign in to keep track over multiple devices

The Tech Stack

  • Written in JavaScript with the React library
  • Mantine for the robust components
  • Highcharts for visualizations
  • Leaflet for interactive maps
  • Google Firebase for authentications and profile data storage
  • GitHub Actions for my CI/CD pipeline
  • Fonts:
    • Montserrat for headings
    • Source Sans Pro for everything else

Reach + Impact

Reach

I see my utility written about and featured in YouTube videos all the time, which is always fun to see:

When I typed "Apex Legends is a popular game" earlier, I made it bold and italic for a reason. Here's a peek into my analytics from launch:

YearVisitorsSessionsPageviews
2020*1.02MM2MM2.54MM
20212.29MM4.17MM5.19MM
20221.98MM3.29MM4.31MM
TOTALS5.29MM9.46MM12.04MM
*launched in February 2020

With the figures above combined with early 2023 numbers, I have seen about 5.5MM total users, and just over 10MM sessions over the life of the project.

Mind blown

Impact

The impact of my app has been monumental (for me, at least).

I run into people from the furthest corners of my life who tell me they not only know of my app but have used it. This is high praise to me, and literally never ceases to amaze me. I've had conversations, and received praise (and criticism) from:

  • Friends of friends
  • Family friends
  • Random people I meet online
  • During an interview (!)

There's been quite a bit of growth opportunity for me as well:

  • I get to build and manage a product which sees over a million active users every year - as an engineer / product manager / connector of systems / nerdiest nerd, it still makes me giddy every day that I get to work on a project with this kind of visibility
  • It's an good learning experience - running a live service with a passionate player base means I learned a lot about availability and what it means to cover all the roles of a production app, including front-end, back-end, QA, devops, and more
  • It's spawned off two blog posts, with at least one more sitting in the ideas pile ready to be written

Conclusion

In conclusion, I'm proud of what I've built - but more importantly I'm humbled that the community was able to see my vision as well. Starting from a casual conversation with friends, I managed to develop a web app that answers an open-ended question for the Apex Legends community. With close to two million users per year and counting, it's clear that many players find my solution helpful. As Apex Legends continues to grow and evolve, I look forward to continuing to evolve the app's features to keep up with the game's changing landscape.

GotAHopUpHere.com

Headshot of Mike Zarandona

Huge nerd, hobby collector, happy husband & dad. The personal website of Mike Zarandona.

© 2024 Mike Zarandona