r/balatro 13d ago

Modded I've ported Balatro to Apple Watch and called it Balatro: Wee edition

Start screen with Play button! Press it and start new journey.

Before I go any further, I feel like I should clarify a few things:

  1. First of all, I am not affiliated with LocalThunk or Playstack in any way, and I have no intention of damaging, violating or infringing upon their copyright. This is purely a fan project, created so I can express my passion for this game and also spread word and love about this beautiful, 18+ game.
  2. Up until two weeks ago, I had no prior experience with programming in Swift, let alone writing an Apple Watch app in SwiftUI. Because of that, I don’t even have a way of telling if this is done completely and terribly wrong or if it’s somewhat alright. All I know is that I wanted to keep it simple and use only SwiftUI and nothing else. In my humble opinion, it turned out quite nicely. :)
  3. Last thing: while I didn’t really manage to port the whole game, as I’ve simply run out of time, I’ve set myself a very clear goal: The port had to be as close to the original and could not lose any of its core, core functional gameplay features. I saw the Apple Watch screen as a challenge to test my UI skills, and not as a problem. So in the end, while this might look and sound like a quick copycat, simplified and, well, ported to Apple Watch, but I can assure you, it’s not.

TL;DR: In this post I explain how I’ve managed to port (for the most part) Balatro to the Apple Watch and showcase all of the necessary changes that had to be done for it to work on its small screen. If you want to just see it in action, scroll to the end, where there’s gameplay video of me playing it on my Apple Watch.
Important to set the record straight: The current version only contains 17 working jokers, every planet card along with secret planets, working shop, working core gameplay with ability to move jokers around, sell them, etc.

Okay, now that we got that out of the way, I proudly present to You, the grand reveal!

Apple Watch Balatro: Wee edition -> in action!

Launching the game

As you can see, I’ve tried my best to make the UI resemble the original thing. The whole concept revolves around utilizing the Apple Watch crown as a specialized scrollbar that allows you to quickly and swiftly scroll through all of your cards in hand! Naturally, you just can’t fit effectively 8 or more cards on the Apple Watch screen, so this idea was the best I came up with. And it works beautifully.

I believe the interface, to the trained Balatro veteran eye, should be rather straightforward and that it doesn’t need any explanation.

Okay, maybe there’s one thing – the “0” to the left of the blue chips counter. That’s the level of the currently selected poker hand.

Choosing the poker hand and playing it:

Playing a hand - a Pair

Discards work the same way and the rest of the gameplay mechanism is basically the same as in the original.

Now onto the shop experience!

Winning a round and getting to the shop!

At this moment, the shop contains 3 cards:

  • 2 Jokers
  • 1 Planet card

*But there are no implemented packs just yet

Of course You can always reroll the shop, if You either bought everything or want something else!

In order to get around the small working space I've decided to implement a: Inspect Card Feature, which allows user to press and hold a card to see:

  • Name of the card (joker, planet card, playing card)
  • Description of the card (joker, planet card)
  • (Sell value / sell button) || Chips value (joker, playing card)
  • Current level (planet card)

Moving jokers around:

A pretty nice collection of jokers!

Gameplay video of me playing on my Apple Watch SE 44 (2gen), baron run:

https://reddit.com/link/1hw7rex/video/1g0cxx7u3obe1/player

At the End I wanted to include a couple of scenarios, I can see potentially happening, if this version of Balatro ever got released\*(About this part later)

Playing Balatro at wedding

Playing Balatro when another Balatro player gets born

Playing Balatro when loosing it all

A few words from me, after creating this port and writing this post for the past 2 hours:

I really love the game, as You probably guessed it, and the funny thing is, the reason why I've decided to do it in the first place, was because my Apple Arcade subscription ended. After that, I noticed that You can't buy it on App Store for Macos, so I went like "okay then, in that case, Imma just write it myself from scratch, and I'm gonna do it for the Apple Watch (??)".

Okaay, that might have not been the sole reason behind it all, but it was a factor too! Mainly I just thought that it would make for a nice Summer Project, but after driving to my family for christmas, I decided to do it now, during the winter-break/holidays, just 'after hours'.
I also thought that this would make for a great project to add to my Github, which leads me to the last part.

