Last updated: 2020-12-16

Checks: 2 0

Knit directory: gacha/

This reproducible R Markdown analysis was created with workflowr (version 1.6.2). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.


Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.

Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.

The results in this page were generated with repository version e77d1c4. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.

Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:


Ignored files:
    Ignored:    .DS_Store
    Ignored:    gacha/.RData
    Ignored:    gacha/.Rhistory

Unstaged changes:
    Modified:   code/wflow_init.R

Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.


These are the previous versions of the repository in which changes were made to the R Markdown (analysis/index.Rmd) and HTML (docs/index.html) files. If you’ve configured a remote Git repository (see ?wflow_git_remote), click on the hyperlinks in the table below to view the files as they were in that past version.

File Version Author Date Message
Rmd e77d1c4 Lijia Wang 2020-12-16 single pulls
html 50de199 Lijia Wang 2020-12-16 Build site.
Rmd 09df650 Lijia Wang 2020-12-16 intro
html 8d500d1 Lijia Wang 2020-12-16 Build site.
Rmd b5e3683 Lijia Wang 2020-12-16 First commit

Motivation

Say you’re me and instead of doing anything useful in life, you are playing gacha games. However, you’re a broke and sad college student, so instead of paying for extra in-game currency like the game companies expect you to do during your favorite character’s banner, you have to work hard to save up for them. A natural question that follows is that, how many in game currency do you need to save up?

In other words, I forgot everything in probabilities so I’d like to review. But why not do it in a fun way.

Introduction

With the increased spread of smartphones in worldwide, purchasing and downloading apps is starting to take up a large portion of market surrounding mobile devices. Gameing applications, in particular, makes up for nearly half of the downloads for smartphone apps (Hiramatsu 2019). In our project, we are focusing on a new type of mobile game that can be played free of charge, but offer additional paid content such as advantageous items or extra number of plays (Hiramatsu 2019). One such type of games, generally named “gacha games”, employs a lottery-like system, where player can spend in-game currency in exchange for “rolls” in the “gacha”, a parallel to “tickets” in a raffle or lottery. The “rewards” in the gacha are cards of tiered-rarity. The most generic gacha rewards system have characters from 1-star (Normal rarity) to 5-star (Super Super Rare, or SSR, rarity). For each pull, the player has a set probability of pulling a card of each rarity, and this probability decreases with increased rarity (star count) of the card.

The problem around gacha games is that the uncertainty of the pull result draws the players to spend more money to purchase more pulls, until a desired card is drawn. This frequently results in large amounts of money being spent on gacha games. In 2012, one such type of gacha games, the Complete Gacha, was banned by the Japanese Consumer Affairs Agency (Akimoto 2014). The Complete Gacha is set up such that players need to obtain all items in the lottery (we will refer to it as “gacha” in this study) to obtain an item of higher rarity. The Complete Gacha is an example of the “Coupon collector’s problem”. The expected number of trials (pulls) needed to complete the set grows as \(\Theta(nlog(n))\), with n being the number in the set of cards in the gacha.

In this project, I would like to model the distinct gacha system employed by a few popular mobile games, with specific calculations for some games according to their published probability data. I hope to calculate the expected number of trials to obtain the desired character under each system and the variance of the estimation.

Lastly, I would like to note that even though each game company has published probabilities for each card tier, we do not know the exact algorithm behind each gacha system and the accuracy of that information. The model built will be a simplification a generic gacha algorithm and therefore will probably not be exactly representative of the gacha in specific games. Another drawback of our model is that we cannot model the specific “character” in the card outcome. We can only estimate the expected number of trials needed to obtain a card of a certain rarity.

Types of Gacha Mechanisms

The most common type of Gacha in popular mobile games typically have two different items in the gacha pool: equipment and character. While both equipment and character categories have tiered rarity, the probability to pull any specific equipment tend to be higher than the probability to pull a character of the same category. We will approach the analysis of this feature by modeling a simple gacha with only character or equipment categories, and then add the other category to see how it changes our model.

Gacha algorithm is further complicated by the “10-pull bonus”. When making individual pulls, the probability of pulling each character will be as stated in the gacha rules; when making a large number of pulls (e.g. 10-pull), some gacha games will offer some sort of bonus: one extra free pull, a guaranteed character card, or a guaranteed card above a certain rarity (4 star+). On top of this “10-pull bonus”, some gacha systems also have a “pity mechanism”, where for each pull you made after a certain pulls, the probability of obtaining a character of top rarity (5 star or SSR) will increase linearly with the number of pulls attempted, therefore guaranteeing a character of top rarity after a certain number of pulls.

The majority of the gacha games employ one or more aspects of these gacha mechanisms mentioned. Therefore, we will conduct three case studies on popular gacha games at the moment: Fate/Grand Order (North America server), Arknights (Global mobile server), and Genshin Impact (North America mobile server).

Methods:

Case Studies:

Fate/Grand Order: “10-pull bonus” only; characters and equipment in gacha

Arknights: “10-pull bonus” and “pity mechanism”; only character cards in gacha

Genshin Impact: “10-pull bonus” and “pity mechanism”; character and equipment in gacha

References

Akimoto, A. 2014. “Japan’s Social-Gaming Industry Hindered by Government’s Anti-Gambling Move. The Japan Times.”

Hiramatsu, Ayako. 2019. “A Research of Social Game Users’ Attitude to" Gacha" Probability Announcement.” In 2019 8th International Congress on Advanced Applied Informatics (Iiai-Aai), 115–20. IEEE.