Additional LÖVE Libraries (ALL?)

General discussion about LÖVE, Lua, game development, puns, and unicorns.
Post Reply
User avatar
Robin
The Omniscient
Posts: 6506
Joined: Fri Feb 20, 2009 4:29 pm
Location: The Netherlands
Contact:

Additional LÖVE Libraries (ALL?)

Post by Robin »

There are a number of modules/libraries floating around on this forum that are often used by lovers. For example: CAMERA, SECS, LUBE, PÄSSION, AnAL, ... (strangely the n in AnAL is the only non-uppercase character here, but anyway...)

It might be a good idea to include them in LÖVE itself. That prevents some code duplication and increases the ease of use of those libraries.

My idea is that they are not loaded when the game starts, but only when main.lua specifically states that it uses that module (compare require). Now, I have two proposals for that interface:
  1. We change the behaviour of require(), so that if nothing is found, it checks the list of ALLs.
  2. A new function: use(). It looks distinctive from require(), and there is no possible collision with any random lube.lua hanging around. Disadvantage is that it is non-standard. It could also be placed in the love table, i.e.: love.use "camera".
What do you think of this?
Help us help you: attach a .love.
User avatar
kikito
Inner party member
Posts: 3153
Joined: Sat Oct 03, 2009 5:22 pm
Location: Madrid, Spain
Contact:

Re: Additional LÖVE Libraries (ALL?)

Post by kikito »

I'm honoured to have PÄSSION included in such a select list :).

I wouldn't mind having these included, as long as there's an easy way out. While it is nice to have them included by default, I'd like to be able to download and use an older/newer version of an lib easily. So I don't like the "modifying require" option.

Thus I vote for love.use or something equivalent.

Also, I would not include any library that doesn't have proper documentation. (I'm speaking about a wiki page with examples and function names, not just a forum post). This rules out PÄSSION. While it is already functional, it is still mutating (FYI, the super() call will probably change this weekend!)

PS: Yes, the lowercase is curious.
When I write def I mean function.
User avatar
Robin
The Omniscient
Posts: 6506
Joined: Fri Feb 20, 2009 4:29 pm
Location: The Netherlands
Contact:

Re: Additional LÖVE Libraries (ALL?)

Post by Robin »

Thanks for your feedback, kikito. I must say this is only a “draft”, so by all means give suggestions for improvement, propose other libraries to be included or say this idea sucks if it does. ;)
kikito wrote:I wouldn't mind having these included, as long as there's an easy way out. While it is nice to have them included by default, I'd like to be able to download and use an older/newer version of an lib easily. So I don't like the "modifying require" option.
That is very true. This would mostly be an issue for modules that have much more frequent releases than LÖVE does, for example PÄSSION. CAMERA, for example, is now so stable it has seen not many releases lately (no, 0.6.0 compat does not count :P), so it will not be a very large problem there.
kikito wrote:Also, I would not include any library that doesn't have proper documentation. (I'm speaking about a wiki page with examples and function names, not just a forum post). This rules out PÄSSION. While it is already functional, it is still mutating (FYI, the super() call will probably change this weekend!)
Good point. If we want to go trough with this, we should probably specify some requirements, pertaining to documentation, stability and the like.
Help us help you: attach a .love.
User avatar
Virox
Citizen
Posts: 64
Joined: Thu Jan 07, 2010 6:24 pm

Re: Additional LÖVE Libraries (ALL?)

Post by Virox »

Nice idea,

maybe add a boolean in the config file to switch the libraries on, just like the current ones (graphics, sound, ...).

Proper Documentation, stability, completeness, general usefullness are requirements in the selection.
User avatar
TechnoCat
Inner party member
Posts: 1611
Joined: Thu Jul 30, 2009 12:31 am
Location: Denver, CO
Contact:

Re: Additional LÖVE Libraries (ALL?)

Post by TechnoCat »

I would be against including them in LOVE, and would rather suggest keeping an updated wiki of all the libraries.
User avatar
Robin
The Omniscient
Posts: 6506
Joined: Fri Feb 20, 2009 4:29 pm
Location: The Netherlands
Contact:

Re: Additional LÖVE Libraries (ALL?)

Post by Robin »

rude wrote:Eventually, we'll start including Lua libraries people make into LÖVE.
Do you still think that, rude? If so, is ALL what you had in mind?
Help us help you: attach a .love.
User avatar
Simtex
Prole
Posts: 39
Joined: Sun Dec 14, 2008 5:31 am

Re: Additional LÖVE Libraries (ALL?)

Post by Simtex »

I was actually going to post a similar thread in the forum, but I'll just put my thoughts here.

I understand that the original LOVE design had more features, and that eventually a decision was made to cut the design back to a more bare-bones library. I don't disagree with that decision, as a messy API would be overwhelming to people who are new to programming (and we want LOVE to be a fun introduction to game programming). That being said...

I think LOVE should add back some functionality now that 0.6 is stabilizing. In particular I'd like to see some built in GUI functionality, and probably the inclusion of bartbes networking library.

Hand written GUI's can be very messy and picky to implement, having some sort of basic functionality so that new programmers can get something up and running quickly is critical to maintaining their motivation and interest. A GUI is pretty much a universal need for most games (there are exceptions, but they are the minority by far), I think LOVE is perfectly justified in having some basic GUI support. It wouldn't have to be extensive, just off the top of my head: list boxes with scrollbars (basically what the examples.love uses for the main example list), radio buttons, check boxes, text & number fields, and that's about it.

As for networking, it's one of those things that a lot of people wish they could add to their games, but they simply don't know how, since it requires a unique set of knowledge and skills beyond basic game programming. Having a library that can simplify those issues significantly would allow for a lot more multiplayer games, which is good for developers and the community.

Right now, a new developer has to sift through the projects forum to identify which libraries address their needs, and then figure out which ones are still supported. And even after identifying something, there's no guarantee of significant documentation, or that the original developer will be around to answer questions as they come up. I think the above library's are important enough to most games, that a standard implementation within the LOVE core, and corresponding inclusion in the LOVE documentation, would far outweigh the downside of increased complexity in LOVE. I understand the desire to avoid feature creep and letting LOVE get messy, but now that a major rewrite has been accomplished in 0.6, I think a few critical additions to the library are in order.
Post Reply

Who is online

Users browsing this forum: No registered users and 52 guests