Tales from the Borderlands

Post-processing plots with {magick}.


Dahl Corporation


September 29, 2022


Borderlands is a an action role-playing first-person looter shooter video game franchise set in a space western science-fiction universe. The games have a dramatic comic book art style that I want to capture in my plot.

In-game screenshot from Borderlands 3.

Gearbox, the developers of Borderlands, have explained that this art style is achieved using “hand-drawn textures, scanned in and coloured in Photoshop, combined with software that draws graphic novel-style outlines around characters and objects, sharpens shadows to look more like something an artist might create, and even draws lines on hills and inclines. Finally the character models are all revamped with more exaggerated proportions, creating the appearance of a detailed comic book in motion.”

Some of these are not relevant to plotting, but two are:

  • Drawing graphic novel-style outlines
  • Using hand-drawn textures

Theming Inspiration

The in-game menus in Borderlands 3 provide a great design reference for plot theming.

The ECHO-3 in-game menu in Borderlands 3.

Loot in Borderlands (guns, grenades, shields, etc.) are colour categorized by the rarity with which they can be found in containers or dropped by defeated enemies. From left to right the categories are: Common, Uncommon, Rare, Epic, Legendary.

I want to translate these design elements to my plot like so:

  • The Compacta Bold font can be used for plot text.
  • The blue background and light blue UI highlights can be used for the plot background and axes, respectively.
  • The white header text and the blue text can be used for different textual elements of the plot.
  • The yellow colour can be used for the plot title (this is the colour used for the game’s titles).
  • The loot rarity colours can be used for grouping data in plot geoms.
  • All elements should have a black outline.

Applying these elements to my plot will help it fit the Borderlands aesthetic.



I’ll be using Steam player data for my plot. The data contains statistics for the average and peak number of players playing a variety of games each month from July 2012 to February 2022. You can download this data with the Data Source code in the appendix, or from Tidy Tuesday with tidytuesdayR::tt_load("2021-03-16").

# Load the weekly data
games <- read_csv(here("data", "2021-03-16_games.csv"))


I only want data from the mainline Borderlands titles for my plot, so let’s get those.

# Filter to mainline Borderlands titles available in the data. The first game
# is not available in the dataset so filtering based on the title and digit
# works fine here.
borderlands <- games %>%
  filter(str_detect(gamename, "Borderlands[[:space:]][[:digit:]]"))