6 ms·
Balatro was made with LÖVE, and a lot of it like the background and score flames were made with GLSL to reduce the amount and size of assets: https://www.reddi
by modernerd 2y ago
Balatro was made with LÖVE, and a lot of it like the background and score flames were made with GLSL to reduce the amount and size of assets:
https://www.reddit.com/r/PixelArt/comments/143ybxa/pixelated_high_score_shader/ https://www.reddit.com/r/PixelArt/comments/143ybxa/pixelated...
The OP mentions hot reloading and there are a couple of repos that may help with that:
https://github.com/clofresh/love-module https://github.com/clofresh/love-module
https://github.com/usysrc/LICK https://github.com/usysrc/LICK
Their card game prototype is really impressive for three hours' work!
- aquova 2y agoBalatro recently published a mobile version of their game, but I was under the impression Love2D only supported desktop platforms. Has that changed?
- furyofantares 2y agoIt is pretty easy to build for iOS, Android, and web.
- greeniskool 2y agoShould mention love.js isn't officially supported, and isn't 100% compatible with the LÖVE API. It will work just fine for a lot of games out of the box, though
- cableshaft 2y agoYeah when I got to the point of trying to get my game working in love.js, all I got were webassembly errors. I was able to get a basic Hello World game working with the same setup, so it's something within my code that's not supported, but I don't really know how to pin down what the problem is.
- cableshaft 2y agoGetting it built isn't too bad (at least iOS and Android, Web was giving me WebAssembly errors I couldn't figure out), but accessing native functionality seems harder and do not have any good tutorials (a couple really old discussions online that are probably out of date is all I could find). Like if you want to release a game on iOS you're going to need some sort of Ad framework and access its game center for achievements and leaderboards at the very least, and that's been tricky for me to get working. I know you need to write some hooks and saw some old code that I'm trying to use for reference, but it was still giving me enough issues I gave up on it for a the time being. And I've released games in native iOS before (although it's been a while), so it's not like I've never used them.
- KeplerBoy 2y agoWhy would you need an Ad framework and achievements? Isn't balatro a prime example of a game simply being a paid app? No ads, no bullshit. Just a game and a pricetag.
- cableshaft 2y agoBalatro doesn't have ads but it does have achievements and game center. As much as I'd like my game to spread as far and wide as Balatro, I understand that it won't, not anywhere close. It's just not going to have the polish that Balatro has (I don't have the time or energy, I'm in my 40s with a spouse and a day job). But hopefully it will be fun to play (it is a more fully-featured remake of an old free web game I made many, many years ago that was played millions of times). And games that aren't already super high quality mostly don't sell on iOS anymore, at least not before people download it for free and try them. You pretty much have to make the base game free so people will download it and then provide an unlock later. I'm not trying to be obnoxious about ads. I'm wanting to use the Zach Gage model (Knotwords, Flipflop Solitaire, Good Sudoku, SpellTower). Some minimal ads in between matches (the matches last 5-10 minutes by themselves) and a few extras like themes or detailed stats behind a one-time unlock of a few bucks. I hate the standard model of throwing ads in your face every 30 seconds and wouldn't do that for my game. Also another native feature that Love2D doesn't support is the iOS Haptics library. Love2D only allows for a half second vibrate at full power and it's way too much. Balatro uses the iOS native haptics library as well (it's obvious, they're very light and quick vibrations). These haptics are super common in iOS games nowadays so it will seem weird if it doesn't support them properly.
- Buttons840 2y agoIt took them many months to get it on Android. It was wildly successful initially, and then it took many months to reach phones and missed much of the hype cycle. So I think it took them a lot of effort to port.
- Kiro 2y agoConsidering it's the first game to dethrone Minecraft on mobile it doesn't seem that it missed out on much.
- fao_ 2y ago> It took them many months to get it on Android. It's surprising given that back in June? 2024 I just extracted the .love zip from the executable, patched a file or two, and merged it into the love android apk and it Just Worked. Just goes to prove the last 5% rule
- edflsafoiewq 2y agoThe difficulty of porting to mobile is generally changing the UI to work well on a small touchscreen.
- gwervc 2y agoThis. I'm making a game and I have an Android and iOS experimental branches. Even with a multiplatform framework (Monogame), compilation and basic run isn't a given. Then thing like small buttons needs biggee touch target, text input requires adaptation. All those 3 days + 1 day + a week + ... quickly adds up.
- fao_ 2y agoI've made games in Love2D for Android and for PC, I also as part of my converting Balatro to android, patched it a few places. > Even with a multiplatform framework (Monogame), compilation and basic run isn't a given. This isn't the case for Love2D. The game framework is already compiled for android, and the game is a bunch of Lua scripts. There is no issue with compiling, only very minor differences between the Lua for Android and the Lua for desktop platforms and making changes is instant except for transferring the apk to my phone and installing it to test (I didn't set up a full local android test environment for something so small). Balatro worked pretty much out of the box, except for some small changes I made — the first was to add in my profile from Steam, I didn't have to change the code for this. All the buttons were already reasonably sized. Text input was just adding a call to https://www.love2d.org/wiki/love.keyboard.setTextInput https://www.love2d.org/wiki/love.keyboard.setTextInput so that the on-screen keyboard appeared and disappeared when it was supposed to. I also patched a small bug that made it go blank on screen-reorientation, which was a one-line fix. The total time spent was around an hour including codebase orientation, patching, testing and doc lookup (I haven't used the framework in a while).
- fooster 2y agoLove may not but there is nothing inherently unworkable with Lua and iOS. I released an iOS game which used luajit on ios and it worked great.
- the_gipsy 2y agoI downloaded a mobile version before the official release (I uad bought it on steam already). Somebody made an apk with some löve-to-apk generator, and one or two fixes for the shaders on mobile.
- d3VwsX 2y agoYes, https://www.love2d.org/ https://www.love2d.org/ has links to both iOS and Android SDKs. For Android you can also install the stand-alone LÖVE Loader app that can open .love files to play. Some games on itch.io comes with a .love-download (in addition to platform-specific executables), but I guess they can sometimes be extracted from other games too. The .love-files, if provided or if they can be extracted from a game, are also useful on desktop, for playing the games in an operating system (like FreeBSD) that the game's developer did not provide binaries for. The stand-alone app is also a fun way to do some gamedev on an Android phone. The .love file is just a ZIP, so it can be easily created from termux.
- VectorLock 2y agoMOONRING too which is another really fun game, although one that hasn't yet gone as mainstream as Balatro. There is so much "draw the rest of the Owl" between a very primitive framework like LÖVE and stylistic games like BALATRO and MOONRING.