Godot: Integrated Q&A site tools via a web API

Created on 16 Oct 2018  路  13Comments  路  Source: godotengine/godot

Godot version:
Godot 3.2+

Issue description:
There are a few common problems that I hear from the Godot community:

  1. People don't utilize the Q&A site often enough, frequently asking their questions on random social media like FB, Reddit, Discord, or forums before they've properly checked the official, indexed resources for such things (or just flat-out now reading the docs). This leads to people re-answering many common questions and wastes a lot of time.
  2. Many people report the API documentation to be insufficient for illustrating how to use the engine's objects. A frequent suggestion to improve it is to create a more wiki-like experience where people can freely add or remove content from the data publicly, but the docs team reasonably responds with saying that this completely breaks down the quality control that git provides. Git has a high barrier of entry for those unfamiliar with it (even if it's not complex in practice, the uninitiated can have a very difficult time grasping its workflow / capabilities - I know I did). Furthermore, there's a persistent desire to keep the in-engine documentation as brief and to-the-point as possible which runs in contrast to a desire for anyone and everyone to contribute answers to "how to use" questions that get voted on by others.
  3. There already exist documentation on what a method does / what an object is for (in-engine XML API docs, tends toward compactness, requires git/xml knowledge) and how to do general conceptual things like how to build a UI, how to animate things, or how to use the HTTPClient (godot-docs ReStructuredText tutorials, can be as detailed as needed, hosted online, requires git/rst knowledge). None of these easily enable community contributions for laymen, nor do they give "the most popular" solution to a problem.
  4. There is also not an ideal place for documentation that involves small-scale programming questions, such as "how do I create an 8-directional character controller?" No one wants to go sifting through the docs for a tutorial that might answer their question, and the answer to their question, if it is in a tutorial, would be jumbled in with a whole host of other information they may not need. The API docs aren't even designed to contain questions of that sort. The Q&A site is really the best place for them, but for some reason the accessibility of that site seems to be poor in comparison to other places. Many either don't even know about it, or are simply not in the habit of checking it.

I believe that these problems' could be improved by defining a web API for the Q&A site and defining an interface within the editor that allows people to ask their questions directly from there. Perhaps even creating integrated tools in the API docs so that prefilled questions can be generated. We could also then use the tagging system in the Q&A site to generate links in the in-editor API docs. For example, if I had a question tagged with "Object.connect", I might then end up generating a link in the API docs for that function that would allow someone to visit the Object's API docs, find that method, click the link, and immediately jump to the relevant Q&A site question in-editor.

Anyway, just some ideas to toss out. WDYT?

archived discussion documentation enhancement

Most helpful comment

I'd do it way more minimally for a first step:

Next to each class, constant, member and method in the built-in docs, display "[search tutorials] [search q&a]" links that just open your web browser on a click, searching all tutorials/qa pages for that method name, class name etc.

That would already help a lot with discoverability of Q&A and the matching tutorials, IMO.

E.g. link to http://docs.godotengine.org/en/3.0/search.html?q=kinematicbody2d&check_keywords=yes&area=default for docs/tutorials and https://godotengine.org/qa/search?q=kinematicbody2d for the QA for KinematicBody2D for example.

This way requires no deep REST API integration anywhere.

All 13 comments

As someone who has used Godot for half a year, I didn't even know there was a Q&A site! I also find that the API docs aren't as up to date with the latest version of the engine (unsurprising - hard to maintain).

So, I think this is an awesome idea. Who would filter/maintain the questions that came from the editor?

@bakenshake

Who would filter/maintain the questions that came from the editor?

Not sure what you mean by this. We would just be creating a GUI that can do basic CRUD operations via HTTPRequest. The Q&A site is basically community-managed. Anyone can post questions and answer them. The only restriction is that the site is read-only (can't ask or answer questions) if you aren't logged into it, so we'd need an interface for that built into the editor.

Sounds like a sizeable task, but I dig the idea! An official, well-integrated channel to ask questions and find answers straight from the engine would be nice. I'd definitely help people on the QA site more if this was the case.

Interestingly, I see the godot website and the asset library as FOSS repositories on GitHub, but I don't see one for the Q&A site. Not even sure where that's located.

The Q&A site runs on Question2Answer, but I don't know if it offers a REST API that could be used from the editor.

I'd do it way more minimally for a first step:

Next to each class, constant, member and method in the built-in docs, display "[search tutorials] [search q&a]" links that just open your web browser on a click, searching all tutorials/qa pages for that method name, class name etc.

That would already help a lot with discoverability of Q&A and the matching tutorials, IMO.

E.g. link to http://docs.godotengine.org/en/3.0/search.html?q=kinematicbody2d&check_keywords=yes&area=default for docs/tutorials and https://godotengine.org/qa/search?q=kinematicbody2d for the QA for KinematicBody2D for example.

This way requires no deep REST API integration anywhere.

Discoverability/usability of q&a would be better if assetlib and/or forum login could be integrated with it. However last time it was suggested, there were some problems with doing it?

Forum isn't official, so we can't integrate with that.

Maybe it's the time to use a well established forum software, to create a single place for help, and such a forum may have the required API to create the bridge to the Godot editor. Several problems solved by one solution !

It does seem like part of the issue is that the Q&A site isn't really advertised as being the "official" primary source for this kind of info (it's tucked away under the "Community" section). If it was listed more prominently on the Godot site (perhaps next to the docs link), I think it would help make the info more discoverable and would help encourage folks to contribute questions and answers to a single, canonical Q&A site, instead of the fragmentation that we seem to have right now.

As for actually integrating the Q&A info with the editor, that's an interesting idea! I would suggest, though, that such features be focused around how they would improve the dev cycle. For example, having in-editor access to answers would be interesting, especially if they were connected to the API docs instead of just being searchable.

On the other hand, I'm not sure that asking a question from the editor is all that useful. By the time that someone has to ask a question, they're already being interrupted from their state of flow, so reimplementing the Q&A UI in the editor doesn't seem like it would gain the user much.

@DriNeo rather than moving people to another place, a few quick Google searches revealed that Q2A has plugins that can let you define a web API. We may wanna check that possibility out first.

related: #10827

Closing in favor of https://github.com/godotengine/godot-proposals/issues/598, as feature proposals are now tracked on the Godot proposals repository.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

n-pigeon picture n-pigeon  路  3Comments

ducdetronquito picture ducdetronquito  路  3Comments

bojidar-bg picture bojidar-bg  路  3Comments

testman42 picture testman42  路  3Comments

EdwardAngeles picture EdwardAngeles  路  3Comments