4 ms·
What a thoughtful post. I think there is a narrative that localthunk is a "shitty programmer" (which he might very well be), but that by extension, it also mean
by santoshalper 2y ago
What a thoughtful post. I think there is a narrative that localthunk is a "shitty programmer" (which he might very well be), but that by extension, it also means that he just got lucky and bumblefucked his way into massive success - almost as though he didn't know any better.
A post like this dispels that narrative - he clearly put a ton of thought into the design of that game and was incredibly intentional about where he wanted it to go.
- mikepurvis 2y agoIn what quarters is that narrative? Surely one only has to play Balatro for an hour or two to understand the incredible game design effort that underpins it all, which is brought so vibrantly to life by the music, art, animations, and all the rest of it. I can't imagine someone appreciating all this and still managing to poo poo it over a few bugs or maybe some quibbles about it having been built in Lua.
- dilDDoS 2y agoPeople that mention this are usually referring to this chunk of the source code: https://www.reddit.com/r/programminghorror/s/KmEWRILR1q https://www.reddit.com/r/programminghorror/s/KmEWRILR1q My assumption is that a lot of the people that look at small chunks of code and judge someone’s programming ability are people who have only worked in corporate environments and have never had to build a large project on their own, and don’t have any understanding of the effort it takes to make a game like Balatro by yourself. Maybe that’s an unfair judgment. But so is calling LocalThunk a “shitty programmer” over some questionable if-else logic.
- IsTom 2y agoIt's verbose and could be simplified, but also looks like something you write once and never look at again. If it works it makes no sense to spend any more time on it.
- slongfield 2y agoPeople love to dunk on hacky looking gamedev code. Some of it is pretty ugly, e.g, VVVVVV's famous gigantic switch statement, but if it works and makes a fun game, that's the actually important part.
- AnIrishDuck 2y agoYeah, working on a game myself and ... sometimes you just gotta do stuff like that. Working on a game solo requires juggling several wildly different disciplines at the same time. Sometimes you're in "game designer" mode, you need to fix a bug or add a feature, and you bonk in the caveman thing that obviously works. Solo gamedev is basically the "startups should accumulate technical debt" meme on steroids. As long as you can understand the code, nobody cares about how it looks. Only how the game plays.
- mattnewton 2y agoI have never heard that assertion, I don’t know how anyone can play Balatro and not feel that it is a deeply intentional creation. I think localthunk would be the first to tell you they got lucky with how it found an audience outside of themselves, but everything in the game oozes polish and intention.
- datadrivenangel 2y agoThe assertions are more around code quality. Game design is wonderful. Apparently there are places where the code is like a thousand lines of if card_name then effect.
- meheleventyone 2y agoFor a project with lots of variation being maintained by a single person that’s totally fine.
- Trasmatta 2y agoYep, there are days I yearn for just having a super long set of if statements, vs the over-engineered messes that I deal with on a daily basis. So many codebases end up impenetrable in the pursuit of fancy design patterns...
- npteljes 2y agoI think that too fancy code is just as bad as the original if-else spaghetti, but then even worse, because the patterns are abstract now as well.
- npteljes 2y agoBad code can have a really high cognitive load to maintain. Just to illustrate what bad means, take a look at this: https://www.reddit.com/r/programminghorror/comments/1cb6rca/source_code_from_balatro/ https://www.reddit.com/r/programminghorror/comments/1cb6rca/... I can see that having even bits of modification impacts lots of lines, where if written just a bit more saner, it could impact just a few. Of course everyone is absolutely free to do the things however they want on their project. It's just that bad code, and bad choices bite back sometimes really badly. Project Zomboid is built in LUA for example, and it shows, it's a horrorshow not just to play, but to develop it as well. Their programmers spend a lot of time with just refactoring things. Besides functionality, maintainability should be a huge focus in my experience, so that the devs don't hate life if they have to touch the code again.
- ARandumGuy 2y agoEven if the underlying code is "bad", who cares? There are far more important skills in indie game development then programming ability. I'd much rather play an interesting, well-designed game with a few bugs and messy code over a well-programmed but boring game.
- npteljes 2y agoHe clearly comes across as a conscious game designer as well. And programming doesn't need to be good on today's machines. Many of the indie successes are shit software, like Minecraft, Valheim, Cities Skylines, Project Zomboid, and I'm sure there's many others. Great product design and PR are infinitely more important than software quality.