← Back to context

Comment by akkartik

6 days ago

As someone who loved Turbo Pascal, for the past 3 years I use Lua and LÖVE.

https://akkartik.name/freewheeling

Are you shipping apps bundled with LÖVE or just expecting users to obtain it and drag the files onto it? I know there are some scripts out there to produce stand-alone apps, but I wish it were more straight forward or that there were a 1st party tool that did it.

  • Yeah, my install instructions are consistently:

    1. Download LÖVE from its website.

    2. Download my app (as Lua source code).

    It's not going to lead to Instagram-level downloads, but that's not the aim. My goal is to teach people a little at a time to be thoughtful about whom they trust to run code on their devices. Forcing people to take 2 steps hopefully has 2 benefits:

    1. You start from day 1 to take baby steps in being mindful of how software is put together for you to use. It's not just a single hermetically sealed box. This part comes from one supplier, this part from another. Both can be modified, and require different skills to modify.

    2. You start from day 1 to take baby steps in thinking about whom to trust. Here there are 2 separate projects that would be very hard to collude together. That limits at least the level of malicious stuff I can do.

    Summary: I don't want a bunch of people blindly trusting me. I want a few people choosing mindfully to trust me.

  • Last time I wrote any LÖVE games was probably more than 10 years ago, so perhaps this has been lost since then, but from what I recall creating a single executable of your game could be done by just concatenating a zip file of your game to end the of the LÖVE binary.

Does LÖVE have support for widgets/ controls (such as labels, text boxes, combo boxes, etc.) for building GUI desktop apps, or is it only for 2D graphics? I could not make that out, on a quick look just now at the homepage and the various modules listed there.

  • There's a GUI library: https://github.com/flamendless/Slab

    In general, if you use a minority platform you have to assume it has a tiny minority testing it and so budget for there to be more bugs and so on. LÖVE itself is rock solid, but programs built on it may not be. So I try to minimize the number of layers of libraries I add atop it. So far that has meant I found it easier to just draw my own UI in all my programs.[1] I've only played with Slab a little bit myself.

    If you use Slab, please do report bugs. I've done that in the past when I've used it. That's what it takes to make a minority platform more stable.

    [1] Drawing all my own UI also keeps my download sizes small. For example, https://akkartik.itch.io/carousel is 400KB. If you take out 4 fonts and the extensive online help, the code itself is only 100KB. By comparison, Slab seems to be almost 1MB of code. But that's just me. I care a lot about being easy to download on slow internet connections, and less code seems more hackable. But I give up some creature comforts, and reasonable people will disagree with me about the value of a UI library.