I really love LÖVE. This past week has been a blast, and despite skipping a day (I spent Saturday trying to make some music, but alas I still absolutely suck at music compostion) I’ve managed to put together the most polished and stable demo so far:
Pretty much all of the features the other demos have were completed in the first two days, so I took it easy for the remainder and tried to add some extra polish and refinement to what was already there.
I think a big part of what makes LÖVE so efficient for me to work in is that it’s a framework like DFGame. This lets the programmer go as simple or complex with the architecture as needed, which can really speed up the production of simple games. Unlike DFGame however, this framework is based on a high-level language with a greatly simplified API. To top it off, the fact that it’s based on Lua means the user can launch builds instantly. In short, it has most of the upsides of HaxeFlixel, with none of the downsides. Honestly, this test makes me want to kick old me in the shins for casually dropping it ~9 years ago. It’s great!
But of course, we can’t just be positive. LÖVE has one curious flaw: There’s no vector math in the API. Seriously! Since Lua supports multiple return values, the devs have taken to just passing around pairs of floats. That’s not such a big deal, but having to write your own math boilerplate to do basic vector manipulation is kind of a chore. I have absolutely no idea why LÖVE doesn’t provide these functions, especially since the core engine almost certainly has them somewhere…
Thankfully, this is the sort of problem that can be solved with a helper library. Overall, I think LÖVE is handily “winning” this comparison so far.