Exploring Video Game Film Adaptations in R

Author

Darwhin Gomez

Introduction

This dataset, obtained from the TidyTuesday GitHub repository, contains information about movies adapted from video games. I will explore the data set and plot the top ten movies by worldwide box-office earnings. The dataset includes various attributes such as movie title, release year, distributor, and box-office earnings in different currencies.

Data source:
https://raw.githubusercontent.com/rfordatascience/tidytuesday/refs/heads/main/data/2026/2026-06-09/game_films.csv

Code
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.1     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.1
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Data Ingestion

Code
vgame_movies <- read_csv(
  "https://raw.githubusercontent.com/rfordatascience/tidytuesday/refs/heads/main/data/2026/2026-06-09/game_films.csv"
)
Rows: 439 Columns: 20
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr  (14): category, subcategory, title, director, release_date_raw, air_dat...
dbl   (5): worldwide_box_office, rotten_tomatoes, metacritic, budget_low, bu...
date  (1): release_date

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Code
dim(vgame_movies)
[1] 439  20

A quick dimension check shows that this is a relatively small dataset with several attributes available for exploration.

Initial Data Exploration

Before beginning the analysis, I will inspect the dataset’s column names, variable types, and summary statistics.

Code
names(vgame_movies)
 [1] "category"                      "subcategory"                  
 [3] "title"                         "director"                     
 [5] "release_date"                  "release_date_raw"             
 [7] "air_date_raw"                  "worldwide_box_office_currency"
 [9] "worldwide_box_office"          "rotten_tomatoes"              
[11] "metacritic"                    "cinema_score"                 
[13] "distributor"                   "original_game_publisher"      
[15] "budget_currency"               "budget_low"                   
[17] "budget_high"                   "domestic_box_office"          
[19] "subject"                       "network"                      
Code
glimpse(vgame_movies)
Rows: 439
Columns: 20
$ category                      <chr> "Theatrical releases", "Theatrical relea…
$ subcategory                   <chr> "English", "English", "English", "Englis…
$ title                         <chr> "Super Mario Bros.", "Double Dragon", "S…
$ director                      <chr> "Rocky Morton and Annabel Jankel", "Jame…
$ release_date                  <date> 1993-05-28, 1994-11-04, 1994-12-23, 199…
$ release_date_raw              <chr> "May 28, 1993", "November 4, 1994", "Dec…
$ air_date_raw                  <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ worldwide_box_office_currency <chr> "$", "$", "$", "$", "$", "$", "$", "$", …
$ worldwide_box_office          <dbl> 38912465, 4152699, 99423521, 124741822, …
$ rotten_tomatoes               <dbl> 29, 12, 11, 47, 4, 10, 20, 36, 24, 3, 18…
$ metacritic                    <dbl> 35, 40, 34, 60, 11, 21, 33, 33, 43, 15, …
$ cinema_score                  <chr> "B+", "F", "B-", "A-", "C+", "D", "B", "…
$ distributor                   <chr> "Buena Vista Pictures Distribution", "Gr…
$ original_game_publisher       <chr> "Nintendo", "Technōs Japan", "Capcom", "…
$ budget_currency               <chr> "$", "$", "$", "$", "$", "$", "$", "$", …
$ budget_low                    <dbl> 4.20e+07, 7.80e+06, 3.50e+07, 2.00e+07, …
$ budget_high                   <dbl> 4.80e+07, 7.80e+06, 3.50e+07, 2.00e+07, …
$ domestic_box_office           <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ subject                       <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ network                       <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
Code
summary(vgame_movies)
   category         subcategory           title             director        
 Length:439         Length:439         Length:439         Length:439        
 Class :character   Class :character   Class :character   Class :character  
 Mode  :character   Mode  :character   Mode  :character   Mode  :character  
                                                                            
                                                                            
                                                                            
                                                                            
  release_date        release_date_raw   air_date_raw      
 Min.   :1986-07-20   Length:439         Length:439        
 1st Qu.:2007-08-24   Class :character   Class :character  
 Median :2013-11-09   Mode  :character   Mode  :character  
 Mean   :2012-03-06                                        
 3rd Qu.:2018-01-16                                        
 Max.   :2028-12-22                                        
 NA's   :89                                                
 worldwide_box_office_currency worldwide_box_office rotten_tomatoes 
 Length:439                    Min.   :6.151e+04    Min.   :  0.00  
 Class :character              1st Qu.:1.827e+07    1st Qu.: 16.00  
 Mode  :character              Median :8.437e+07    Median : 30.00  
                               Mean   :6.748e+08    Mean   : 35.18  
                               3rd Qu.:3.404e+08    3rd Qu.: 51.00  
                               Max.   :5.020e+09    Max.   :100.00  
                               NA's   :343          NA's   :366     
   metacritic    cinema_score       distributor        original_game_publisher
 Min.   : 9.00   Length:439         Length:439         Length:439             
 1st Qu.:28.50   Class :character   Class :character   Class :character       
 Median :36.00   Mode  :character   Mode  :character   Mode  :character       
 Mean   :37.37                                                                
 3rd Qu.:46.50                                                                
 Max.   :88.00                                                                
 NA's   :376                                                                  
 budget_currency      budget_low         budget_high       domestic_box_office
 Length:439         Min.   :  1800000   Min.   :1.80e+06   Length:439         
 Class :character   1st Qu.: 23500000   1st Qu.:2.35e+07   Class :character   
 Mode  :character   Median : 45000000   Median :4.50e+07   Mode  :character   
                    Mean   : 63632836   Mean   :6.59e+07                      
                    3rd Qu.: 92500000   3rd Qu.:9.75e+07                      
                    Max.   :300000000   Max.   :3.00e+08                      
                    NA's   :372         NA's   :372                           
   subject            network         
 Length:439         Length:439        
 Class :character   Class :character  
 Mode  :character   Mode  :character  
                                      
                                      
                                      
                                      