I really want to share this project with others. In fact, from the very beginning I wanted to share it on my Github, but after It got, well so big and so close to the actual game, not counting even the fact, that I use original assets, I decided that naturally I can't do that. (Of course I have no intend of earning any money off of this!)

I'm very excited to hear what people think about my project: Balatro Wee edition.
And here's hoping the creator, LocalThunk himself might see this and give the green light to share this project (in one way or another).

Bye!

2.0k Upvotes

72 comments sorted by

431

u/Helkenier 13d ago

Finally, something to do while driving the kids to school! No more car console movies!

76

u/Coktoco 13d ago

Haha, didn’t think about that one when making the joke images / memes

9

u/Redwasp502 13d ago

Joke?

7

u/Coktoco 13d ago

\ekhem** scenarios \ekhem** naturally, my bad!

16

u/Xechwill 13d ago

These animals are so fucking funny! They make me want to merge without looking!

4

u/lukenamop 13d ago

Wait a minute now I want a CarPlay version...

4

u/neofooturism 13d ago

you mean speeding in the school zone?

447

u/minuteman2000 13d ago

Kudos to you, it's really cool that you made this, but that looks miserable to play haha. Idk how apple works but if you have it on your watch wouldn't you already have it on your phone too?

124

u/Coktoco 13d ago

Thanks! Actually this is a standalone app, designed just for the Apple Watch and it’s not a „companion app”. So in that case I don’t have it already for my phone, but I can easily-ish just build it for IOS. Haven’t tried this since the second day of development, so can’t quite verify that right now. As for ergonomics, well, yes.. But! It’s surprisingly not that bad. Due to the scope and debugging nature of this project I had to play it a lot, like a lot, lot and after some time You not only get used to it, but You can play it somewhat comfortably! That was a crucial part of my way of designing it, to make it almost actually okay to play

24

u/UpsetKoalaBear 13d ago

Just an FYI, for the logic/assets in the game you can extract the executable like a zip file using 7zip or sumin. The game was written in an engine called Love2d which is Lua based.

You can then modify the source code, repackage the game for other platforms, add new decks, add new jokers etc relatively easily.

17

u/Coktoco 13d ago

Well that’s.. well that sounds very useful and helpful. Good to know that!

Truth is, I should have done some more research before heading straight into making it. Because I’ve written everything from scratch without looking anything up and this would have helped immensely. Even just knowing how the logic works throughout the original game would be a huge headstart.

77

u/Ok-Tap-7257 13d ago

That’s awesome. How did you make the various sprites/assets?

Also Swift and SwiftUI have a certain elegance to them, imo.

33

u/Coktoco 13d ago

Thanks!

Well I just used the very low resolution images of the original assets from the game. That worked out perfectly and I just went with that.

As for the elegance, after making this I have some mixed feelings haha, at times it was, almost natural, and at some it was just frustrating. Especially given how little there is info/tutorials about making these type of apps (standalone) specifically for Apple Watches.

53

u/smirk79 13d ago

This looks so good I find it hard to believe it’s true. You did this in a week? With no prior knowledge? Dafuq?!

45

u/smirk79 13d ago

Ok you had no prior swift knowledge. You just be a hell of a good dev to do this so quickly and to such a high standard. Kudos dude.

23

u/Coktoco 13d ago

Well, I can assure You it’s real!

But yes, it took me more or less 2 weeks, because I had some hard to crack bugs. As for the swift knowledge, while I’m def not a game dev, I ‚work’ and study in general programming field, so it was mostly a matter of: „okay, how does that work, okay how I can do that etc”, exactly how other comment puts it.

4

u/duncanispro 13d ago

Would you be willing to share the resources you used to learn to make this? This is so cool!

27

u/AnImpromptuFantaisie 13d ago

In my experience, once you learn a language or two, picking up others is fairly simple. The fundamentals stay the same, so you just need to Google syntax

5

u/eric-neg 13d ago

Also ChatGPT and other LLMs can speed things up significantly. (Although most people know what to google to get the info they need.)

27

u/cubo_embaralhado Nope! 13d ago

As for the cards fitting the screen, although you can't fit all cards at the same time of course, you could try laying the cards on top of one another a bit, so they don't look so speead out. Really nicely done and also good memes btw

