Rethinking the documentation
Posted: Wed Nov 02, 2016 1:24 am
Dumb ideas ahead!
(Backstory: I think a manual for LOVE should exist. I reference it a few times here.)
If you want, take a look at the wiki and ask:
- What is there?
- Is it useful?
- If it is useful, or could be useful, how could it better achieve its goals?
Here's my take on it:
The front page of the wiki features:
- An unorganised grid of links to other pages.
- Links to Lua references/tutorials, which are only useful if you already know how to program.
- The same hello world example from the home page.
Getting Started and Game Distribution are useful and this information should be covered in the LOVE manual. What's missing is discussion of what LOVE actually is, why someone would choose LOVE over alternatives, what version of Lua LOVE uses, etc.
Building LÖVE: Relevant info is/should be on Bitbucket, so this page seems unnecessary.
License: The license is already mentioned on the home page and comes with LOVE when you download it. It's not clear what the "old, imported documentation" is that is licensed under the FreeBSD Documentation license. This page seems unnecessary.
Software: Lists some assorted software which might be used for game development. This page seems unnecessary. I'm sure there are other lists of useful software for game development out there. Information on tool support for LOVE is important though, stuff like debuggers for LOVE, LOVE-related plugins for text editors, etc., but this stuff is listed among software unrelated to LOVE.
Snippets
Problems:
- No organisation.
- Unclear licensing.
- No quality control.
- Some are LOVE specific, some aren't.
- Some are basically libraries.
Alternative:
- Libraries: more complete, clear licensing.
Libraries
Problems:
- Many available libraries aren't listed. The only libraries listed are those which someone has bothered to make a wiki page for.
- Almost no organisation.
- Some don't work with the current version of LOVE.
- Some are LOVE specific, some aren't.
- No quality control.
- There isn't a place on the wiki for LOVE-related tools which aren't libraries.
Alternatives:
- The Libraries and Tools subforum: lots more libraries and enables discussion.
- awesome-love2d: curated and organised.
Games
Problems:
- Many games aren't listed. The only games listed are those which someone has bothered to make a wiki page for.
- None or few of them run with the current version of LOVE.
Alternatives:
- The Games and Creations subforum: lots more games.
- josefnpat's list of notable LOVE games.
- Vapor (which is like Steam for free LOVE games), although it uses an older version of LOVE.
Tutorials
Problems:
- The page currently has all of the languages together, and you need to click "further results" to see all of the tutorials.
- Also they're unorganised.
- Some tutorials just describe LOVE functionality (which is what the manual would do).
- The wiki is a limited (although accessible) way of authoring tutorials.
Alternatives:
- A subforum for tutorials. It would contain less topics than other subforums, but it would make it easy to find tutorials and hopefully would encourage people to make and talk about tutorials.
- The LOVE community blogs.
- A curated list of tutorials. awesome-love2d already has a couple.
- I think an expanded beginner tutorial like Hamster Ball would be useful. Even though Hamster Ball is simple it still introduces some key LOVE concepts, including callbacks, objects, using dt, etc. Maybe a tutorial like this, with the intention to introduce LOVE concepts but covering more ground than Hamster Ball, could be included in the manual or be created separately.
API reference
Problems:
- Mostly unorganised except by module/type/alphabetical sorting.
- Get/set entries not organised together, creating longer lists of functions.
- Function descriptions next to function names when listed are often useless, for example "love.graphics.setBackgroundColor" has "Sets the background color.".
- Constructor functions are redundantly listed both on the module and object pages.
- Unusable things are still documented (love.font, love.filesystem.init, love.filesystem.setSource).
Ideas:
I think having the documentation in a simple structured format like a Lua table has advantages. It can be used to format the documentation however you want (I've experimented with a single page, which seems faster to navigate than having multiple pages, but you could also generate multiple pages from the same data).
It's still editable like a wiki through pull requests, and I don't think contributors even need version control software with the in-browser editing GitHub has.
There's still stuff which hasn't been done in the project linked to above, like images and languages other than English and links to other sections, but that's all possible.
The manual should include and expand upon the high-level introductions given on the module pages and the examples on the function pages. I think examples are better suited for the manual because I would assume that useful examples involve more than one function, and therefore don't fully belong on any particular function's page.
Version History: great! I think it would also be good to have guides for exactly what you need to do to update your game to the latest version of LOVE.
So in conclusion, LOVE's documentation could consist of:
- The manual
- The reference
- A "curated list of curated lists", e.g. links to awesome-love2d, josefnpat's list of notable LOVE games, etc.
- A page about tool support (maybe hosted on GitHub for collaboration?)
- A page for version history and migration guides
And also the Bitbucket README, the blogs, and the forums (with a subforum for tutorials).
(Backstory: I think a manual for LOVE should exist. I reference it a few times here.)
If you want, take a look at the wiki and ask:
- What is there?
- Is it useful?
- If it is useful, or could be useful, how could it better achieve its goals?
Here's my take on it:
The front page of the wiki features:
- An unorganised grid of links to other pages.
- Links to Lua references/tutorials, which are only useful if you already know how to program.
- The same hello world example from the home page.
Getting Started and Game Distribution are useful and this information should be covered in the LOVE manual. What's missing is discussion of what LOVE actually is, why someone would choose LOVE over alternatives, what version of Lua LOVE uses, etc.
Building LÖVE: Relevant info is/should be on Bitbucket, so this page seems unnecessary.
License: The license is already mentioned on the home page and comes with LOVE when you download it. It's not clear what the "old, imported documentation" is that is licensed under the FreeBSD Documentation license. This page seems unnecessary.
Software: Lists some assorted software which might be used for game development. This page seems unnecessary. I'm sure there are other lists of useful software for game development out there. Information on tool support for LOVE is important though, stuff like debuggers for LOVE, LOVE-related plugins for text editors, etc., but this stuff is listed among software unrelated to LOVE.
Snippets
Problems:
- No organisation.
- Unclear licensing.
- No quality control.
- Some are LOVE specific, some aren't.
- Some are basically libraries.
Alternative:
- Libraries: more complete, clear licensing.
Libraries
Problems:
- Many available libraries aren't listed. The only libraries listed are those which someone has bothered to make a wiki page for.
- Almost no organisation.
- Some don't work with the current version of LOVE.
- Some are LOVE specific, some aren't.
- No quality control.
- There isn't a place on the wiki for LOVE-related tools which aren't libraries.
Alternatives:
- The Libraries and Tools subforum: lots more libraries and enables discussion.
- awesome-love2d: curated and organised.
Games
Problems:
- Many games aren't listed. The only games listed are those which someone has bothered to make a wiki page for.
- None or few of them run with the current version of LOVE.
Alternatives:
- The Games and Creations subforum: lots more games.
- josefnpat's list of notable LOVE games.
- Vapor (which is like Steam for free LOVE games), although it uses an older version of LOVE.
Tutorials
Problems:
- The page currently has all of the languages together, and you need to click "further results" to see all of the tutorials.
- Also they're unorganised.
- Some tutorials just describe LOVE functionality (which is what the manual would do).
- The wiki is a limited (although accessible) way of authoring tutorials.
Alternatives:
- A subforum for tutorials. It would contain less topics than other subforums, but it would make it easy to find tutorials and hopefully would encourage people to make and talk about tutorials.
- The LOVE community blogs.
- A curated list of tutorials. awesome-love2d already has a couple.
- I think an expanded beginner tutorial like Hamster Ball would be useful. Even though Hamster Ball is simple it still introduces some key LOVE concepts, including callbacks, objects, using dt, etc. Maybe a tutorial like this, with the intention to introduce LOVE concepts but covering more ground than Hamster Ball, could be included in the manual or be created separately.
API reference
Problems:
- Mostly unorganised except by module/type/alphabetical sorting.
- Get/set entries not organised together, creating longer lists of functions.
- Function descriptions next to function names when listed are often useless, for example "love.graphics.setBackgroundColor" has "Sets the background color.".
- Constructor functions are redundantly listed both on the module and object pages.
- Unusable things are still documented (love.font, love.filesystem.init, love.filesystem.setSource).
Ideas:
I think having the documentation in a simple structured format like a Lua table has advantages. It can be used to format the documentation however you want (I've experimented with a single page, which seems faster to navigate than having multiple pages, but you could also generate multiple pages from the same data).
It's still editable like a wiki through pull requests, and I don't think contributors even need version control software with the in-browser editing GitHub has.
There's still stuff which hasn't been done in the project linked to above, like images and languages other than English and links to other sections, but that's all possible.
The manual should include and expand upon the high-level introductions given on the module pages and the examples on the function pages. I think examples are better suited for the manual because I would assume that useful examples involve more than one function, and therefore don't fully belong on any particular function's page.
Version History: great! I think it would also be good to have guides for exactly what you need to do to update your game to the latest version of LOVE.
So in conclusion, LOVE's documentation could consist of:
- The manual
- The reference
- A "curated list of curated lists", e.g. links to awesome-love2d, josefnpat's list of notable LOVE games, etc.
- A page about tool support (maybe hosted on GitHub for collaboration?)
- A page for version history and migration guides
And also the Bitbucket README, the blogs, and the forums (with a subforum for tutorials).