8 ms·
LÖVE: 2D Game Framework for Lua
- Duplicake 6mo agoInteresting this is at the top of hacker news since this is pretty old, great project though
- p2detar 6mo agoAs someone that used to write 2D games with things like phaserjs, sdl and even directx7, I always regret I never tried Löve2d. I think Android and iOS packaging was also supported. Is this still the case? What if one wants to integrate IAP?
- 1313ed01 6mo agoPretty sure there is still app packaging documented somewhere. There is also, at least for Android, an official Löve2D Launcher app that can open any love-file saved to the phone and execute it. I use that all the time. The Launcher is available also for old Android versions, which means that old obsolete Android devices (I have some tablets and phones) can be used for whatever it can be fun to still write some GUI for on some spare touchscreen device.
- wwarren 6mo agoI love LÖVE. For me it sits at the perfect intersection between high and low level abstraction. Unfortunately the latest released version is getting pretty long in the tooth now and a lot of devs use the latest HEAD from the repo since it has better performance and compatibility. One day the mythical 12.0 will get released for real…..
- deleted 6mo ago[deleted]
- hu3 6mo agoYou might like MonoGame. Same level of abstraction, but in C#. https://monogame.net https://monogame.net
- tertle950 6mo agoSince we've stepped from interpreted language (Lua) to compiled-to-VM language (C#), let's go all the way down to compiled, low-level language (C) with Raylib! https://www.raylib.com/ https://www.raylib.com/
- andersmurphy 6mo agoOr use raylib from luajit FFI and blow C# out of the water. Luajit can be faster than C, truly alien tech from Mike Pall.
- deleted 6mo ago[deleted]
- Gigachad 6mo agoIt’s been a recurring issue I’ve seen in open source where there is active development but no releases. I don’t get why you’d put all the work in to fixing bugs and building features but not hit the button to build a release.
- embedding-shape 6mo agoBeen there before, usually because you always feel like there is "one more thing to get into the release" before you consider it "done enough", and that keeps moving. At one point, you've diverged far enough from the previous release, either by time or scope, that now you feel like the next release really should come with major improvements because of other API breakages already, so now you want to fit in more, so the next release after that can skip more breakages. Rinse and repeat over months, with volunteers, in a game engine no less, and I can easily see many projects being unable to not fall into that trap. Anyways, I think it's less of an issue for people in practicality, most people who use LÖVE today tends to start with the HEAD source version, which also sets them up to easier contribute back upstream, when they inevitably hit something non-optimal, so maybe it works out in favor for everyone in the end anyways.
- Gigachad 6mo agoThe main issue is that distros will only package the latest release. I had a situation where LMMS on their website had download links pointing to the “beta” builds, while the one on all the disto repos was several years behind. Right now I have a workflow breaking bug in Inkscape which was fixed last year on main but hasn’t made it to a release yet. So my only option is to compile from source. There being a stigma about a release being “ready” needs to go. Stuff should get only get merged in to main when it’s ready to go live, or behind a feature flag.
- deleted 6mo ago[deleted]
- FrustratedMonky 6mo ago"long in the tooth" How? has Lua changed any? Or all the references are to old versions?
- yehoshuapw 6mo agomy favorite game in love: mario, with portals https://stabyourself.net/mari0/ https://stabyourself.net/mari0/
- seqizz 6mo agoI looove stabyourself. ortho robot was amazing. you know what, let me install again.. here goes my night.
- jgtrosh 6mo agoI like the Trosh game
- ranger_danger 6mo agoHow have they not been sued by Nintendo yet?
- mid-kid 6mo agoSame reason all the other mario flash games haven't, not a critical enough mass.
- antisol 6mo agoAgreed, mari0 is awesome. Pity it's not playable in even mildly current versions of love because being backwards compatible takes some slight effort on behalf of framework maintainers.
- herczegzsolt 6mo agoI've used this for many projects that are still working to this day. That said, i'm not impressed. A web-based solution is usually better performing, despite all the bloatware necessary. This says a lot about the state of software development unfortunately.
- small_scombrus 6mo agoIt isn't web based? It's a set of Lua scripts that run locally
- squeaky-clean 6mo agoThey are saying web based solutions often out perform LÖVE, even though you would expect the opposite because LÖVE doesn't have the bloat of a browser engine.
- usrnm 6mo agoBrowser engines are probably some of the most optimized pieces of software in existence, so it doesn't surprise me at all.
- wiseowise 6mo agoExplain this to electron haters.
- krapp 6mo agoBrowser engines are optimized for displaying web pages, not for applications. 60MB+ for a calculator is not optimal.
- hu3 6mo agoexplain that to my webgl TypeScript browser game running at 180+ FPS while rendering a large RPG tiled world with infinite procedurally JIT generated biomes, with heavy processing delegated to webworkers.
- patapong 6mo agoOne of the biggest recent indie hits, Balatro, was made in Löve! I really like it, the developer experience is so smooth for beginners, just drag a zip onto the exe and it starts. And the APIs are simple enough to memorize while allowing pretty cool rendering stuff.
- KeplerBoy 6mo agoBalatro ships with the entire unobfuscated Lua source by the way. I once checked if the odds stated on a card were implemented wrong. Turns out no, the code checks out, I'm just that unlucky.
- __s 6mo agotoo bad universe doesn't ship with unobfuscated source so that you could see whether you're unlucky, or just skill issue
- Tepix 6mo agoThe source is right there, you just have to grok it.
- Sardtok 6mo agoWell, it's kind of a machine code for a self-modifying compiler, so there's that.
- chii 6mo agoThe source is not just dna - that's just one type of architecture that exists. There might be others that operate on different instruction sets. The real source is mathematics. But some might say it's incomplete.
- embedding-shape 6mo agoMathematics is the FORTRAN of the real source. Closer to a real source is probably "real" things like atoms and other universal things. If I remember correctly, Stargate-SG1 at one point had some ideas about this sort of universal language, that multiple species could use for communication, as any sufficiently intelligent specie probably been able to see atoms and so on, but may have completely other way of doing "math-like" stuff.
- raincole 6mo agoBtw, Love2D is based on SDL2. If you hate Lua but needs the same cross-platform capabilities, you can use an SDL2 binding in other languages or make your own.
- newobj 6mo agoSDL3
- jasonjmcghee 6mo agoDefinitely SDL2. Author is currently building version 12 which will be using SDL3. But it's been in development for quite some time with no clear end date afaik.
- krapp 6mo agoIt is easy to get Lua (with LuaJIT) working with SDL3, though. That obviously isn't a replacement for the framework but it is perfectly doable if someone just wants to write a game in Lua with minimal overhead. Edit: I mention LuaJIT specifically because it lets you create metaclasses around C objects, which is much easier than messing with the Lua stack from C, and it's easy to make a 2d vector class from an SDL Point or a spritesheet or what have you. There are a few rough edges like dealing with pointers and gc but to me it's the best of both worlds (the speed of C, and some implicit type checking, and the flexibility of Lua.) Obviously you could do it the hard way and the other way around with normal modern Lua but it's such a pain in the ass.
- newobj 6mo agoI stand corrected!
- dannyfritz07 6mo agoWho is "the author" these days? Is it Slime? I wonder what Rude and Bartbes and vrld are up to these days. Are releases still done on holidays? Are all libraries still named after sex themes? I was active for versions 0.4 - 0.6.
- 0xCAP 6mo agoMy2c. Fintech tech lead who has only a far memory of hand coding games ages ago. Community makes tech awesome. Love2D discord changed my life. Never met a more awesome and welcoming community in my whole life.
- PacificSpecific 6mo agoI generally very much dislike dynamic languages but for some reason I've always really liked Lua. I'm not exactly sure why to be honest. Maybe because you can fit the whole language spec on a single sheet of paper and adding more advanced features is pretty easy. Love looks really cool. I never got into it personally but I still might
- turtledragonfly 6mo agoThe Lua source code is also a masterclass in C, I recommend it to anyone learning that language. It's big enough to be an involved implementation, but small and focused and well-organized enough to (at least roughly) understand what's going on at the various layers. It's a very solidly-written mass of portable C, with only minor exceptions.
- PacificSpecific 6mo agoOh I hadn't considered looking at the source but considering how minimal and clean Lua is I should have assumed so :) Thanks for the tip. That should make for a fun weekend
- Kaliboy 6mo agoLua will forever hold a special place in my heart. It was the first programming language that I actually managed to learn, instead of just attempting to learn it. It was chosen around 2008 or so to be the scripting language in Multi Theft Auto: San Andreas. We build entire worlds in Lua, there were many gamemodes, but my favorite was Roleplay. Good old carefree times.
- Iridescent_ 6mo agoIt has a very lego-like feeling, with simple, orthogonal design that lets you build the language and constructs you need. Very elegant.
- dgb23 6mo agoLua is a scripting language done right. It doesn’t pretend to be more than it is. Anyone can learn it a couple of sessions. It has all the stuff you need to write a program. Imagine if we had Lua instead of JS in the browser. In fact the latter was once closer to Lua, but didn’t have the same philosophy of wanting to stay minimal.
- K0IN 6mo agoI love löve I did some projects in it, lua was one of my fist programming language, i think it's a great fit for game dev. Also move or die is running on love2d, which is an awesome game. Also I love that trick that you can just zip your files and binary Comcast them to the love2d binary and it will load it.
- davidkunz 6mo agoI haven't tried Löve, but I somehow enjoyed reading through the README.md, no AI slop, just a natural writing style with tiny indictors showing the authors' enthusiasm in creating software.
- Sardtok 6mo agoThe project predates Github, although the first official release came out about a month prior. So, yeah, not a lot of AI slop 20 years ago.
- marcomezzavilla 6mo agoLÖVE seems amazing, I’ve always looked at it with curiosity. There’s also the legendary Harvard CS50’s Introduction to 2D Game Development, which now uses it in its latest version. But I’m wondering: why do mature tools like this sometimes end up on Hacker News’ front page without any particular news (like new releases or updates)? It’s just a curiosity, not a critique.
- nout 6mo agoAm I really the first one to mention pico8 in this thread? Anyway, pico8 is another option that has a bit different spin, but you also implement the games in Lua :)
- opan 6mo agoTIC-80 is a nice free as in freedom alternative to PICO-8, and it allows more inputs, which makes for better Tetris games (gotta have that hold piece).
- tertle950 6mo agoIs this about Master of Blocks? There are a lot of free-as-in-freedom alternatives to (and clones of) PICO-8, but TIC-80 is indeed the most popular one, by far. And popularity is important for any software ecosystem. I really like that it supports other languages, even if that kinda inhibits its ability to be embedded into small hardware. Apparently the nightly release supports DCPM samples now. Dunno why.
- nout 6mo agoIt's just that pico8 has much larger ecosystem. There's a new great game almost every day. It is sort of annoying that it's not FOSS, but on the other hand the team/author has sustainable business.
- emptybits 6mo agoTIC-80 is wonderful to play in. Besides being free/open, another advantage over PICO-8 is TIC-80 has native support for Fennel. i.e. you can code within the system editor in Lua OR Fennel (or half a dozen other languages!) You don't have to edit and transpile to Lua on the desktop as you would with PICO-8. This has some value in debugging with error messages and line numbers. It's also just plain cool to rock the TIC-80 editor fullscreen with narrow font, coding natively in Lisp and publishing the result to a webpage you can share. I wish the iOS (app) deployment story was a little smoother for TIC-80.
- 0x3444ac53 6mo ago
- alprado50 6mo agoIs Love2D a decent option for gamedev compared to Godot? I finished a really simple game using Unity3D and it was fun, but it sucks to use a closed source engine.
- onehair 6mo agoGodot will be familiar to you if you then. Löve on the other hand is 100% just code. You'll not have the gui things and the pletora of different components that go with them. Still gives you freedom. Just too much freedom and not as much helpful preset tools.
- 0x3444ac53 6mo agoFor me this is a plus. All the games I've made are small and hobby stuff, and I much prefer writing code to playing around with a UI.
- jtolmar 6mo agoYeah, Love2d is a great option for gamedev. It doesn't have the same built-in tools as Godot so you'll need something else for putting together maps (use Tiled [1]), and you'll need to write your own main/render loops (these are just two for loops, nothing fancy). [1] https://www.mapeditor.org/ https://www.mapeditor.org/
- CJefferson 6mo agoIt’s very different, and it depends what you are targeting. I love love2d. I think love2d is better if what you love is coding, everything is code, love2d just executes Lua. If what someone wants to do is make (for example) a 2d platformer, or definately for 3d, and the coding is something you need to do to make your game, goody is better, it includes so many batteries, have a built in gui level editor, etc. One big advantage of love2d (although ironically not loved by many in its audience) is it is the AI friendly engine, as AIs love text and hate GUIs.
- VorpalWay 6mo agoHow is it supposed to be pronounced? Is it just gratuitous diacritics? Or should I pronounce it in my native Swedish (where the names makes me think of leaves rather than love)? (Throwing diacritics on English words look extremely silly to me, since I know how åäö are supposed to be pronounced. It makes something like Motorhead just sound laughable rather than metal.)
- Sardtok 6mo agoThe project was started by Norwegians. So I feel like you should apply juuuust the right amount of cheesiness and sort of push that Ø-vowel looong. Not sure if Ruud would agree, though.
- xigoi 6mo agoI instinctively pronounce it [løv].
- VorpalWay 6mo agoWhat about the e? If it was Swedish you would definitely not have a silent e, but I don't know if Norwegian might. (On the other hand it is spelled löve, not løve, so arguably Swedish rules should apply.)
- xigoi 6mo agoI interpret it as English, except with a letter borrowed from other languages.
- rzzzt 6mo agoI am fairly certain it's a case of https://en.wikipedia.org/wiki/Metal_umlaut https://en.wikipedia.org/wiki/Metal_umlaut
- anthk 6mo agoUXN can be interesting for 2D games too.
- tertle950 6mo agoThe fantasy computer by 100 rabbits? I love their philosophy, I'm glad Varvara exists, but I'm personally not up to program assembly for a 4-color screen, and I'm sure many others are the same.
- 0x3444ac53 6mo agoI think there's a difference in the want of a game dev. 100r, IMHO, is about code as art rather than using code to make art.
- slmjkdbtl 6mo agoI love their stuff, but curious if anyone besides them actually use uxn to make stuff
- 1313ed01 6mo agoWas going to post a link to the minimal template for setting up Löve2D with Fennel, that I can really recommend, and found this recent article describing that... https://itch.io/jam/love2d-jam-2026/topic/6082771/how-to-get-started-with-love2d-and-fennel https://itch.io/jam/love2d-jam-2026/topic/6082771/how-to-get... ... posted in the site of the 2026 Löve2D Game Jam, that sounds like something also worth mentioning: https://itch.io/jam/love2d-jam-2026 https://itch.io/jam/love2d-jam-2026 Too late to enter. Jam was last month. But there are 47 games to check out there, plus many from previous years.
- chadpaulson 6mo agoI love this framework, pun intended. I made a clone of Atari's Missile Command with it many years ago when the Portal / Mario mashup game made with LÖVE was popular. https://github.com/chadpaulson/missile-command https://github.com/chadpaulson/missile-command
- pmarreck 6mo agoI need something like this but for cross platform utilities
- vslira 6mo agoI haven't done it myself, using game engines as UI frameworks is not unheard of :)
- nebula8804 6mo agoAnyone who is a fan of the TV Show Community MUST try out the recreation of the 8 bit video game episode(Digital Estate Planning) called Journey to the Center of Hawkthorne. [1]: https://projecthawkthorne.com/ https://projecthawkthorne.com/ It is now available to play straight in the browser(I guess using LÖVE Web Builder?). [1]:https://schellingb.github.io/LoveWebBuilder/ https://schellingb.github.io/LoveWebBuilder/ This engine has really come a long way and enabled such a memorable game for me.
- latexr 6mo agoThe (crucial) arrow keys don’t seem to work in Safari.
- JSR_FDED 6mo agoLua is very fast - even without the JIT it makes Python feel like wading through molasses. Lua is so small and simple (but not simplistic) that you can keep it completely in your head. Even if you only get to work on your project once every weekend you won’t have to relearn half of it every time.
- SilentM68 6mo agoInteresting framework :)
- chunqiuyiyu 6mo agoI’m a big fan of Love2D as well. it’s simple, efficient, and really easy to get productive with. After just a short learning period, I was able to ship my first indie game on Steam, a small Chinese‑character puzzle game built entirely with Love2D. https://store.steampowered.com/app/4218330/WordJoy/ https://store.steampowered.com/app/4218330/WordJoy/
- kelvinjps10 6mo agoThe website might have been better, in the submission https://love2d.org https://love2d.org
- PufPufPuf 6mo agoI used LÖVE to build a simple Kodi alternative for my home media center setup. My first attempt was using Electron but rewriting to LÖVE meant much simpler code (turns out manually calculating coordinates is simpler than fighting CSS) and less resource consumption (not a high bar, yes). It works so well I might clean it up and open source it...
- aktau 6mo agoWhat were your (main) problems with Kodi? AFAIK it is written in C++ with Python plugins. Electron would be (on the face) a downgrade yes. But how is a Lua app much smoother? (My personal pet peeve is that Kodi still doesn't know how to minimize CPU consumption when one is doing nothing on the UI. It should just stop rendering. This means I have to turn Kodi off on my HTPC+server setup to stop it from pushing my CPU in a higher power consumption mode.)
- PufPufPuf 6mo agoKodi is super complex. The last straw was me wanting to launch Dolphin games from the UI and not being able to figure it out. My custom media center is basically just a glorified 10ft-UI file browser. Opens media files in mpv (with some extra GUI to download subtitles and select audio tracks), Wii games in Dolphin, runs shell scripts (I have ones launch Steam Link etc.) I realize that this might be a case of "simplify by limiting use cases" but I made it for me so it's fine.
- pwillia7 6mo agoI would like you to release this please
- rwbt 6mo agoI use this framework to build prototype applications and it's always a delight. Something about Lua just feels right. Once I'm satisfied with a demo or prototype, I later on port it to native C/C++ implementation.
- marknote 6mo agoFor anyone looking to code LÖVE2D games directly on an iOS device, I’ve created an app called love2d-studio: https://marknoteapp.com/love2d-studio https://marknoteapp.com/love2d-studio
- miellaby 6mo agoStill think Gideros SDK had more potential
- 0x3444ac53 6mo agoFennel is really cool! And you can write games in it :) https://fennel-lang.org/ https://fennel-lang.org/
- adbachman 6mo agothey include a LÖVE demo in their documentation: https://dev.fennel-lang.org/wiki/CookbookPong https://dev.fennel-lang.org/wiki/CookbookPong
- shooshx 6mo agoCould have compiled it to wasm and have an online demo
- vanderZwan 6mo agoIf, like me, you have too much "P5 api" muscle memory to really get into LÖVE (not a criticism of that library, tbc), then L5 might be a nice alternative: https://l5lua.org/l5-for-processingp5/ https://l5lua.org/l5-for-processingp5/
- sylware 6mo agobluerevolver amazing shmup made with löve. löve is getting a vulkan backend. I would have prefered löve to be plain and simple C coded instead of this abomination which is c++ (but it seems coding AIs may be very good at assisting mass c++ to plain and simple C port).
- mghackerlady 6mo agoIt also happens to be one of the better ways to do a GUI in Lua :P
- akshatjiwan 6mo agoYeah this is amazing. I'd love to see integration with raylib at some point, if possible that is. Lua's small footprint is it's one big advantage in addition to its pleasent syntax but with tiny cc (which raylib supports when I last checked a few years ago) you can get a compact c runtime as well. I haven't worked on a project with either of these frameworks but a couple of years back I was researching into some frameworks and was surprised to learn that I can use raylib on my phone with termux!
- steeleduncan 6mo agoTiny CC doesn't have its own runtime, it uses whatever you specify (falling back to system standard), same as GCC or Clang. For low runtime footprint you are probably better off with one of those two compilers as they generate smaller, more optimised code.
- nodesocket 6mo agoInteresting. I started playing with Godot this weekend and got something simple to render with some toolbar windows and a statusbar. I’ve always been fascinated by game and graphics programming.
- deleted 6mo ago[deleted]
- mococa 6mo agoIf you liked Love2D, please take a look at Carimbo (my engine). https://github.com/willtobyte/carimbo https://github.com/willtobyte/carimbo I have a game on Steam made with it, the game is open-source now. https://github.com/willtobyte/reprobate https://github.com/willtobyte/reprobate
- presbyterian 6mo agoWhat does your engine have to do with Love 2D other than also using Lua?
- cl3misch 6mo ago> Carimbo doesn't reinvent the wheel; it uses the best libraries, such as boost, Box2D, EnTT, stb, yyjson, sol2, PhysFS, SDL, and miniaudio. To me this sounds similar to Love2D. How is Carimbo different, from the perspective of a dev working with it?
- mococa 6mo agoCarimbo is more opined.
- yboris 6mo agoI ported my favorite pre-2000 game into LÖVE -- was easy and fun Gravity Wars - turn based artillery game in space (planets' gravity affect shot path) https://github.com/whyboris/gravity-wars https://github.com/whyboris/gravity-wars
- user____name 6mo agoSomeone should make a framework like this but with static typing and manual memory management. If you want a modable game you really need to have it in a managed language, and I spent enough time fighting with garbage collectors that it's just a non-starter. A shame because Love is really nice to use.
- embedding-shape 6mo ago> If you want a modable game you really need to have it in a managed language ... Why is that? Personally, both as a game developer and modder, dynamic languages like Lua and alike tend to be a lot easier to make moddable and also force in mods regardless of how the authors felt about modding in the first place. Isn't it quite the opposite?
- flykespice 6mo agoI wish lua would be more popular outside of its scripting language bubble, but its tendency to occasionally introduce breaking changes every release doesn't makes it very palatable as a main language for writting software.
- jadelunar 6mo agoAre you taking about Lua or LuaJIT (the one used in Love2D)? Because LuaJIT will stay in 2.1 rolling release forever, the language is feature complete, no more breaking changes ever.
- quadruple 6mo agoDespite being a game framework, due to LuaJIT's great FFI you can just write whatever. I recently made a tool that captures frames from GTA:SA using GDI, and when holding ESC only show gameplay frames. It's an anti-epilepsy 'filter' for pause buffering intended for streaming. Now I just need to start streaming SA speedruns.
- flobosg 6mo agoHere are plenty of small apps developed with LÖVE: https://git.sr.ht/~akkartik https://git.sr.ht/~akkartik, see also https://akkartik.name/ https://akkartik.name/
- inzlab 6mo agoBest graphics ever
- mega-tux 6mo agoI find DragonRuby GTK somewhat similar, although not open-source sadly. ( https://dragonruby.org/ https://dragonruby.org/ )
- RobKohr 6mo agoIf you are looking to do some 3d in lua, try: https://lovr.org/ https://lovr.org/