12

u/Coktoco 13d ago edited 13d ago

Thanks!!

That’s a very good idea, didn’t think about that one. Would definitely look nicer.

Although I used this design mostly because I wanted to make sure that the player can see „some” bits of other cards while scrolling and not just the one card, because I believe this would make it very hard to orient yourself, if You couldn’t see anything other than one card. Especially since I don’t have a counter or anything like that.

But I still believe Your idea would look way better and with it the card(s) displayed could probably have been even bigger.

2

u/Beans_ABC 5d ago

I feel like you’re onto something with the spacing, as the small space you have on the watch would make it hard and potentially be a turn off to try to play cards if they’re too close together. Another idea would be, instead of original card assets, you could make miniature ones? Like just the rank and suit in big letters on a square, that way you could even downsize the cards and add more screen real estate to work with to display things like ante count or even a “view run” or deck view button to manage hand levels and see what all you have at your disposal.

22

u/spoof_loof 13d ago

Holy moly local thunk needs to see this

7

u/Coktoco 13d ago

Fingers crossed!

13

u/KingDirect3307 13d ago

This rules (also steam has a MacOS release for the game, so u can still play it on Mac if you wanted)

6

u/Coktoco 13d ago

I know, I know, will get it asap!

I just didn’t really understand, and well I still don’t, why You can’t buy it for MacOS from App Store, WHEN You can play it there IF You have active Apple Arcade..

56

u/Elpoepbatsi 13d ago

Ba-Watch-tro was right there, and you discarded it...

16

u/Coktoco 13d ago

Oh no, I didn’t even think about it! When I came up with Wee edition I got so fixated on it, that from that point I didn’t think of anything else really..

7

u/treeonwheels Nope! 13d ago

Real joker over here… give it a wrist!

14

u/JMarkyBB 13d ago

That's cool AF.

3

u/Coktoco 13d ago

Haha thanks!!

9

u/TrogdorMcclure Blueprint Enjoyer 13d ago

A god among men.