Next, I will examine the distinct currencies used for worldwide box-office earnings.

Code
vgame_movies |>
  distinct(worldwide_box_office_currency)
# A tibble: 3 × 1
  worldwide_box_office_currency
  <chr>                        
1 $                            
2 <NA>                         
3 ¥                            

Subset data

I wouldlike to compare apples to apples so I will create a subset of movies that have worldwide box-office earnings in USD. Then I will plot the top 5 movies by world wide earnings.

Code
top_movies <- vgame_movies |>
  filter(worldwide_box_office_currency == "$") |>
  arrange(desc(worldwide_box_office)) |>
  slice_head(n = 10)|>
  select(title, worldwide_box_office, distributor)
top_movies
# A tibble: 10 × 3
   title                        worldwide_box_office distributor            
   <chr>                                       <dbl> <chr>                  
 1 The Super Mario Bros. Movie            1360783214 Universal Pictures     
 2 A Minecraft Movie                       957802316 Warner Bros. Pictures  
 3 The Super Mario Galaxy Movie            831694730 Universal Pictures     
 4 Sonic the Hedgehog 3                    489639902 Paramount Pictures     
 5 Warcraft                                439048914 Universal Pictures     
 6 Pokémon Detective Pikachu               433305346 Warner Bros. Pictures  
 7 Rampage                                 428028233 Warner Bros. Pictures  
 8 Sonic the Hedgehog 2                    405421518 Paramount Pictures     
 9 Uncharted                               401748820 Sony Pictures Releasing
10 The Angry Birds Movie                   352333929 Sony Pictures Releasing

visulizations

Finally lets plot the top 10 movies by worldwide box-office earnings using ggplot

Code
ggplot(
  top_movies,
  aes(
    x = reorder(title, worldwide_box_office),
    y = worldwide_box_office / 1000000,
    fill = distributor
  )
) +
  geom_col() +
  coord_flip() +
  labs(
    title = "Top 10 Video Game Film Adaptations by Worldwide Box Office Earnings",
    x = "Movie Title",
    y = "Worldwide Box Office Earnings (USD Millions)",
    fill = "Distributor"
  ) +
  theme_minimal()

Conclusion

The dataset has some iteresting insights into the performance of video game film adaptations at the box office. The top 10 movies by worldwide earnings are dominated by well-known franchises and distributors, highlighting the commercial potential of video game adaptations in the film industry. Further analysis could explore trends over time, genre influences, and critical reception to provide a more comprehensive understanding of this niche market.