Page 1 of 1

LOVE should stop ignoring serious developers

Posted: Thu Feb 16, 2023 9:16 am
by be-thomas
I have been seeing LOVE ignoring serious developers for a long time now.
Many people including me have come to roadblocks and asked about the issues & feature to fix them & they have been denied because of wierd reasons like the feature would not be "LOVE"ly.

For example,
I had hit a roadblock last time about implementing vectors efficiently :-
viewtopic.php?f=3&t=94270&p=253245sid=f ... 91#p253245
FFI is the way to go only if you have JIT. Without JIT, FFI is orders of magnitude slower (its much worse than tables).
Guess what?, they removed JIT from Android, iOS doesn't even support it anyways. And because of their ARM problems, its not even supported in M-series macs & any other Windows laptops that may come in future (ARM is the future of laptops).
I have seen several threads asking for an effecient vector library to be built-in to LOVE but the people just shun it.
Now people will say that its a language problem?!, Its not! pretty much every other game engine or library comes with vector stuff built-in.
Its a basic necessity for games.

Another example,
Lets say I'm building a text editor inspired by rxi/lite then also I'm better off not even building it (Thats why rxi avoided LOVE). There is no data structure for efficiency. In C we have mutable strings for efficient string manipulation. I can't expect lua to grabage collect everytime someone types an alphabet on the editor!
Again people will shun it saying its a language problem ?!, Maybe it is!, BUT ITS IS very much manageable by exposing a memory aligned array like C (holding same datatype throughout, torch does something like that). Im pretty sure gamdevs need arrays for general computing and some AI too. Atleast we can have the basic & efficient Array? No?

I understand JIT is a language problem.
But what is LOVE doing to fill the holes with JIT OFF, for gamedevs?

I would conclude saying that the community hardly cares about the actual requirements of a serious game & that's limiting people & also severally limiting games and apps to be "built with LOVE".

Re: LOVE should stop ignoring serious developers

Posted: Thu Feb 16, 2023 9:57 am
by zorg
Citation needed on "they removed JIT from Android"... also, who's they? Mike Pall? The LÖVE devs? Android developers? Unless something else happened lately, it's just turned off due to issues, as i said in the thread you linked.

Also, i'm pretty sure it wasn't due to anyone's complaining, but ByteData objects have received some functions to set/read numeric types in the next löve version; maybe they'll have more features later still.

Re: LOVE should stop ignoring serious developers

Posted: Thu Feb 16, 2023 11:42 am
by BrotSagtMist
Serious developers would actually fix stuff and dont cry like a baby.
Lets say I'm building a text editor inspired by rxi/lite then also I'm better off not even building it (Thats why rxi avoided LOVE). There is no data structure for efficiency. In C we have mutable strings for efficient string manipulation. I can't expect lua to grabage collect everytime someone types an alphabet on the editor!
Well if you think you cant do it thats your own problem. My inbuild editor has the resource usage of leafpad and i didnt even care much about efficiency.

Re: LOVE should stop ignoring serious developers

Posted: Thu Feb 16, 2023 12:51 pm
by be-thomas
Don't get me wrong.
I really like LOVE. I just hate it that it's not providing basic features required for a serious game.
I even don't mind contributing code for the features I requested.

I'm just a little upset about essential features not there yet.

Re: LOVE should stop ignoring serious developers

Posted: Thu Feb 16, 2023 12:56 pm
by slime
be-thomas wrote: Thu Feb 16, 2023 9:16 am I had hit a roadblock last time about implementing vectors efficiently :-
viewtopic.php?f=3&t=94270&p=253245sid=f ... 91#p253245
FFI is the way to go only if you have JIT. Without JIT, FFI is orders of magnitude slower (its much worse than tables).
Guess what?, they removed JIT from Android, iOS doesn't even support it anyways. And because of their ARM problems, its not even supported in M-series macs & any other Windows laptops that may come in future (ARM is the future of laptops).
JIT compilation is enabled right now on M1 Macs - although it's a little easy to hit LuaJIT's arm64 memory allocation issue. It's a frustrating problem, but not something love's developers can solve. You could spend money to sponsor Mike Pall to work on a fix - from what I understand it'd be a substantial change. You can read more about the issue here https://github.com/LuaJIT/LuaJIT/issues/285 (but please don't make a post there with the same tone/attitude as here, you'd probably be banned from their issue tracker for looking like a troll.)

