How To

How I Made It: ProtonJon 15th Anniversary Analytics

If you watch ProtonJon on Twitch, he recently had his 15th anniversary of creating content online. PsychoticGex came up with the idea for people who worked with and moderate with ProtonJon to create a short video congratulating him on his career as a YouTuber and Twitch streamer.

Being given this opportunity, I wanted to do something different that I see most people who are successful in content creation but never have the time to do. Being able to look back and reflect on their own accomplishments and achievements. It’s something that most people don’t get to do as most jobs and careers don’t have anything concrete to show or even have a portfolio.

What I wanted to share is my process, tools, and code on how I made my contribution to his 15th anniversary of his career in content creation.

Brainstorming & Research

Probably the most time consuming part of the process was brainstorming and research. Despite being given plenty of time to work on this project, I wasn’t able to work on this project due to my time being put towards applying for jobs and completing Google’s Data Analytics course.

I already had the idea that since I was learning data analytics and have been recording all of ProtonJon’s streaming history in a spreadsheet that I wanted my video to be about showing his stream analytics. What I needed though was an outline to help me brainstorm and get all my ideas on paper.

What I ended up using to make an outline and notes was an web application called Notion. It’s a workflow application that can be used for project management or as simple as taking down notes. I learned about Notion from Thomas Frank, a YouTuber who focuses on making productivity and self help videos and Sam Woodhall, a YouTuber who focuses on video editing and design. While I could of used Microsoft Word or Google Docs, I wanted to try the application to get used to the software since it might be the solution I need to follow through on personal projects from making blog posts, videos and have it serve as an archive as well.

For the project I created an outline, ideas for the content, and writing down the results of stream analytics and notable accomplishments that I could think of. Some examples was ProtonJon’s contributions to local businesses and charities, video game companies who he worked with for promotional events, and voice actors he has had as guests on stream.

I also wrote down what tools and steps I would have to do to complete this project such as R Studio for visualizations and DaVinci Resolve for video editing. My main goal was to have everything written down so that it could be used for reference and that I didn’t have to keep the ideas in my head.

The gallery below are pictures of my Notion document. From the initial outline, the results of the research, the steps I need to take, what assets I’ll need to find and download, and the script of what I wanted to say.

Coding and Visualizations

Now that I had a structure to work with, my next step I took was to write code that analyzed the data of Jon’s streams as well as write code to create the visualizations that would match the ProtonJon’s theme.

To accomplish this, I leveraged my new knowledge that I acquired from Grow With Google’s Data Analytics where I learned the statistical programming language R. R is primarily used for calculations and statistics and has the ability to create visualizations such as bar charts. The application I used to write the code was R Studio which streamlines the process of importing data, manages project files, and installation of packages.

Thankfully, a bulk of the data I needed already exists as I keep a record of ProtonJon’s streaming data in MS Access. I use this database to create queries that record all of Jon’s streaming data such as what guests were on, and what games were played on stream.

One challenge I did have was Jon’s game collection as the database that I maintain include games that were fan projects and products like the Super Game Boy or Game Boy Player Disc. Thanks to DeefDragon, he was able to give me a JSON file of ProtonJon’s Backloggery which was an accurate record of his video game collection.

To perform the calculations and create the visualizations I used the following packages.

  • Tidyverse – This is a bundle of packages that allow for the summarization of data to perform calculations as well as creating visualizations.
  • Showtext – This package allows custom fonts to be used for visualizations.
  • Readxl – This package enabled the importing of Excel documents into R Studio.

The bulk of coding I had to do was to perform counts of the data such as how many unique games were played on stream, how many streams has ProtonJon done on Twitch, and how many unique guests were on stream. And below is the code used to count how many games ProtonJon has played on stream.

Stream_Games %>% #Count of Unique Games Played No chart needed
  summarize("Game Title" = n())%>%
  arrange(desc("Game Title"))

For the visualizations that involved fun fact information that I labeled “Top 10” required a lot more coding. The biggest challenge was coding was writing code that would match ProtonJon’s retro theme such as text that you would see in arcade and NES games.

The code block below is what I used to create the top 10 games played on stream. One note I noticed when I was originally calculating this data was that the game Wheel of Fortune was in the top 10, however it was only in the top 10 because multiple console versions of Wheel of Fortune had the same name.

To get the font to match I used the showtext package and the command showtext_auto() to be able to use the font “Press Start 2P” which is available through google fonts. Some notable design choices I made was to display the bar chart in descending order, making the background black, and removing elements that you would normally see in a bar chart. Finally, to export the bar chart, I used the function ggsave() to name the file and set the width and height to a 16:9 ratio creating the bar chart you see below.

Stream_Games %>% #Count of Played Games on stream
  filter(Game_Title != "Wheel of Fortune")%>%
  summarize(title = n())%>%
  arrange(desc(title)) %>%
  head(n = 10L)%>%
  ggplot(aes(title, fct_reorder(Game_Title, title), fill = Game_Title))+
  geom_bar(stat = "identity")+
  scale_x_continuous(expand = expansion(mult = c(0, 0.1)))+
  geom_text(aes(label = title), hjust = 2, color = "white", size = 20, family = "Press Start 2P")+
  scale_y_discrete(labels = c("Super Mario 64", "TMNT 4: Turtles in Time", "Battletoads", "Gunstar Heroes",
                  "Mario Kart 8 Deluxe", "Splatoon 2", "Super Bomberman R", "Bento!", "Bomberman Act Zero",
                  "Super Smash Bros. Ultimate"))+
  guides(fill = "none")+
  labs(title = "Top 10 Games Played on Stream",
       x = NULL,
       y = NULL)+
  theme(plot.background = element_rect(fill = "black"),
        plot.title = element_text(hjust = 0.5),
        plot.title.position = "plot",
        text = element_text(color = "white", family = "Press Start 2P", size = 50),
        axis.text = element_text(color = "white"),panel.background = element_blank(), panel.grid = element_blank(),
        axis.text.x = element_blank())

Once I had the visualizations created, I was able to move onto creating and editing the video.

Video Editing

Since I was going to focus on showing all this information, it didn’t make sense for me to say anything for the video. This is where I got the idea from Adult Swim to make the video like one of their video bumpers. It keeps things simplistic and puts a focus on Jon’s accomplishments.

The video editing software I use is DaVinci Resolve which is free video editing and effects application. This is where I compiled all the pictures from company press kits, websites, or images I found using Google and Bing image search.

The main focus I had for the pacing was to stitch together each accomplishment or achievement as I was writing how ProtonJon has been successful like I was writing a letter to him and to thank him and his viewership for the privilege of being a moderator.

While the original time limit was to only have at most thirty seconds, I had to go over that limit in order to give enough time for the text and visualizations to be readable. So I had to extend each block to two seconds which extended the video to a minute.

It’s important to be able to take a look back and really be able to see one’s accomplishments and work as more people in their career have a hard time seeing what achievements or accomplishments they’ve made as it is important to show how much of an impact people have made and use that to further their careers, goals and future aspirations. Whether it’s for the people we admire or for ourselves.