1. 26
  1.  

    1. 15

      Even though LÖVE programs open very fast, I still missed the hot reloading you get when working on browser UIs.

      This is really, really easy to build if you bring in the lume library, which you probably are going to need anyway: https://github.com/rxi/lume

      local lume = require("lume")
      function love.keypressed(key)
        if key == "f5" then
          lume.hotswap("my-module")
        else if ...
        end
      end
      

      I published a blog post a few years ago that goes into the details of how module reloading works in Lua based on my first experiences with love2d: https://technomancy.us/189

      1. 5

        It takes expertise but with LÖVE there is a pipeline from Lua syntax -> LuaJIT FFI -> C via modules.

        The trap with engines is it’s all easy until you get into the “value zone” where you are deviating from the preset features and doing real work. The utility function of most high-level engines is creating tutorial content since the preset work is so easy and impressive.

        LÖVE as a drop-in engine you can replace in pieces as needed is a killer hidden feature. Prototype in Lua, speed up with LuaJIT, replace with C.

        1. 2

          The TL;DR is something like: if I need game engine features (very busy world, complex entity interactions, physics beyond the basics) I would reach for Godot.

          Depending on what’s meant by “physics beyond the basics”, LÖVE does come with love.physics which is Box2D under the hood.