I also think a physical book would be unsuitable. And, even though I mentioned "reading", there are other forms it could take other than text which might be interesting to think about.
I don't think there's anything
quite like what I'm thinking of, but I haven't been very specific, as not to limit anyone's imagination.
So
spoiler alert, feel free to avert your eyes, but
this is what I'm currently thinking would be useful:
- A description of what LÖVE is (and is not)
- ... including why it exists and how it fits into the context of similar projects
- ... and why it's designed like it is
- Descriptions of all of LÖVEs functions, callbacks, etc., much like the wiki
- ... but sequenced in a linear manner, and written in a style which suits the linear flow
- ... demonstrated in a clear way, which may involve pictures and/or videos and/or examples
- ... and a rationale of why the functions exists and work the way they do
- ... and how they're used in the making of games (of course they could be used for anything, but let's say in the 90% most common cases)
- Information about running games, distributing games, etc., which is also on the wiki
- Any FAQs or gotchas, if this is needed
Also, I think this could be used a script for a
narrated video which takes the viewer through a tour of LÖVE. It may go for an hour or two or more, but I think it is something that people would watch, and would leave with an overview of everything that LÖVE does.
I think a video would be very suitable for this kind of thing. Videos are "easy" to watch, require no interaction, keep a kind of pace and go for a fixed amount of time, and of course things can be demonstrated through visuals and audio. And the things that aren't good with videos, such as things going by without you quite understanding it, and how it can be difficult to jump around and navigate (
or maybe not), probably wouldn't hold this back from being useful, given the same information available in a text format and a good API reference.
So that's
what I'm thinking would be useful, and here's
why I think it would be useful
I think that if something like this doesn't exist:
- People may be unsure of why they would make a game using LÖVE, and not something else
- People may be unsure of why LÖVE is designed like it is, which could make it hard for them to compare LÖVE to other things
- ... or may just not think critically about the tools they are using (I think this has implications)
- People may know of some parts of the API, but be unaware of others, which may lead to workarounds
- ... or reimplementations of things LÖVE already does
- ... or not having it in mind as something they can use for their game, and thus limiting what they create
- ... or just generally being confused and overwhelmed (I think this also has implications)
- People may be spending time asking questions which they needn't if the information they sought was easily available...
- ... and people may be spending time answering these questions
- If someone did read through every function on the wiki, they could have received that information more efficiently
Of course these are just my "why"s and "what"s, which might be all totally off track, I'm interesting in all of yours!
Thanks for the mentions of PiL! I guess I am in sense thinking of the "PiL of LÖVE", but LÖVE and Lua are two quite different things, so I predict the best possible "PiL of LÖVE" would end up being not very much like PiL.
But absolutely, if the Lua manual is the LÖVE wiki, then I'm thinking that there should be the PiL too.
As far as a building a demo project goes... it is indeed a common approach... and in the context of learning LÖVE, it could be interesting if the demo project was very simple but used many different LÖVE features, providing real motivations for the functionality of LÖVE.
While I think there's some potential to this format, I'm not so keen on making something like this. You're right that things like genre could put people off, and there's a lot of complexity and arbitrary-ness in making a game which could get in the way of learning what you want to learn, which is in this case the functionality of LÖVE.