re: numbers, you could store them as integers, but just encoded as 10 times their value. So 1.5 becomes 15.
Would reduce max score to 400M and you'd have to round 0.25 up or down. Would probably want to drop the 0.01 cards too.
super cool project
odo1242
Yea - this is basically "fixed point but not binary" and it would totally work.
LoganDark
> re: numbers, you could store them as integers, but just encoded as 10 times their value. So 1.5 becomes 15.
I find it really weird that they dismissed fixed point as being too technical because it's actually really simple, it's basically just this.
city41
I dismissed it as too technical for that blog post. I expected this post to be read by a wide variety of people, so I tried to keep technical stuff to a minimum. I did say it's simple and that it's what I'd probably use if I kept going with the project.
azhenley
The author also wrote about his experience making a space shooter game for the E-Reader:
While I understand the sentiment of Playstack and LocalThunk to take down these kind of ports, it's a shame for the community because this will only make the game grow more.
geoffpado
It doesn’t sound like they did? The author seems to be proactively not releasing out of respect for LocalThunk, not out of fear. (And certainly not because they’ve already been sent a takedown or anything.)
kinduff
Because he didn't published it, but there are other similar ports that have been taken down.
What legal standing would they even have, if the game were simply named something different from "Balatro"? Game mechanics aren't copyrightable, and the game assets are literally just playing cards...
ronsor
The clear solution is to not copy every aspect of the original and also release your port under a different name.
im3w1l
I think floating point is viable - balatro doesn't exactly perform billions of floating point operations per second.
Waterluvian
I’m not sure 32 vs. 64 bit even matters for scoring. Doesn’t balatro go well above the uint64 max, meaning it’s surely using some Numeric abstraction type?
city41
It is written in Lua and the source code is available (just extract it from the PC version). It's using Lua's number type for all numbers, which is a double precision float.
Eavolution
Balatro uses 64 bit floats for numbers. This does matter as the game effectively has a hard ending at NaN when you overflow the floating point max. This will occur at a significantly lower value if you switched to 32 bit floats, therefore making the highest possible ante lower.
Waterluvian
Yeah makes sense. I thought it would be integers and therefore signifies it uses a whole numeric type abstraction that would support basically infinite sized integers.
EA-3167
I also love Balatro, and can say that's shockingly good work especially considering the limitations of the platform. Clearly a labor of love, and I love it.
azhenley
This is what I need more of from the internet.
Dwedit
If you're hitting sprite limits because you used up all the sprite slots, you're doing something wrong. Sprites are for moving objects that need to exist outside of grid alignment. For steady objects, put them in a background layer. If you need a different alignment than 8x8 tiles, you can use two overlapping layers to get 4-pixel horizontal alignment instead.
duneisagoodbook
Absolutely! I think that's what the author meant when he said "In my prototype, your hand at the bottom of the screen is a background (similarly, in my E-Reader solitaire game, all of the cards are drawn into a background instead of using sprites)."
city41
Thanks for the clarification (I'm the blog author). If one were to really make this game, how the cards would ultimately be rendered is hard to say. Sprites are nice because you can overlay them and form many card variations from just a few sprites. Tiles rendering into a background doesn't account for transparent pixels, so building up tiles into a single background is not possible.
One way to handle that is to provide all the possible tile variations, but that would take up so much space. So you'd have a set of tiles for a regular Ace of Spades, and an entirely different group of tiles for a Lucky Ace of Spades for example.
The GBA has 4 backgrounds, so it would be doable to grab three of them and use them to render cards. That would only leave 1 background left for, well, the background :)
Another option would be to use a memory buffer and implement tile rendering yourself that accounts for transparent pixels. That would be the best of backgrounds and sprites combined into one. That would solve many problems, at the cost of the implementation would probably take up a lot of space. My hunch is this would be the best approach.
This right here might be why I find this platform so interesting. It's very limited, and the limitations usually bump into each other and you often steel from Peter to pay Paul.
Oh and the post didn't mention debuffed cards (they have a red X drawn over them). That'd be yet another card layer to throw into this mix.
anyfoo
I’m one of the people that don’t “get” Balatro. I do get how to play it (to a certain level at least), and I’ve certainly been drawn to a bunch of rogue-like games, some of which I still play (Into the Breach for example), but Balatro is just… too distilled for me, to a point where it’s almost absurd.
It’s literally “number go up”, there’s barely any “fluff”, and that bugs me for a reason.
In that regard, it reminds me of cookie clicker, although it distills different aspects. That, too, I stopped playing pretty quickly. I saw coworkers who would play it all the time in the background, and that kind of put me off. Almost philosophically.
Balatro has more “game” than Cookie Clicker, but I’m still slightly repelled by its relatively direct “number go up” aspect. (“Repelled” is a bit of a strong and rude word, but I couldn’t think of anything better right now. I don’t hate Balatro.)
rkuykendall-com
It sounds like this is just a relic of you beating the well-designed tutorial? Once you start advancing through the decks and difficulties, as well as unlocking more vouchers and jokers, it becomes quite complex. I have many, many hours in it and I can't even beat ante 8 on White Stake consistently. But streamers can consistently beat Gold Stake, as well as playing PvP, so it's clearly not a cookie clicker.
Would reduce max score to 400M and you'd have to round 0.25 up or down. Would probably want to drop the 0.01 cards too.
super cool project
I find it really weird that they dismissed fixed point as being too technical because it's actually really simple, it's basically just this.
https://mattgreer.dev/blog/making-a-shooter-for-the-ereader/
I was fortunate enough to break my Balatro addiction before it had gotten this far along, but others are not so lucky.
https://ko-ko74.itch.io/balatro-for-the-commodore-64-c64
For example, this C64 port was taken down: https://ko-ko74.itch.io/balatro-for-the-commodore-64-c64
One way to handle that is to provide all the possible tile variations, but that would take up so much space. So you'd have a set of tiles for a regular Ace of Spades, and an entirely different group of tiles for a Lucky Ace of Spades for example.
The GBA has 4 backgrounds, so it would be doable to grab three of them and use them to render cards. That would only leave 1 background left for, well, the background :)
Another option would be to use a memory buffer and implement tile rendering yourself that accounts for transparent pixels. That would be the best of backgrounds and sprites combined into one. That would solve many problems, at the cost of the implementation would probably take up a lot of space. My hunch is this would be the best approach.
This right here might be why I find this platform so interesting. It's very limited, and the limitations usually bump into each other and you often steel from Peter to pay Paul.
Oh and the post didn't mention debuffed cards (they have a red X drawn over them). That'd be yet another card layer to throw into this mix.
It’s literally “number go up”, there’s barely any “fluff”, and that bugs me for a reason.
In that regard, it reminds me of cookie clicker, although it distills different aspects. That, too, I stopped playing pretty quickly. I saw coworkers who would play it all the time in the background, and that kind of put me off. Almost philosophically.
Balatro has more “game” than Cookie Clicker, but I’m still slightly repelled by its relatively direct “number go up” aspect. (“Repelled” is a bit of a strong and rude word, but I couldn’t think of anything better right now. I don’t hate Balatro.)