o3de / sig-content

8 stars 12 forks source link

RFC - Interactive Tutorials #79

Closed cgalvan closed 2 years ago

cgalvan commented 2 years ago

Summary:

The goal of this proposal is to bring support for Interactive Tutorials to O3DE. This will provide an additional avenue for users to learn how to use the engine and its tools. The framework would allow for users to discover tutorials on features/workflows, and also create their own tutorials for the benefit of the whole community.

A prototype has been iterated on in a personal public repository here:

https://github.com/cgalvan/InteractiveTutorials

What is the relevance of this feature?

There are some areas of the engine that can have a steep learning curve. Interactive Tutorials would serve as a complement to our online documentation (https://www.o3de.org/docs/) and video tutorials. The tutorials could cover everything from beginner concepts to advanced workflows, so they would be useful to any user regardless of skill level.

Feature design description:

Interactive Tutorials support is provided through a Gem. The Gem registers a simple tool which gives the user a list of available tutorials, and then guides them through the tutorial steps once one is started.

RigidBodiesTutorial

Technical design description:

The tool and tutorials are written in Python. This will allow quicker iterations and makes it accessible to a wider audience since Python is widely used for scripting purposes by artists and non-technical content creators across multiple DCC tools.

The framework is lightweight and consists of only a few classes:

TutorialStep

Tutorial

InteractiveTutorialsDialog

What are the advantages of the feature?

This feature provides an interactive experience to help our users learn how to use the Editor and tools. It also empowers our users to create their own tutorials to share with the community.

The documentation team has been involved in the development of this feature and has found that it enables writers to provide tutorials much more quickly than through the traditional documentation process.

How will this be implemented or integrated into the O3DE environment?

The short-term goal would be to move the https://github.com/cgalvan/InteractiveTutorials Gem out of its separate repository and into the O3DE repository. There would first need to be a minor amount of cleanup before bringing it over.

How will users learn this feature?

Are there any open questions?

  1. Currently the tutorials are registered manually in the Interactive Tutorials Gem itself. It would be ideal to instead have a registration system that would allow users to register tutorials from their own Gems. That way, those tutorials would only be visible if the corresponding Gems were enabled.
    1. For the many use-cases of tutorials that would come with a Gem, it would make sense for them to only be shown if the Gem is enabled. However there are likely some edge-cases for common or important workflows that come in Gems that aren’t enabled by default. So to handle this we could have those tutorials registered in the Interactive Tutorials Gem itself, but then have a way of marking them as dependent on other Gem(s), and if they aren’t enabled for the current project then they would be disabled in the list and would indicate to the user that those Gem(s) would need to be enabled for the tutorial to be functional.
  2. We could potentially allow the user to view the whole index of all the steps and to jump to a step in-between. If we did this, we would need to build in mechanisms to have blocking requirements (e.g. if you skip to a step that adds a component on an Entity, you would need to make sure that Entity was created first)
tkothadev commented 2 years ago

very cool idea. Do you know if it would be possible to turn the manual portion of the interactive tutorial into a gem that others can use for their own documentation?

I could see others having manuals dedicated to describing their own gems (especially if it's a complex component)

cgalvan commented 2 years ago

very cool idea. Do you know if it would be possible to turn the manual portion of the interactive tutorial into a gem that others can use for their own documentation?

I could see others having manuals dedicated to describing their own gems (especially if it's a complex component)

I believe so, are you referring to the manual steps/content of a tutorial? If so, then yes. The content itself does support simple markdown format, so you could re-use that directly into something like GitHub wiki pages.

cgalvan commented 2 years ago

We had a great discussion about Interactive Tutorials during the sig-ui-ux meeting on Discord last week. Some of the ideas that came out of that discussion were:

monroegm commented 2 years ago

At SIG-Content Triage on Wednesday, October 26, 2022, we decided to initiate the final comment period for this RFC. Please submit all remaining feedback by Monday, October 31, 2022.

lmbr-pip commented 2 years ago

Is the proposal that the Gem is owned by SIG/content? If so do we have automation plans for gem?

Who owns the individual interactive tutorials? Is this cross-cutting with SIG/docs-community? Do the tutorials live individual gems?

Can we clarify expectations for ownership?

monroegm commented 2 years ago

Approved at SIG-Content Triage on Wednesday, November 2, 2022. Please commit this RFC to the repo.