125 pointsby arantius6 days ago11 comments
  • sram13376 days ago
    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

    • odo12426 days ago
      Yea - this is basically "fixed point but not binary" and it would totally work.
    • LoganDark4 days ago
      > 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.

      • city414 days ago
        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.
  • azhenley6 days ago
    The author also wrote about his experience making a space shooter game for the E-Reader:

    https://mattgreer.dev/blog/making-a-shooter-for-the-ereader/

  • fisherjeff6 days ago
    This was painful to read, and I am so sorry for the author.

    I was fortunate enough to break my Balatro addiction before it had gotten this far along, but others are not so lucky.

    • yjftsjthsd-h6 days ago
      What about this reads as addiction? This is clearly a tech demo, not something someone would do to let themselves play more of the game.
      • poolnoodle6 days ago
        I believe the comment you replied to was meant in a humorous way.
    • jimbob456 days ago
      And others are like me who wanted to play but couldn’t because of the nauseating effects of the graphics.
    • mcphage5 days ago
      There but for the grace of god…
    • LocalH5 days ago
      Nope!
  • Nate75Sanders6 days ago
    Guy made it for the C64, even with good music!

    https://ko-ko74.itch.io/balatro-for-the-commodore-64-c64

  • kinduff6 days ago
    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.
    • geoffpado6 days ago
      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.)
    • wavemode6 days ago
      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...
    • ronsor6 days ago
      The clear solution is to not copy every aspect of the original and also release your port under a different name.
  • im3w1l6 days ago
    I think floating point is viable - balatro doesn't exactly perform billions of floating point operations per second.
  • Waterluvian5 days ago
    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?
    • city415 days ago
      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.
    • Eavolution5 days ago
      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.
      • Waterluvian5 days ago
        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-31676 days ago
    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.
  • azhenley6 days ago
    This is what I need more of from the internet.
  • Dwedit6 days ago
    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.
    • duneisagoodbook5 days ago
      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)."
      • city415 days ago
        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.

  • anyfoo6 days ago
    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-com5 days ago
      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.
      • anyfoo5 days ago
        That’s not the reason I don’t like it.