Show the code
::tar_visnetwork(targets_only = T) targets
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 |