That being said, it's actually pretty trivial to make a FFI-capable vector library which falls back to tables instead of FFI structs when LuaJIT's JIT compilation is not enabled. Then you'll have the performance benefits of the FFI when JIT compilation is possible, without the slowdowns of the FFI when it's not.

be-thomas wrote: Thu Feb 16, 2023 9:16 am I have seen several threads asking for an effecient vector library to be built-in to LOVE but the people just shun it.
Now people will say that its a language problem?!, Its not! pretty much every other game engine or library comes with vector stuff built-in.
Its a basic necessity for games.
Every approach to vectors in Lua has a different set of drawbacks. The drawbacks that are most and least important to an individual will vary a lot depending on their project's needs. If love had a vector API built-in, it wouldn't be any better than one of the many existing Lua vector libraries, whereas right now love's APIs don't depend on any specific vector approach, which lets you choose what's best for your own project.

be-thomas wrote: Thu Feb 16, 2023 9:16 am Another example,
Lets say I'm building a text editor inspired by rxi/lite then also I'm better off not even building it (Thats why rxi avoided LOVE). There is no data structure for efficiency. In C we have mutable strings for efficient string manipulation. I can't expect lua to grabage collect everytime someone types an alphabet on the editor!
Again people will shun it saying its a language problem ?!, Maybe it is!, BUT ITS IS very much manageable by exposing a memory aligned array like C (holding same datatype throughout, torch does something like that). Im pretty sure gamdevs need arrays for general computing and some AI too. Atleast we can have the basic & efficient Array? No?
love is primarily designed for games - if you want to make a text editor app it'll probably be a worse experience in any game creation tool compared to tools more suited for making traditional apps, so you'd be better off using something else either way I think.

But there are plenty of efficient data structures provided by love, Lua, and LuaJIT, depending on your needs....

If you want an array of characters you can just do that with table.insert. It'll be efficient, and table.concat lets you generate a string from it.

be-thomas wrote: Thu Feb 16, 2023 9:16 am I would conclude saying that the community hardly cares about the actual requirements of a serious game & that's limiting people & also severally limiting games and apps to be "built with LOVE".
From the tone and content of your post I'm not sure there's a solid understanding of the actual requirements of 'serious games' in this thread. But love is an open source project entirely run by people who want to contribute in their free time - that could be you too, if you want to execute on ideas for improvement which fit within love's philosophy.

Re: LOVE should stop ignoring serious developers

Posted: Thu Feb 16, 2023 5:38 pm
by Hugues Ross
Honestly, as a fairly serious developer I haven't actually run into any issues that stem from what you've listed above. No framework can perfectly cover all use cases, but for the things that LOVE is good at I find it excellent.

Looking at your post history, I'm noticing mostly benchmarks and request for fairly specific features and not a lot of actual real-world examples which makes me wonder if you even need the things you're asking for in the first place or if you just assume you do... there is a trap I've seen many devs fall into where they seek the utmost best performance they can before checking if what they're doing will ever run into their imagined limitations (or consider alternate routes that would get them the same results without the hassle). I don't know you, perhaps you're not that dev! But it's possible.

Re: LOVE should stop ignoring serious developers

Posted: Thu Feb 16, 2023 6:29 pm
by Bigfoot71
I don't know what you mean by "serious games" but in any case I personally found a lot of "serious games" (it's not very nice for the people who made these games ^^), after obviously we are not going to make a AAA game with Löve (unless you are quite crazy and have 10 years in front of you)

Anyway, if you want some inspiration to see how people made their games go check it out: https://itch.io/games/made-with-love2d
There is also this list of games released on Steam apparently made with Löve: https://steamdb.info/tech/Engine/Love2D/

Re: LOVE should stop ignoring serious developers

Posted: Sat Feb 18, 2023 7:40 pm
by deströyer
@be-thomas Sounds like you would rather program in C, maybe you should look into SDL rather than complaining that a framework based on Lua does not support C features https://www.libsdl.org

Re: LOVE should stop ignoring serious developers

Posted: Sat Feb 18, 2023 8:48 pm
by GVovkiv
deströyer wrote: Sat Feb 18, 2023 7:40 pm @be-thomas Sounds like you would rather program in C, maybe you should look into SDL rather than complaining that a framework based on Lua does not support C features https://www.libsdl.org
or even raylib (https://www.raylib.com/) which probably suit more someone, who likes love