I got the editor documentation written pretty quickly. It was hard to start, but once I figured out how I wanted to lay out the information, it all started flowing pretty easily.
Documentation in Leadwerks Engine 2 was a weakness, especially in stuff other than the programming reference. This is unfortunate, because I have come to see documentation as the final product. Everything in the development cycle leads up to the ability to write good documentation.
Good documentation starts with good program design. It would have been difficult to give the same attention to detail in Leadwerks Engine 2 as I am now, because there was much more behavior that was undefined, or left up to the user. Because Leadwerks 3 absorbs a lot of that complexity, I can definitively say "if you want to do X, press this button". It makes for documentation that is nice to read, and kind of fun to write.
Here's a screenshot, just to give you an idea of the formatting and style I am using.
I usually feel overwhelmed by the documentation when I look at game engines. It's hard to know where to start, and I just feel like I am picking up random bits of disorganized information. I am hoping the manner in which I have organized our docs will provide a streamlined learning experience, with the ability to drill down to more detail when needed. My organization is as follows:
This covers the entire Leadwerks workflow and art pipeline. You can find answers to all non-programming questions here.
This section describes all the object scripts included with Leadwerks, and how to use them to make game interaction.
This section discusses general information about programming with Leadwerks, in C++ and Lua.
This section provides detailed descriptions and examples for the entire Leadwerks API.
This is a list of all pages in the documentation, in alphabetical order.
It feels very easy to navigate and it doesn't take long to learn how the entire workflow and art pipeline work, but it's not lightweight by any means. The docs have more than 600 pages! Most of that is for individual class functions, which is information you will usually specifically seek out, rather than just reading through them all for fun.
I added some additional fields for C++ and Lua examples, with a tabbed interface to view each: