0:00:00.370,0:00:01.370 Balatro! 0:00:01.370,0:00:03.480 It’s the hot new indie darling. 0:00:03.480,0:00:09.540 It shifted a million copies in a month, it’s[br]been streamed by pretty much everyone on Twitch, 0:00:09.540,0:00:13.490 and it’s one of the top rated games of 2024[br]so far. 0:00:13.490,0:00:16.280 I’ve also played it… quite a bit. 0:00:16.280,0:00:22.970 But, this game has - and this is according[br]to its own designer - a “fundamental design flaw”. 0:00:22.970,0:00:28.519 A “cursed problem” that the designer has[br]been unable to solve. 0:00:28.519,0:00:30.680 Let me explain. 0:00:30.680,0:00:35.770 First - if you somehow haven’t played Balatro,[br]it’s a card game about trying to find poker 0:00:35.770,0:00:38.190 hands in order to score points. 0:00:38.190,0:00:40.270 Better hands score bigger points. 0:00:40.270,0:00:45.620 But on top of that, you can do all sorts of[br]wily tricks to boost your score. 0:00:45.620,0:00:47.940 Special cards rack up more points. 0:00:47.940,0:00:51.520 Crazy joker cards change the rules of the[br]game. 0:00:51.520,0:00:57.260 And you can stack your deck - or toss away[br]cards - to make certain hands more happenable. 0:00:57.260,0:01:04.489 It’s a really fun game - a sublime, synergistic[br]slot-machine that feels fun to play, and is 0:01:04.489,0:01:06.159 even more fun to break. 0:01:06.159,0:01:12.280 It’s also really elegantly designed - with[br]its clean UI, straightforward concept, and, 0:01:12.280,0:01:17.500 well, just how much depth has been squeezed[br]out of a few key systems. 0:01:17.500,0:01:20.680 But there’s one… interesting design choice[br]in there. 0:01:20.680,0:01:26.030 And it’s this: the game doesn’t tell you[br]how many points you’re going to score, before 0:01:26.030,0:01:27.480 you play your hand. 0:01:27.480,0:01:32.250 You simply pick your cards, cross your fingers,[br]and hit go. 0:01:32.250,0:01:35.950 Now this would be really quite helpful information. 0:01:35.950,0:01:39.490 It could tell you to play one hand over another. 0:01:39.490,0:01:45.259 It could tell you if you’re about to scrape[br]past the ante, or miss it by a few points. 0:01:45.259,0:01:50.070 It could tell you if you’re about to win[br]the entire game - or lose the whole thing 0:01:50.070,0:01:52.050 and have to start from scratch. 0:01:52.050,0:01:53.050 And yet… 0:01:53.050,0:01:58.380 Balatro doesn’t give you a, let’s call[br]it - a score preview. 0:01:58.380,0:02:02.740 Of course, this was an entirely intentional[br]design choice. 0:02:02.740,0:02:08.170 LocalThunk - the game’s anonymous Canadian[br]designer - has explained that, for him, the 0:02:08.170,0:02:13.620 joy of Balatro lives in that precise moment[br]I just described. 0:02:13.620,0:02:16.120 When you cross your fingers and hit play. 0:02:16.120,0:02:21.550 When you’ve set up your point-scoring engine[br]and hope that it will bring home the bacon. 0:02:21.550,0:02:26.420 LocalThunk says “my personal belief is that[br]the game is more fun when you set up your 0:02:26.420,0:02:33.420 Rube Goldberg machine and watch it go before[br]knowing whether or not the hand will win the round.” 0:02:33.420,0:02:35.950 And Balatro totally plays into this! 0:02:35.950,0:02:40.140 There’s so much hype and pageantry after[br]playing your hand. 0:02:40.140,0:02:43.450 The numbers tick up, with escalating sound[br]effects. 0:02:43.450,0:02:48.190 Each card and joker steps forward in turn[br]to add their points to the total. 0:02:48.190,0:02:54.360 If you’re lucky, the score multiplier will[br]set on fire and start to burn hotter and hotter 0:02:54.360,0:02:56.640 with each multiplication. 0:02:56.640,0:03:00.090 And so if you already knew how many points[br]you were going to get. 0:03:00.090,0:03:05.120 If a bit of UI had pre-calculated the score[br]and told you that you were going to win the 0:03:05.120,0:03:06.780 ante with this hand… 0:03:06.780,0:03:07.990 well none of that would matter. 0:03:07.990,0:03:10.950 In fact, it would just get in the way. 0:03:10.950,0:03:14.170 This is not the only reason to forgo a score[br]preview, mind. 0:03:14.170,0:03:18.650 It would also add cruft to the UI - especially[br]when you need to account for cards that have 0:03:18.650,0:03:20.590 random properties. 0:03:20.590,0:03:25.440 How do you elegantly show a range of possible[br]scores? 0:03:25.440,0:03:30.770 It would slow the game down, incentivising[br]players to check every possible hand to find 0:03:30.770,0:03:32.220 the highest-scoring combination. 0:03:32.220,0:03:38.330 And it would change the entire feel - from[br]a chill game about vibing with cards, to a 0:03:38.330,0:03:41.349 stern spreadsheet-style strategy game. 0:03:41.349,0:03:46.480 And so this is a totally legit game design[br]decision, right? 0:03:46.480,0:03:50.560 Every game designer has to choose how much[br]information to give to the player. 0:03:50.560,0:03:55.890 Like, should you show a boss’s health bar,[br]or keep it hidden? 0:03:55.890,0:04:00.400 Should enemies come up with their strategies[br]in secret, or should their intent be explained 0:04:00.400,0:04:01.670 to the player? 0:04:01.670,0:04:07.060 As I’ve explored in various other videos,[br]how much information a player has will change 0:04:07.060,0:04:10.870 their behaviour, and change the way the game[br]feels. 0:04:10.870,0:04:16.230 And so Balatro hides its score preview to[br]make players act more quickly - and to create 0:04:16.230,0:04:20.290 a feeling of suspense and drama whenever you[br]play a hand. 0:04:20.290,0:04:25.100 LocalThunk had an experience in mind - and[br]picked mechanics that would nudge players 0:04:25.100,0:04:26.669 towards that feeling. 0:04:26.669,0:04:28.890 A smart design choice. 0:04:28.890,0:04:30.130 However! 0:04:30.130,0:04:33.970 Balatro is not like those other games I just[br]showed. 0:04:33.970,0:04:39.479 Because while the score preview is hidden[br]from the player… the information is still 0:04:39.479,0:04:41.530 technically available! 0:04:41.530,0:04:44.530 Because you can just… you can just calculate it yourself. 0:04:44.530,0:04:49.510 So, like…. a straight is worth 30 chips[br]and 4 mult. 0:04:49.510,0:04:56.419 These cards are going to add an extra 10,[br]20, 30, 39, 47 chips, and then the two face 0:04:56.419,0:04:59.990 cards will add another 30 each thanks to this[br]joker. 0:04:59.990,0:05:05.280 So that’s 137 chips times 4… 548. 0:05:05.280,0:05:07.070 Not quite enough to beat the ante. 0:05:07.070,0:05:08.330 But close. 0:05:08.330,0:05:13.100 And so if information in a game can be hidden,[br]or visible… 0:05:13.100,0:05:19.580 Balatro’s score preview falls into a weird[br]half category - hidden, but attainable if 0:05:19.580,0:05:21.480 you really want it. 0:05:21.480,0:05:25.580 And that’s the fundamental design flaw at[br]the heart of Balatro. 0:05:25.580,0:05:31.500 The designer wants the excitement of a slot[br]machine - but also the numerical predicability 0:05:31.500,0:05:33.139 of an Excel spreadsheet. 0:05:33.139,0:05:38.940 And so the only way to square that circle[br]is to hope that players won’t bother to 0:05:38.940,0:05:41.310 calculate the final score. 0:05:41.310,0:05:46.720 But if we go back to that timeless Soren Johnson[br]quote - “given the opportunity, players 0:05:46.720,0:05:51.319 will optimize the fun out of a game” - it[br]shouldn’t be surprising that a number of 0:05:51.319,0:05:56.310 Balatro players are playing the game with[br]the calculator app open on their phone, or 0:05:56.310,0:06:01.690 with a spreadsheet set up on a second monitor,[br]or with Steam’s in-game overlay showing 0:06:01.690,0:06:05.870 a bespoke website that calculates Balatro[br]hands. 0:06:05.870,0:06:10.840 And - actually - this is exactly why Balatro[br]has a deck view. 0:06:10.840,0:06:16.070 During playtesting, the game did not show[br]you which cards were left in your deck. 0:06:16.070,0:06:21.570 But - again - playtesters could technically[br]get that information by tracking which cards 0:06:21.570,0:06:23.090 had already been played. 0:06:23.090,0:06:28.789 And after polling users, LocalThunk found[br]that many were doing just that - even though 0:06:28.789,0:06:30.270 it really wasn’t much fun. 0:06:30.270,0:06:32.789 So he added a powerful deck peek feature. 0:06:32.789,0:06:35.870 But a score preview felt different. 0:06:35.870,0:06:40.080 It felt like it encroached upon the DNA of[br]the game. 0:06:40.080,0:06:42.550 It stepped on the stuff that made Balatro… 0:06:42.550,0:06:43.680 Balatro. 0:06:43.680,0:06:48.569 And so while the designer is empathetic to[br]people who wish to play more strategically. 0:06:48.569,0:06:54.840 And is bummed out that the optimum way to[br]play involves busywork, and doing calculations 0:06:54.840,0:07:00.300 outside of the game, he worries that adding[br]a score preview would spoil the fun for those 0:07:00.300,0:07:01.919 who wish to play more casually. 0:07:01.919,0:07:04.300 And that’s totally true! 0:07:04.300,0:07:08.830 Making a game better for one group can make[br]it worse for another. 0:07:08.830,0:07:13.680 As a designer you need to be certain who the[br]game is for - and then protect that player 0:07:13.680,0:07:16.830 base from certain design decisions. 0:07:16.830,0:07:20.830 Even if that design decision is provided merely[br]as an option. 0:07:20.830,0:07:26.540 Speaking on the Eggplant podcast, LocalThunk[br]says “if I add an option to have this score 0:07:26.540,0:07:30.039 preview, people are just going to click on[br]it, and they're not going to experience the 0:07:30.039,0:07:32.550 game that I wanted to create.” 0:07:32.550,0:07:38.300 And besides - should a designer even have[br]to endorse an option that directly goes against 0:07:38.300,0:07:40.050 their intentions for the game? 0:07:40.050,0:07:44.370 LocalThunk has been clear that he made the[br]game for himself - and isn’t interested 0:07:44.370,0:07:47.150 in changing the game for other people. 0:07:47.150,0:07:49.919 Even if there are a million of them. 0:07:50.683,0:07:51.919 But. Here’s the rub. 0:07:51.919,0:07:57.659 It’s one thing to make a bold design choice[br]and then stand by it, for the betterment of 0:07:57.659,0:07:58.659 the game. 0:07:58.659,0:08:01.479 To shun the haters and stick by your design. 0:08:01.479,0:08:07.130 But that doesn’t really work if there’s[br]a way for players to find a way around your 0:08:07.130,0:08:11.180 choice - no matter how tedious that loophole[br]might be. 0:08:11.180,0:08:12.409 And we know this! 0:08:12.409,0:08:16.099 Because this is not the first time this has[br]happened to a game. 0:08:16.099,0:08:21.270 In fact, it’s not even the first time it’s[br]happened to an extremely popular roguelike. 0:08:21.270,0:08:23.889 Enter: The Binding of Isaac. 0:08:23.889,0:08:28.659 So this basement-dwelling dungeon crawler[br]is packed with powerful items and upgrades… 0:08:28.659,0:08:31.979 but the game doesn’t tell you what they[br]do. 0:08:31.979,0:08:39.000 They just have a name, or a cryptic tagline,[br]or maybe just three question marks. 0:08:39.000,0:08:44.280 The game’s designer, Edmund McMillen, did[br]this on purpose to create a feeling of mystery, 0:08:44.280,0:08:47.663 similar to the sensation he got when playing[br]games as a kid - like 0:08:47.663,0:08:49.710 the original Legend of Zelda. 0:08:49.710,0:08:54.140 He described that game by saying “You weren't[br]sure what things did until you experimented 0:08:54.140,0:08:58.640 with them, and you had to brainstorm with[br]your friends and put all your findings together 0:08:58.640,0:09:00.250 in order to progress”. 0:09:00.250,0:09:05.269 And so to mimic that mysterious sensation[br]in Isaac - the items are deliberately left 0:09:05.269,0:09:06.269 unexplained. 0:09:06.269,0:09:11.279 You’ll need to pick things up, try them,[br]and puzzle out their properties. 0:09:11.279,0:09:17.329 Finding a new item should lead to curiosity,[br]experimentation, and surprise. 0:09:17.329,0:09:20.690 And that worked… for about five seconds. 0:09:20.690,0:09:25.270 And then people figured out what all the items[br]did and put that information up on wikis and 0:09:25.270,0:09:26.779 other websites. 0:09:26.779,0:09:29.660 Want to know what this weird little thing[br]will do? 0:09:29.660,0:09:34.070 Just find it on Platinum God and mouse over[br]it for a full description. 0:09:34.070,0:09:39.529 So, like Balatro - McMillen chose to hide[br]information to create a certain feeling. 0:09:39.529,0:09:43.980 But because that information is technically[br]attainable - this time with a Google search 0:09:43.980,0:09:48.160 rather than a spreadsheet - a number of players[br]ended up playing the game in a completely 0:09:48.160,0:09:50.829 different way than the designer intended. 0:09:50.829,0:09:52.880 Arguably, a worse way. 0:09:52.880,0:09:58.490 And so after multiple DLC packs which added[br]hundreds of new pick-ups, this has become, 0:09:58.490,0:10:02.670 basically, the defacto way to play The Binding[br]of Isaac. 0:10:02.670,0:10:06.600 McMillen says “People would always say,[br]"You can't play Isaac without a browser open 0:10:06.600,0:10:07.600 on your phone." 0:10:07.600,0:10:11.750 I hated that that's how everyone played for[br]so long... and still play”.”. 0:10:11.750,0:10:17.269 In fact, he’s described the lack of item[br]descriptions as the biggest flaw with Binding 0:10:17.269,0:10:18.269 of Isaac. 0:10:18.269,0:10:22.220 This design choice has basically haunted him[br]in the years since Isaac’s release. 0:10:22.220,0:10:28.320 And in a post in 2023, McMillen has said that[br]he’s considering finally adding item descriptions 0:10:28.320,0:10:30.700 into the game as an optional feature. 0:10:30.700,0:10:34.589 Perhaps deciding that it’s better to support[br]them officially, than players having a worse 0:10:34.589,0:10:38.160 time with your game because of the way you[br]designed it. 0:10:38.160,0:10:42.503 And I wonder if something similar might happen[br]with Balatro. 0:10:42.503,0:10:45.480 Now, I don’t think the two examples are[br]exactly the same. 0:10:45.480,0:10:51.160 I agree that Balatro is more fun to play without[br]score previews and I’ve never once thought 0:10:51.160,0:10:55.190 to pre-calculate a score in the 30-odd hours[br]I’ve played the game. 0:10:55.190,0:11:02.520 This issue only really affects a small portion[br]of the game’s most hardcore, strategy-minded audience. 0:11:02.520,0:11:08.680 But over time, as the game’s long tail stretches[br]out, I think this decision might come to haunt 0:11:08.680,0:11:11.550 the developer, just like Isaac’s item descriptions. 0:11:11.550,0:11:16.430 But, if you’re watching LocalThunk, I think[br]there are ways to provide this as an option 0:11:16.430,0:11:20.380 to these players… without spoiling the game[br]for everyone else. 0:11:20.380,0:11:26.060 For one, a score preview is only needed by[br]players who are incredibly invested in the 0:11:26.060,0:11:30.830 game, so the option could be granted as a[br]late-game unlock - and not as something you 0:11:30.830,0:11:33.040 can switch on from the word go. 0:11:33.040,0:11:38.660 Kinda like how, I dunno, how Chrono Cross has[br]a fast-forward button, but it only unlocks 0:11:38.660,0:11:40.720 after you’ve beaten the game. 0:11:40.720,0:11:45.750 The option could also be clearly communicated[br]to the player - like how Celeste prefaces 0:11:45.750,0:11:50.680 its powerful assist mode with a message that[br]explains who this option is for. 0:11:50.680,0:11:55.811 Or how Heat Signature politely asks you to[br]not turn off permadeath, please, it’s there 0:11:55.811,0:11:56.950 for a reason. 0:11:56.950,0:12:02.880 Or Balatro could open itself up to mods - so[br]users can hack their own score preview into 0:12:02.880,0:12:06.709 the game, without the developer needing to[br]officially support it. 0:12:06.709,0:12:11.779 This is actually what happened to Isaac - the[br]‘External Item Descriptions’ mod is the 0:12:11.779,0:12:17.320 most popular Isaac add-on in the game’s[br]Steam workshop, with almost 2 million subscribers. 0:12:17.320,0:12:19.670 That’s not great for console players, though. 0:12:19.670,0:12:24.519 So it could instead be provided it as a cheat[br]code - so players have to actively seek this 0:12:24.519,0:12:29.130 thing out, rather than stumble onto it as[br]an innocuous option in the menu. 0:12:29.130,0:12:34.570 As I’ve discussed in my videos about accessibility[br]- there are plenty of ways to open a game 0:12:34.570,0:12:41.199 up to a wider audience, without necessarily[br]spoiling it for the target group of players. 0:12:41.199,0:12:47.510 Whatever LocalThunk decides to do, this has[br]proven to be a fascinating game design case study. 0:12:47.510,0:12:51.339 About how you can change how a game feels,[br]by changing how much information you give 0:12:51.339,0:12:52.560 to the player. 0:12:52.560,0:12:56.980 About how players won’t always act in the[br]way you want them to, especially if you leave 0:12:56.980,0:12:58.420 open a loophole. 0:12:58.420,0:13:03.310 And about how the best intentions in game[br]design sometimes have to change, when you 0:13:03.310,0:13:06.779 see how players actually interact with your[br]game. 0:13:06.779,0:13:10.470 I’ll be curious to see what happens with[br]Balatro. 0:13:10.470,0:13:15.209 For now - check out this video on heads up[br]displays, where I talk more about how information 0:13:15.209,0:13:18.540 can change the way a player acts, and feels. 0:13:18.540,0:13:20.921 Thanks for watching.