My research objective for this project is to understand how people characterize their avatars in games.
Important
Here I use the term Research Objective because I do not have a specific Research Question in mind right now. This project is merely exploratory for me. It may develop closer to the end of the project.
Creating avatars in games gives people the freedom to be creative and cultivate an alternate identity. Now, this identity can be their “ideal self” or something that they just create for fun. To understand this process of creating identities I want to first examine the avatars people have already made. For this context I am thinking of scouring Reddit to find threads that talk about people describing the avatars/characters they have created while playing “Dungeons and Dragons”.
Data Collection
I was able to scrap data from multiple Reddit threads where users talk about their characters that they have created while playing a Dungeons and Dragons campaign.
Package version: 3.2.3
Unicode version: 13.0
ICU version: 69.1
Parallel computing: 8 of 8 threads used.
See https://quanteda.io for tutorials and examples.
Code
library(quanteda.textplots)library(textclean)
Warning: package 'textclean' was built under R version 4.2.2
Code
url <-c("https://www.reddit.com/r/DnD/comments/b1pk5c/tell_me_about_your_characters/", "https://www.reddit.com/r/DnD/comments/33bv4f/best_dd_character_youve_made_or_seen/","https://www.reddit.com/r/DnD/comments/37cx49/your_first_ever_dd_character/","https://www.reddit.com/r/rpg/comments/2fk4op/best_dd_character_youve_ever_made/","https://www.reddit.com/r/DnD/comments/cgdwgl/share_your_dnd_character/","https://www.reddit.com/r/dndnext/comments/au8k0w/what_are_some_of_your_favourite_dd_character/")#comments <- get_thread_content(url)#save.image("mantek_blogpost3.RData")load("mantek_blogpost3.RData")#preprocessingall_comments <- comments$comments$comment %>%str_replace_all("\n"," ") #data cleaningall_comments <-replace_contraction(all_comments) #opened all contractions, like didn't to did nottail(all_comments, n =10) #Some of the comments
[1] "After watching a tierzoo video about companion races in nature, I want to play a Grung beastmaster. Their pet is a giant wolfspider, which the Grung rides. It is a cute combination, but with Grung racials it can work surprisingly well. The Grung has poison it can apply to weapons so would either go duelling shortswords or archery hand crossbow master. Adding 2d4 poison damage each hit is sure to add up - it\031s a \034free\035 Hunter\031s Mark!"
[2] "Human champion fighter with spear mastery, soldier. A 30 year old, ugly bald peasant who was forcably conscripted at a young age. He was forced to fight in a war where he suffered hardship, sickness which turned him into an angry bitter man. I like the simpilcity of it, I do not typically do for ther most heroic characters. "
[3] "I am having the most fun playing Mantaraya, a water genasi fighter with a passion for sewing. He once outswam a bull shark to save a friend and is therefore styled after a matador. He has horrible rolls in combat. Other notable characters include: Lim: a half elf evocation wizard from a well respected family of high elf divination wizards. Her elf mother cheated on her father and died in childbirth, and her father was too focused on his studies to notice or care. She has an heirloom set of her grandmother's bones that she can not actually use to divine anything. Nonetheless she pretends (I normally roll all of my dice and make generalizations from their total). Riis: the \"human male farmer\" who is actually a half elf female rogue in disguise. She is a pathological liar and deeply committed this alter ego, even when the facts do not line up. I played her in a bronze age campaign, which happened to end with the assassination of their heir to the Persian Empire. Shortly after, Cyrus the Great ascended and Riis slipped out of spotlight. Coincidence? Ksssht: my first ever character was an owlbear. Her cubs were taken and sold into slavery, so she came out of the forest to find them and left absolute destruction wherever she went. The party also included a deranged warlock, so the paladin spent a lot of time apologizing to/buying off local business owners . "
[4] "I\031ve got 1 more! - Bronze Dragon, Red dragon sorc 14/Fiendlock 3/Champion 3, Haunted one \024 Bronze Dragonborn kicked out of clan after Tiamat makes him a warlock and draws out his red dragon blood. Take elemental adept and dragon fear feats if cha is maxed. Dex and con should be semi-decent. For added fun, take eldritch blast and agonising blast invocation. At max, this can do 4d10+20. Quicken spell another for another 1d10+5 and action surge. Assuming all hit, that\031s 10d10+50"
[5] "Human, beserker barbarian and vengence paladin. An old man, about 45 years old. A psychopath whose blood lust knows no bound, yet has developed enough discipline and mental fortitude to resist it. A violent and wrathful man. He has spent years focusing and weaponising his rage and cruelty on those who deserve it. With friends and family he is the kindest and most loving man you will see. With his enemies, all they see is the monster that makes other monster run in terror. Really want to play this guy, but he is wayy too destructive and cruel to unleash on any DM."
[6] "Rogue trickster but reimagined as a 17 y.o. boy that is TRYING for maximum edge. Taking necromancy spells for flavor hes on a quest to prove to his mom and dad that \"it is not just a phase\""
[7] "My current favorite character concept just because I have gotten so much mileage out of it. Is an evil gnome wizard who uses a forgery kit to impersonate various government officials. Health and Safety inspector!, Weights and Measures departments, ect. ect. ect. Or Oh by the way Duegar Leader this scroll I found, depicts you as the HEROINE OF LEGEND WHO SLAYS THE DRAGON...oh by the way there is also a handsome gnome wizard depicted as your advisor! wow! Its nice to have a way to interact with NPC's without a high Cha score."
[8] "A druid black cat who is embarrassed by her human form. She has a tragic background. She was originally from the coast tribe, and therefore knows misty step, water walking, and water breathing. But because she was extraordinarily pretty as a human, her tribe sold her into slavery when she was 8. She escaped, and now is a mercenary chaoitic neutral. She is incredibly independent, and does not trust anyone and is just trying to survive. Because of her relationship with the coast tribe, she hates water and has taken an interest in fire spells. She hates being touched or pet, is extremely self-conscious about her human form, and goes to great lengths to make sure nobody sees her human form. She is adept in defensive water and fire magic. She is in desperate need of a bond, and if she finds one, it will be the most important thing in the world to her."
[9] "Here's one I thought was pretty funny. A dwarven fighter gunslinger whose main goal was to industrialize the crafting and manufacturing of firearms and then sell them to warring kingdoms in the hopes of become a war profiteer and further expanding his influence to more kingdoms."
[10] "I have been waiting to do an artificer multiclassing into paladin. Dwarf as race. When an engineer graduated university, they take the Engineers Creed. If you are unaware of what that is, essentially they swear to serve the betterment of mankind with honesty, integrity, etc. I would build him as a support character making prosthetics, maybe armor, and other non combatative tools (maybe nonlethal weapons if I did any at all). Rp character more than anything"
Code
reddit_DnD_characters <-corpus(all_comments)DnD_summary <-summary(reddit_DnD_characters, n =Inf)DnD_summary #SUmmary of the corpus
one character party just like made time
190 184 134 119 117 110 109
first good can group campaign way named
109 98 94 84 82 79 79
magic people get dm human got make
77 73 71 71 70 70 67
fighter also rogue wizard years back evil
67 66 64 64 64 62 61
around elf really bard always ranger now
59 58 58 57 56 56 56
eventually name world paladin fun play played
56 55 54 54 53 53 53
even old use s dragon d life
52 52 52 51 50 50 50
game playing well go spells cleric found
50 50 49 48 48 48 48
much characters left ever man cast every
48 48 47 46 46 46 46
used find never level god long went
45 45 45 44 43 43 43
still town take actually new things amp
43 43 43 43 42 42 41
took great last best family many away
41 41 40 40 40 39 39
help warlock power killed dwarf became halfling
38 38 38 38 37 37 37
two love home later day though enough
36 35 35 35 35 35 35
died little
35 34
Code
textplot_wordcloud(DnD_dfm) #Word Cloud of the existing tokens
Code
#creating a Network plotDnD_fcm =fcm(DnD_dfm)# pull the top featuresmyFeatures =names(topfeatures(DnD_fcm, 30))# retain only those top features as part of our matrixSmaller_fsm =fcm_select(DnD_fcm, pattern = myFeatures, selection ="keep")# compute size weight for vertices in networksize =log(colSums(Smaller_fsm))# create plottextplot_network(Smaller_fsm, vertex_size = size /max(size) *3)
This is a preview of what the data is like in the Reddit threads. Right now there are a lot of frequent words as features which do not give us a lot of information, however, there are a few features that talk about the type/class of characters players usually choose which can give us a lot of insights.
Next Steps
Find more threads to scrap more comments.
Clean/Preprocess the features obtained to extract more nuanced information from the threads.
Think about what other methods introduced in the Text-as-Data class can be applied to the data to find meaningful observations from the data.
Source Code
---title: "Blog Post 3"author: "Mantek Singh Bhatia"desription: "First Blog Post - Literature Review"date: "10/25/2022"format: html: toc: true code-fold: true code-copy: true code-tools: truecategories: - Blog Post 3 - Mantek Singh Bhatia - Self-Identity - Online Gaming - Avatars - Characterization---## Research ObjectiveMy research objective for this project is to understand how people characterize their avatars in games. :::{.callout-important}Here I use the term Research Objective because I do not have a specific Research Question in mind right now. This project is merely exploratory for me. It may develop closer to the end of the project.:::Creating avatars in games gives people the freedom to be creative and cultivate an alternate identity. Now, this identity can be their "ideal self" or something that they just create for fun. To understand this process of creating identities I want to first examine the avatars people have already made. For this context I am thinking of scouring Reddit to find threads that talk about people describing the avatars/characters they have created while playing "Dungeons and Dragons". ## Data Collection I was able to scrap data from multiple Reddit threads where users talk about their characters that they have created while playing a Dungeons and Dragons campaign. ```{r}# install.packages("rvest")# install.packages("RedditExtractoR")# install.packages("textclean")library(RedditExtractoR)library(rvest)library(tidyverse)library(quanteda)library(quanteda.textplots)library(textclean)url <-c("https://www.reddit.com/r/DnD/comments/b1pk5c/tell_me_about_your_characters/", "https://www.reddit.com/r/DnD/comments/33bv4f/best_dd_character_youve_made_or_seen/","https://www.reddit.com/r/DnD/comments/37cx49/your_first_ever_dd_character/","https://www.reddit.com/r/rpg/comments/2fk4op/best_dd_character_youve_ever_made/","https://www.reddit.com/r/DnD/comments/cgdwgl/share_your_dnd_character/","https://www.reddit.com/r/dndnext/comments/au8k0w/what_are_some_of_your_favourite_dd_character/")#comments <- get_thread_content(url)#save.image("mantek_blogpost3.RData")load("mantek_blogpost3.RData")#preprocessingall_comments <- comments$comments$comment %>%str_replace_all("\n"," ") #data cleaningall_comments <-replace_contraction(all_comments) #opened all contractions, like didn't to did nottail(all_comments, n =10) #Some of the commentsreddit_DnD_characters <-corpus(all_comments)DnD_summary <-summary(reddit_DnD_characters, n =Inf)DnD_summary #SUmmary of the corpusDnD_tokens <-tokens(reddit_DnD_characters); DnD_tokens #tokens before preprosessing#Removed Punctuation#Removed symbols#Removed Numbers#Removed StopwordsDnD_tokens <-tokens(reddit_DnD_characters, remove_punct=TRUE, remove_symbols =TRUE,remove_numbers =TRUE) %>%tokens_select(pattern=stopwords("en"), selection="remove"); DnD_tokensDnD_dfm <- DnD_tokens %>%dfm() %>%dfm_trim(min_termfreq =20, verbose =FALSE)DnD_dfm #The DFMall_features <-featnames(DnD_dfm); all_featurestopfeatures(DnD_dfm, 100)textplot_wordcloud(DnD_dfm) #Word Cloud of the existing tokens#creating a Network plotDnD_fcm =fcm(DnD_dfm)# pull the top featuresmyFeatures =names(topfeatures(DnD_fcm, 30))# retain only those top features as part of our matrixSmaller_fsm =fcm_select(DnD_fcm, pattern = myFeatures, selection ="keep")# compute size weight for vertices in networksize =log(colSums(Smaller_fsm))# create plottextplot_network(Smaller_fsm, vertex_size = size /max(size) *3)#kwic_time <- kwic(reddit_DnD_characters, pattern = phrase("time")); head(kwic_time, n=10)#kwic_character <- kwic(reddit_DnD_characters, pattern = phrase("character")); head(kwic_character, n=10)#kwic_party <- kwic(reddit_DnD_characters, pattern = phrase("party")); head(kwic_party, n=10)```This is a preview of what the data is like in the Reddit threads. Right now there are a lot of frequent words as features which do not give us a lot of information, however, there are a few features that talk about the type/class of characters players usually choose which can give us a lot of insights. ## Next Steps - Find more threads to scrap more comments. - Clean/Preprocess the features obtained to extract more nuanced information from the threads. - Think about what other methods introduced in the Text-as-Data class can be applied to the data to find meaningful observations from the data.