Show the code
targets::tar_visnetwork(targets_only = T)Set default bucket name to 'bgg_data_dev'
Phil Henrickson
May 28, 2025
Loading historical data from BoardGameGeek (BGG) for predictive modeling and analysis.
Uses targets package to create pipeline
batches of games requested from API
list_games_objects = function(bucket, prefix = "raw/objects/games") {
googleCloudStorageR::gcs_list_objects(
bucket = bucket,
prefix = prefix,
versions = T,
detail = "full"
) |>
filter(name == prefix) |>
arrange(desc(updated))
}
print_games_objects = function(obj) {
obj |>
select(bucket, name, generation, updated) |>
knitr::kable(format = "markdown")
}
buckets = c("bgg_data", "bgg_data_dev", "bgg_data_staging")
games_objs <- map(
buckets,
~ list_games_objects(bucket = .x)
)
names(games_objs) = buckets| bucket | name | generation | updated |
|---|---|---|---|
| bgg_data | raw/objects/games | 1748454988000060 | 2025-05-28 17:56:28 |
| bgg_data | raw/objects/games | 1747834855255018 | 2025-05-21 13:40:55 |
| bgg_data | raw/objects/games | 1747055380372986 | 2025-05-12 13:09:40 |
| bgg_data | raw/objects/games | 1745860932921040 | 2025-04-28 17:22:12 |
| bgg_data | raw/objects/games | 1745074120055107 | 2025-04-19 14:48:40 |
| bgg_data | raw/objects/games | 1744392659954256 | 2025-04-11 17:30:59 |
| bgg_data | raw/objects/games | 1743780453796724 | 2025-04-04 15:27:33 |
| bgg_data | raw/objects/games | 1742943479411730 | 2025-03-25 22:57:59 |
| bgg_data | raw/objects/games | 1742911503045718 | 2025-03-25 14:05:03 |
| bgg_data | raw/objects/games | 1742489667404929 | 2025-03-20 16:54:27 |
| bgg_data | raw/objects/games | 1741629678449522 | 2025-03-10 18:01:18 |
| bgg_data | raw/objects/games | 1740875193707566 | 2025-03-02 00:26:33 |
| bgg_data | raw/objects/games | 1732133366577344 | 2024-11-20 20:09:26 |
| bgg_data | raw/objects/games | 1730333447804461 | 2024-10-31 00:10:47 |
| bgg_data | raw/objects/games | 1728676924892464 | 2024-10-11 20:02:04 |
| bgg_data | raw/objects/games | 1726869993009335 | 2024-09-20 22:06:33 |
| bgg_data | raw/objects/games | 1724967426023865 | 2024-08-29 21:37:06 |
| bgg_data | raw/objects/games | 1723671710966893 | 2024-08-14 21:41:51 |
| bgg_data | raw/objects/games | 1721888393714463 | 2024-07-25 06:19:53 |
| bgg_data | raw/objects/games | 1721147850023745 | 2024-07-16 16:37:30 |
| bgg_data | raw/objects/games | 1720538619978866 | 2024-07-09 15:23:40 |
| bgg_data | raw/objects/games | 1719427179309064 | 2024-06-26 18:39:39 |
| bgg_data | raw/objects/games | 1718727954502104 | 2024-06-18 16:25:54 |
| bgg_data | raw/objects/games | 1717875919368938 | 2024-06-08 19:45:19 |
| bgg_data | raw/objects/games | 1717195700015761 | 2024-05-31 22:48:20 |
| bgg_data | raw/objects/games | 1716489185536915 | 2024-05-23 18:33:05 |
| bgg_data | raw/objects/games | 1715797632435985 | 2024-05-15 18:27:12 |
| bgg_data | raw/objects/games | 1715108438703699 | 2024-05-07 19:00:38 |
| bgg_data | raw/objects/games | 1714158379364878 | 2024-04-26 19:06:19 |
| bgg_data | raw/objects/games | 1713464380724452 | 2024-04-18 18:19:40 |
| bgg_data | raw/objects/games | 1711561705858375 | 2024-03-27 17:48:25 |
| bgg_data | raw/objects/games | 1710336954503166 | 2024-03-25 16:45:31 |
| bgg_data | raw/objects/games | 1708980495752949 | 2024-02-26 20:48:15 |
What’s new on BGG?
# get last two generations
gens <-
games_objs$bgg_data |>
arrange(desc(updated)) |>
head(2) |>
pull(generation)
# most recent gen
active_games <- load_games_from_bucket(
bucket = "bgg_data",
generation = gens[1]
)
previous_games <- load_games_from_bucket(
bucket = "bgg_data",
generation = gens[2]
)
# find games only in most recent batch
active_games |>
anti_join(
previous_games |>
select(game_id)
) |>
bggUtils:::unnest_info() |>
select(game_id, name, yearpublished) |>
arrange(desc(yearpublished)) |>
knitr::kable(format = "markdown")| game_id | name | yearpublished |
|---|---|---|
| 446875 | The Fable of Mable on the Witch’s Table | 2026 |
| 446893 | Realm of Reckoning | 2026 |
| 446929 | Purgatory: Reincarnate Souls | 2026 |
| 447002 | Sanibel | 2026 |
| 447090 | BattleForge: Berserker | 2026 |
| 447123 | Marches & Batailles | 2026 |
| 447125 | Vampire Survivors: The Board Game | 2026 |
| 447137 | Trismegistus: Roll & Write | 2026 |
| 447245 | Italia 1497 | 2026 |
| 447251 | Mate: The Party Game for Feral Naturalists | 2026 |
| 447261 | PowerPunch! | 2026 |
| 447276 | Rascally Rabbits | 2026 |
| 447277 | Atlas: Backpacker Edition | 2026 |
| 446366 | A Useless Fight: The Battle of Trent’s Reach, January 23-24, 1865 | 2025 |
| 446383 | Ducks in a Row: A game of deducktive reasoning | 2025 |
| 446616 | Miams | 2025 |
| 446631 | HiLo: Dein Königreich | 2025 |
| 446701 | The King of Antiques | 2025 |
| 446736 | Empire The Board Game | 2025 |
| 446836 | Obstgarten Tropic | 2025 |
| 446846 | Artisticamente | 2025 |
| 446874 | Fight for America! | 2025 |
| 446888 | Go Viking | 2025 |
| 446889 | Sci Me! arithmetic | 2025 |
| 446895 | Moana Nui | 2025 |
| 446898 | World War II Solitaire: Echoes of War – Allied Edition | 2025 |
| 446901 | Twelve | 2025 |
| 446904 | ICBRG | 2025 |
| 446906 | Linimasa Card Game: Nusantara Edition | 2025 |
| 446907 | Buckanjär | 2025 |
| 446912 | Hooray! | 2025 |
| 446913 | Funkyphant | 2025 |
| 446914 | Game Meets Puzzle: Ocean Twist | 2025 |
| 446915 | Wedding Seating Chart | 2025 |
| 446916 | Game Meets Puzzle: Crazy Copter | 2025 |
| 446921 | My Very First Games: Block by Block | 2025 |
| 446922 | Bohaterowie Domowego Budżetu | 2025 |
| 446925 | Plastic Fighters | 2025 |
| 446926 | The Eldritch Diary | 2025 |
| 446927 | Chesscode | 2025 |
| 446930 | Match Me If You Can | 2025 |
| 446932 | echoes: Ever & After | 2025 |
| 446933 | Mystery Riddles: Adventskalender – Der indische Palast | 2025 |
| 446935 | KakerlaHex | 2025 |
| 446939 | My Favorite Pizza | 2025 |
| 446943 | Canopic Jar Curse | 2025 |
| 446948 | Ventopia: Die fliegende Insel | 2025 |
| 446949 | Die glorreichen Gilden von Buttonville | 2025 |
| 446950 | echoes tatort: Der Geisterseher | 2025 |
| 446953 | Soda Jerk | 2025 |
| 446965 | Postcard Myitkyina, Burma 1944 | 2025 |
| 446973 | 私だけの晴天 (My Own Sunny Day) | 2025 |
| 446974 | Vi Är Ej Maskiner | 2025 |
| 447004 | Quick Paws | 2025 |
| 447008 | Wanderwege | 2025 |
| 447009 | Slopecrashers | 2025 |
| 447020 | Team Boxing Trick | 2025 |
| 447022 | SMOMBIE -Vacation- (スモンビー・バケーション) | 2025 |
| 447023 | Occupation | 2025 |
| 447024 | Ring of Truth | 2025 |
| 447025 | Prima o dopo | 2025 |
| 447026 | Catacombs Alpha | 2025 |
| 447037 | Pilsna: A Drink to the Past | 2025 |
| 447042 | Pork | 2025 |
| 447050 | Smatchy Matchy | 2025 |
| 447051 | Sherlock Holmes and the Return to Baskerville Hall | 2025 |
| 447052 | Murder at Gatsby Manor | 2025 |
| 447056 | Big Daft Noise War | 2025 |
| 447064 | La Elocuencia del Diablo | 2025 |
| 447065 | Penguin Kaboom | 2025 |
| 447066 | FIRE! Modern Combat | 2025 |
| 447083 | Fly Fight Win: Danger Zone | 2025 |
| 447084 | Fly Fight Win: Honcho | 2025 |
| 447085 | Fly Fight Win: Wingman | 2025 |
| 447086 | Несказочная заварушка (The Not Fabulous Mess) | 2025 |
| 447089 | COMBOE! | 2025 |
| 447093 | Chutney | 2025 |
| 447094 | Pikel | 2025 |
| 447101 | Heist Night | 2025 |
| 447102 | Tatort Meer Junior: Schmutziges Verbrechen | 2025 |
| 447110 | Everest Go! | 2025 |
| 447111 | Octagion Starter Pack | 2025 |
| 447115 | PocketParks | 2025 |
| 447116 | The Summer Job: a Break system gamebook | 2025 |
| 447119 | Megabeast: Last Titans | 2025 |
| 447122 | The Eyes of the Enemy: The Battle for Madrid, November 1936 | 2025 |
| 447144 | Csongor és Tünde: Kalandozás Tündérországban | 2025 |
| 447145 | Csongor és Tünde: A Kártyajáték | 2025 |
| 447147 | Battle Pages: 2025 Year-Long Adventure Set | 2025 |
| 447148 | Blastborn | 2025 |
| 447149 | Olé11 | 2025 |
| 447150 | O.OQUO: The Forgotten Game | 2025 |
| 447151 | Creature Crash | 2025 |
| 447154 | Cows in Space | 2025 |
| 447156 | La Sfida di CNA | 2025 |
| 447209 | Shakespeare: The Card Game | 2025 |
| 447218 | Shikigamijima Island | 2025 |
| 447219 | Inverted Pyramids | 2025 |
| 447220 | Golden Gamble | 2025 |
| 447222 | Gadur | 2025 |
| 447228 | Twisted Words | 2025 |
| 447230 | Cyberpunk: Crittmancer | 2025 |
| 447235 | Night of the Wolf | 2025 |
| 447243 | Cardia | 2025 |
| 447244 | Exploding Kittens: The Board Game | 2025 |
| 447246 | Drunken Chonker | 2025 |
| 447247 | Rainbow Mancala | 2025 |
| 447248 | Chonker Party: Team Play | 2025 |
| 447249 | Pollard | 2025 |
| 447253 | Warlords of the Steppes | 2025 |
| 447256 | Chonker Party: Team Play | 2025 |
| 447257 | Twenty-Eight | 2025 |
| 447259 | Burl | 2025 |
| 447260 | The Siren’s Melody | 2025 |
| 447262 | Loom | 2025 |
| 447263 | Tank Club | 2025 |
| 447264 | Gatling Camel Riders | 2025 |
| 447267 | Snow Colony | 2025 |
| 447269 | Escuela de Monstruos | 2025 |
| 447275 | One Page Naval Battles | 2025 |
| 447298 | Disney Villainous: Treacherous Tides | 2025 |
| 447314 | Casque Chèque Chat | 2025 |
| 447354 | World War II Solitaire: Echoes of War – Axis Edition | 2025 |
| 446092 | Back to the 80s: Il grande quiz degli anni Ottanta | 2024 |
| 446371 | ХАЙП: Битва за популярність (HYPE: Battle for Popularity) | 2024 |
| 446400 | Nabstones | 2024 |
| 446408 | Memotions | 2024 |
| 446609 | Captain Octo | 2024 |
| 446810 | Warhammer 40.000: Kill Team – Core Book | 2024 |
| 447030 | Latte Maker | 2024 |
| 447135 | 假说演绎法 (The selfish gene) | 2024 |
| 447224 | My very first games: My Home | 2024 |
| 447226 | The Woof Woof Game | 2024 |
| 447229 | Bella Bee | 2024 |
| 447240 | HAKO | 2024 |
| 447273 | Hook Rally | 2024 |
| 446417 | Mars Ravelo’s Darna at ang Nawawalang Bato: Hero Edition | 2023 |
| 446608 | Card de Bomber | 2023 |
| 446946 | CHAOS | 2023 |
| 447017 | クイックピクト (Quick Pic) | 2023 |
| 447021 | Smombie | 2023 |
| 447028 | Оборотное зелье (Oborotnoe zelye) | 2023 |
| 447223 | Escape Box: Der Tempel des Drachen | 2023 |
| 447225 | Rusty Front Airship Pursuit | 2023 |
| 446299 | Il Boss del Mercato | 2022 |
| 446733 | Tengi | 2022 |
| 446845 | Identikit | 2022 |
| 447057 | Slap the Deck | 2022 |
| 447242 | CarousHELL: The Deck Building Game | 2022 |
| 447255 | Maltfriend’s Journey | 2022 |
| 446336 | Pas l’temps d’niaiser | 2021 |
| 446872 | Cactus Town: Deluxe Edition | 2021 |
| 446928 | Crímenes ilustrados: ¿Suicicio o asesinato? | 2021 |
| 447098 | Legacy of The Rangers | 2021 |
| 447152 | Mercy Ships | 2021 |
| 447163 | Das kleine Einmaleins | 2021 |
| 446903 | Show Me U Know Me | 2020 |
| 446968 | Indignity! | 2020 |
| 446969 | Indignity! Not Safe For Work | 2020 |
| 446970 | Indignity! Deluxe Box Edition | 2020 |
| 446971 | Indignity! Gold Box Edition | 2020 |
| 447124 | Tipni si!: Známe se? 18+ | 2020 |
| 447171 | Knights of the North Road | 2020 |
| 446942 | Magic School | 2019 |
| 447097 | Spell Arena | 2019 |
| 447268 | Millon | 2019 |
| 447055 | Naruto Shippuden: Combate DE Ninjas | 2018 |
| 447060 | Naruto Shippuden Battles of Kage | 2018 |
| 245646 | Champions of Midgard: Jarl Edition | 2017 |
| 447099 | Несміяка (Laughless) | 2017 |
| 447100 | Несміяка 18+ (Laughless 18+) | 2017 |
| 447096 | COMBOE! | 2006 |
| 447271 | Mister Mastro | 2005 |
| 227 | Knightmare Chess | 1994 |
| 446977 | Regierungsratsspieli | 1986 |
| 447027 | Parolo | 1963 |
| 447134 | Monster Maze Crazy Eights | 1959 |
| 40472 | CSI: Crime Game – Booster Pack #2 | NA |
| 446081 | Pixeline Skolehjælp: Lær om søde dyr | NA |
| 446372 | Honorbound: the Crucible of Legends | NA |
| 446377 | Halma Eckha mit Hindernissen | NA |
| 446621 | Deportes Cuatro | NA |
| 446905 | Σώσε τα προβατάκια (Save the Sheep) | NA |
| 446908 | Would You Still Love Me If… | NA |
| 446918 | Ratted | NA |
| 446960 | Little Select | NA |
| 446961 | Wolf Panic | NA |
| 446972 | Tartaria 2030 | NA |
| 446979 | Vividiem | NA |
| 447016 | Realms At War | NA |
| 447109 | Genshin Impact Liyue Millennial Board Game | NA |
| 447142 | 50 Dinossauros | NA |
| 447146 | Vakond túra | NA |
| 447221 | Five Boroughs | NA |
| 447250 | St. Gotthard Kriegsspiel | NA |
| 447270 | Manhattan | NA |