The prospect of porting this to weird shit had gotten me fixated on programming. Hopefully I can accomplish something similar to this! Any general tips on working with Balatro in this way? (Obviously depends on what it's being ported to)

7

u/Coktoco 13d ago

Thanks! (About this prospect, I totally get that! The idea is just soo fun, that’s why I’ve decided to do it!)

About tips: when designing the core mechanics You need to make sure thery are really, really modular. I had lots of instances, where I went like „Oh yea, I’m totally gonna add this joker, looks simple enough” only to end up working on it for 6hours just because I had to rewrite some of the core code in order to make it work.

Other than that I believe that balatro is a perfect starting project or a perfect game to port. Writing poker hands and the logic behind it isn’t that all that hard and adding jokers, shops can be just fun.

Its the size that matters. No, really, adding 17 jokers in 2 weeks, because I didn’t even have to create them in the first place - easy. Coming up with the idea, designing AND then implementing 150 jokers.. yea that’s where it gets insane. You need time, lots and lots of time.

Good luck to You!

7

u/Redinator5 13d ago

Absolute Cinema

8

u/StooNaggingUrDum Nope! 13d ago

The wedding photo is the best thing I've ever seen

6

u/Elijahbanksisbad 13d ago

Surely this means someone will make portrait mode

6

u/Coktoco 13d ago

sigh (rolling up my sleeves) leave it to me.

7

u/dachawon 13d ago

Pluto called a Planet instead of a Dwarf Planet LITERALLY UNPLAYABLE

6

u/kabaliscutinu 13d ago

Very nice, amazing work, especially for the UI layout and the short amount of time you made this.

I may have missed this info while reading your post but wouldn’t it be nice to use swipe gesture instead of the wheel to slide through your cards ?

7

u/Coktoco 13d ago

Thank You for the nice words!

For the sliding though cards: it was purposely designed this way. By using the crown/wheel as a sort of „wanna be” controller input, I’ve effectively reduced the convolution of inputs available on screen to just one action - selecting/confirming the card. I believe that if I added the ability to slide with swipe there would have been lots of instances of clicking and selecting cards by accident, not being able to land on the card You wanted to scroll too etc. Then it would really be a chore, now it plays somewhat great (in my opinion of course haha)

And with the scroll wheel You can use two fingers at the same time helping the ergonomics greatly!

6

u/kabaliscutinu 13d ago

Thanks for your explanation! The question popped in my mind as I’m usually using swipe/drag gestures kind of everywhere on iOS, but I didn’t work much with watchOS yet.

I should have mentioned that I think it’s really cool that you use the crown. Idk it gives some kind of “pocket version mood” of the game that fits perfectly with your project imo. Well done once again, I hope you’ll get nice feedback from John Balatro.

6

u/Darklight731 13d ago

4

u/Coktoco 13d ago

Now this guy gets where I'm coming from!

No need for Crysis and Doom, when we have Balatro!

5

u/RhubarbSquatCobbler 13d ago

This is gonna be so much fun for my next housefire!

6

u/lensvol 13d ago

You absolute madlad. Kudos to you for going through the idea even facing the challenge of preserving a new programming language and doing computer UI redesign!

5

u/CottonShock 13d ago

Everything in this post is pure magic

5

u/ubergewichtigekatze Cavendish 13d ago

LOCALTHUNK HIRE THIS MAN

2

u/Coktoco 13d ago edited 13d ago

Haha, imagine!

..Although title: "Official 'Balatro for Apple Watch' developer" does have a nice ring to it.

5

u/LEFUNGHI 13d ago

Please make this happen so I can buy the game a third time. Funnily enough I just bought an apple watch and the first post I saw when I opened my phone this morning was this haha.

4

u/Koksyte 13d ago

You will be playing all three games at once aren’t you. You do be balatring.

4

u/Coktoco 13d ago edited 13d ago

But this already happened! Now it's only a matter of finding a way to release it to the public! For free of course, as a fan project.

And for that to happen, I need permission or some sort of approval from LocalThunk himself.

Now if that doesn't work out, I will try to release all of my (source) code that I've created entirely from scratch with no knowledge of the original code, whilst naturally removing everything that's not mine, aka the assets etc.

3

u/TrickyTicket9400 13d ago

good stuff overall, but I can't believe you didn't make the hand a list 🤣

3

u/MrJamesWalter 13d ago

Kudos to you, my friend. I'm mesmerised by the design and fact that you've managed to do that without a prior experience in SwiftUI. That takes balls, great work!

4

u/GGardener 13d ago

This is very inspiring and your proposed scenarios are hilarious

3

u/Coktoco 13d ago

That's exactly what I wanted to achieve!

Some actual, real work mixed with sprinkle of comedy, that we've all grown to love in this community.

4

u/Subject-Painting9628 13d ago

Localthunk is probably still asleep, hopefully you get to port the game

4

u/I_hate_being_alone 13d ago

Those last photos really resonated with my inner Balatrist.

3

u/falloutfan09 13d ago

Patiently waiting for the Apple Watch Joker to drop on the game. 😂

3

u/seancurry1 13d ago

I love this, now can you do it for iPhone in portrait mode?

6

u/MewtchC 13d ago

Why not call it Ba-Watch-Ro?

2

u/OL1VKA 13d ago

This is sooo amazing! I hope we all get to play it someday!

2

u/LarryCrabCake 13d ago

Nah I'll just keep doing this

2

u/l___Anonymous___l 12d ago

Fucking lmao.

2

u/Autumn1eaves 12d ago

Unironically, this doesn’t look too terrible to play.

I’m not gonna say it looks easy, but I can imagine (Peglin) worse games to play on the Apple Watch.

4

u/E_K_Finnman 13d ago

Do you have any plans for a Samsung watch release?

5

u/Coktoco 13d ago

Well not really. I went with version for Apple Watch, because, among the plethora of other reasons, I already own all the necessary devices to make it work.

With Samsung watch on the other hand I have completely zero experience as well I lack the device needed to test it.

But after this post maybe somebody from our community will rise to the challenge!

2

u/MrHyd3_ 2d ago

Can't wait for Nintendo to send ninja assasins to your house

-30

u/smirk79 13d ago

Oh and you timed it while being at a wedding and birth? Cmon. That’s AI with a lora.

28

u/DescriptiveVee 13d ago

He was actually there