Search Unity

  1. Unite Berlin 2018 schedule is now updated with talks on real-time ray-tracing, upcoming 2D features & many more. Check it out!
    Dismiss Notice
  2. Unity 2018.1 has arrived! Read about it here
    Dismiss Notice
  3. ARCore is out of developer preview! Read about it here.
    Dismiss Notice
  4. Magic Leap’s Lumin SDK Technical Preview for Unity lets you get started creating content for Magic Leap One™. Find more information on our blog!
    Dismiss Notice
  5. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

Tutorial Master - Effortlessly Create Interactive UI Tutorials

Discussion in 'Assets and Asset Store' started by elmar1028, Aug 2, 2016.

  1. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009

    After several months of hard work, I am proudly presenting you the BETA of my Editor Extension - Tutorial Master.

    What is Tutorial Master?
    Tutorial Master is an editor extension that allows developers to quickly create interactive tutorials! It supports pretty much any platform Unity supports (including VR) and requires minimal tweaks (normally UI configurations) to make it work.

    Why do I need this?

    Why bother programming an interactive tutorial when there’s a game to make and deadlines to meet?

    Developers (like you) are busy creating awesome games. A lot of time is spent on polishing code and ensuring the game is fun, and yet no time is invested in teaching players how to play a game. Instead, a basic “How to Play” image is added in hope that players would read and play it. In reality, nobody would bother to read all that and would abandon the game shortly after just because they couldn't understand mechanics. All this effort of making a game gone for nothing!

    Tutorial Master will change all that!



    Current Features:
    • Intuitive and modern user interface
    • Flexible workflow. Quickly get started by auto-generating necessary components
    • Easily manage all tutorials and its frames
    • Can be quickly integrated into existing projects
    • Create separate tutorials for every occasion (combat or shop tutorial?)
    • Highlight UIs, by pointing arrows, darkening background and more
    • Custom scripts and shaders included (with full source code)
    • Play sound clips
    • Track down and crush bugs with an awesome debug tool!
    • Optimized for mobile devices
    • Literally, one line of code to get Tutorial Master up and running!
    • Extend Tutorial Master's functionality with included API
    • C# source code included (no DLLs)
    • PlayMaker Support
    • More to come!

    Tutorial Master integrated into the Inventory in less than an hour!



    Play WebGL Demo

    Tutorial Master will be available on Asset Store for $35. Keep an eye on this thread for latest updates :)

    If you have any questions, feel free to ask!
     
    Last edited: Oct 6, 2017
  2. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    API Documentation and User Manual are now available to public.

    This will help everyone to have an overall idea on how Tutorial Master works and how easy the setup process is!
     
  3. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    2,675
    Keeping my eye on this!

    Seems like a great way to handle UI tuts. I gave the video a quick watch, but being at work, didn't catch all the details. Is it built to handle situations where the player actually has to go do stuff between messages? Or would that basically just be breaking down a single tutorial into multiple smaller tutorials that get triggered when needed?
     
  4. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Yes! The Tutorial Master is designed to handle such situations. The next part of the tutorial can be triggered with a single line of code - frame.Next().

    For example, if you want to make a tutorial to teach the player how to jump. A tutorial message is displayed once the player stands in front of the pit, teaching him how to jump. Once the player jumps over, he triggers a collider to pause/stop the tutorial.

    Hope this answers your question.
     
    Schneider21 likes this.
  5. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    2,675
    Nice! I've been doing an awful lot of rolling my own solutions for things this time, which is great, but it also means I'm a good bit behind where I wanted to be. When I get to the tutorial-making stage, I'll be heavily considering picking this up to get back on schedule.

    Keep us updated on when it's available!
     
    elmar1028 likes this.
  6. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Sure! No problem :)
     
  7. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Made a new video on how easy it is to use your own Arrow UI or Tutorial Master. Enjoy! :D

     
  8. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    More Tutorial Master videos are on the way. Subscribe to the YouTube channel or receive new updates on Twitter :)

     
  9. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
  10. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    theANMATOR2b likes this.
  11. SweatyChair

    SweatyChair

    Joined:
    Feb 15, 2016
    Posts:
    80
    The videos and documents look great! Just a very important question: Is this support NGUI, or will it support in the future? Since we using NGUI in all our games and still may not to adapt to UGUI in soon future...
     
    Last edited: Aug 18, 2016
  12. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Hi,

    NGUI is in the to-do list and will be supported in the future :)

    Elmar
     
  13. SweatyChair

    SweatyChair

    Joined:
    Feb 15, 2016
    Posts:
    80
    Nice, we also developed our own simple tutorial system for NGUI in our games but it's sort of buggy and thats why looking for a complete solution, sure will wait for yours...
     
    elmar1028 likes this.
  14. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    I will let you know when the feature ships ;)
     
  15. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Tutorial Master Update v1.01 has been submitted to the Asset Store.

    Changelog:
    * Tons of bug fixes
    * Updated documentation
     
  16. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
  17. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Showing off a new feature in Tutorial Master v1.02:

    • Add frames faster! Simply drag your desired GameObject into Frames list to create a new Frame! You can even drag multiple GameObjects to create multiple Frames at once!

    • Also added smarter frame/tutorial deletion system

    A small update has been submitted to the Asset Store for a review. Will let you know when it goes live ;)
     
    Last edited: Aug 24, 2016
  18. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Last edited: Aug 26, 2016
  19. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Showing off an upcoming Tutorial Master v1.1 feature - Typing Text Effect!



    There are more coming up! Stay tuned!
     
  20. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    PlayMaker Support is coming to the next Tutorial Master Update!

    See how it works with Tutorial Master:
     
  21. amokk_gw

    amokk_gw

    Joined:
    Nov 21, 2015
    Posts:
    15
    A couple of questions:

    - Does it work with multiple Canvases? (Both Overlay and Screen Space)
    - When designing the frames is there a possibility to execute custom code?
    - Will the highlight UI function disable all other gameObjects for input?
     
    Last edited: Sep 14, 2016
  22. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Hi @amokk_gw To answer your questions...

    Tutorial Master works with both Overlay and Screen Space Canvases.

    Tutorial Master comes with a nice event system, which runs custom code when one of the following occurs:
    • Tutorial starts/ends
    • Frame starts
    You can watch the video to see it in action:



    If you want to run code on specific tutorial/frame, you can check the current frame/tutorial id before executing code, like so:
    Code (CSharp):
    1. if (tutorial.id == 5)
    2. {
    3.  
    4.     //do something
    5.    
    6. }
    If you have the Dark Background enabled (UI panel that covers everything except the UI target), it will cover the UI input, and therefore user won't be able to use it.
    Without Dark Background, you'll have to manually disable user input using the Event System (as mentioned before).


    If you have any questions, feel free to ask!

    Elmar
     
  23. amokk_gw

    amokk_gw

    Joined:
    Nov 21, 2015
    Posts:
    15
    The pointing arrow and the dark background are not working for me. The arrow is always miles away from the pointing object. The canvas is set to screen space camera.


    In this scenario it's even outside of the canvas. These are the settings:


    The dark background is always covering the whole screen. It doesn't exclude the assigned gameObject. It only works for me if the assigned gameObject is in the same canvas and in the top hierarchy as the dark background, which is an unrealistic scenario.

    I would greatly appreciate some help.
    Thanks!
     
    Last edited: Sep 16, 2016
  24. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
  25. amokk_gw

    amokk_gw

    Joined:
    Nov 21, 2015
    Posts:
    15
    Unfortunately I can't send you the real project. But the issues are easily reproduceable, so I've setup a showcase project. Sent it to you by mail. Thanks for having a look!

    I haven't analyzed the code too much, but from what I see the dark background has a couple of issue.

    The first is that objects in different canvases which have a higher order are always drawn on top. This isn't too bad since you can always set the Tutorial Canvas as the top canvas. But if you have objects (which needs to be highlighted in the tutorial) in different canvases they will always be behind the dark background.

    Also it seems that all it's doing is ordering the highlighted object above the dark background (which can cause problems). What I would expect though, is that the opacity on the pixels above the highlighted object would be decreased to 0.
     
  26. amokk_gw

    amokk_gw

    Joined:
    Nov 21, 2015
    Posts:
    15
    Sorry, the approach with the pixels won't work obviously, since it won't be raycastable. But I think it'll require 4 dark background planes, placed around the highlighted object.
     
  27. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Doing this method would mean recalculating position and scale for 4 dark background planes, which in turn would have pressure on game performance. On top of that, having 4 dark background planes means more draw calls.
     
  28. roberto_sc

    roberto_sc

    Joined:
    Dec 13, 2010
    Posts:
    74
    Hi elmar1028,

    Tutorial Master looks great!

    Question: I saw the tutorial videos using UI elements to trigger/control tutorial, but regarding 3D objects in the scene:

    1 - I guess I'd have to create a script, attach to my object and call tutorial.Start() for it, is there an easier way?
    2 - Does the dark background (that darkens everything except objects related to the frame) work for non UI elements too?
    3 - Does Tutorial Master help me disable input for game objects not-related to the frame? For example, imagine I have a RTS game like Warcraft, right now I can click every UI element and every 3D object in the scene. How would I implement a tutorial to teach the user to "click on this particular character to select him", disabling everything else in the scene?

    Thank you!
     
  29. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Hi @roberto_sc

    Tutorial Master has a Playmaker support with all pre-added functions including tutorial.Start()

    There is also a premade script that you can simply drag into any GameObject and call functions such as tutorial.Start() and tutorial.Stop()

    Dark Background UI works only with UI elements.

    Dark Background UI covers all elements of the screen, but gameplay elements must be disabled manually through code.

    Tutorial Master comes with an Events System (e.g OnTutorialStart) so you don't have to check which frame is running every frame.

    For example:

    Code (CSharp):
    1. if (frame.id == 3)
    2. {
    3.       DisableGamePlay();
    4. }
    5. else
    6. {
    7.       EnableGamePlay();
    8. }
    You can see the video of Events System in action:



    Hopefully, that answers all your questions.

    Kind Regards,

    Elmar
     
  30. roberto_sc

    roberto_sc

    Joined:
    Dec 13, 2010
    Posts:
    74
    Yes, I guess I learned all that the hard way :(

    It also seems to not work if you don't create your UI in a specific way...? Because the Dark Background uses the order in hierarchy to do its magic it doesn't seem to work if I have a more complex UI structure like panels inside the canvas with buttons inside and I want to highlight one of the buttons...

    Right now I'm trying to change Tutorial Master to be able to at least point the arrow to a non-UI element. That was a bit misleading, when I saw in the video that it accepted a game object I thought I could put anything there, while it needs to have a rect transform in order to work. If you could point me where I should make the changes to accept a world object for the arrow it would help a lot.

    Thanks!
     
  31. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
  32. roberto_sc

    roberto_sc

    Joined:
    Dec 13, 2010
    Posts:
    74
    Sent.
    Regards.
     
  33. roberto_sc

    roberto_sc

    Joined:
    Dec 13, 2010
    Posts:
    74
    One more question, do you use PlayerPrefs for storing Tutorial Master settings from the editor? It looks like every time I clean all Player Prefs I end up losing part of my work in the Tutorial Master game object. It's strange, it rolls back to a previous version of what I did.
     
  34. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    What do you mean by that? Do you lose settings of Tutorial Master or do you lose your own progress?
     
  35. roberto_sc

    roberto_sc

    Joined:
    Dec 13, 2010
    Posts:
    74
    I lose Tutorial Master settings.

    It's actually unrelated to cleaning PlayerPrefs. My Tutorial Master is a prefab, I found out that if you edit it straight in the Project window the changes are not persisted (even if I press Save Project), that is, I have to drag the prefab to the Hierarchy window, make the changes there, hit Apply and Save Project.
     
    Last edited: Sep 28, 2016
  36. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Thanks for letting me know about the problem. I will look into.

    In the meantime, just edit prefabs directly.
     
  37. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Inventory Demo WebGL Demo link has now been fixed!

    You can interact with the demo here: http://bit.ly/2f3Nob5
     
  38. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Hello Everyone,

    It has been a while since announcements have been made. Here’s what I’ve been up to.

    PlayMaker actions are now available for download! Simply import .unitypackage into your project and custom actions will be available automatically.

    Currently, Tutorial Master is undertaking large changes in its codebase: everything is being rewritten almost from scratch. This is a crucial step as it would allow developers to incorporate their own features and changes without causing a conflict with existing code.

    With codebase rewritten, Tutorial Master 1.5 will start getting some exciting features! Here’s the current roadmap:

    Planned Features:
    • Multi-Canvas support - you can have tutorials working across multiple UI Canvases

    • NGUI Support - support for a third-party UI framework solution

    • Debug Mode - enable visual debug mode, showing what tutorial and frame are being played

    • Multiple Arrow UI, Highlight Target, Text UI and Icon UI objects can now be created. Now you can have multiple arrows pointing at multiple highlight targets

    • Updated videos and API documentation - more detailed documentation that highlights all variables and functions to make it easier for developers to play around with scripts

    • Lots of bug fixing

    • Code is much more efficient, spending fewer resources
    In the future:
    • Change the way Dark Background UI works

    • Make Dark Background and Arrow work with 3D GameObjects

    • Allow Arrow UI to point at the edge of the screen if the highlighted target isn’t visible by the camera

    • More effects in the future
    I am also working on a website which is going to be the main place for all guides, API Documentation, latest news and announcements for the Tutorial Master as well as other future products. Facebook, Twitter, and YouTube are already active and all latest news will be shared there as well.

    There is no ETA on Tutorial Master 1.5 yet, but hopefully, it shouldn't take a long time.
     
  39. rganeyev

    rganeyev

    Joined:
    Dec 16, 2015
    Posts:
    6
    Hi Elmar,

    I am keeping an eye on your asset.
    I have a completed game and I want to integrate your tutorial. The problem is some of the tutorial things are instantiated on runtime and not available from the beginning.

    Can I change Tutorial Master on runtime, is there any API for it?
    Simple example: assume there is a button which instantiates a window in the game. There is a tutorial flow: frame 1 - tap a button, frame 2 - close window by tapping a button in the instantiated window.
    I want to prepare all frames and set the target of the second frame on runtime. Is this possible?
     
  40. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Hi rganeyev,

    Thanks for taking an interest,

    Yes, it is possible to modify all values of Tutorial Master at runtime! It will function properly as long as the tutorial is not being played (or it may cause some errors).

    Currently, I haven't written an API documentation on internal functions and variables but I'll gladly guide you through each of them :)

    Kind Regards,

    Elmar
     
  41. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    support@hardcodelab.com had problems receiving emails. The problem is now fixed. Users whose emails didn't go through, please resend them.
     
  42. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    HardCodeLab.com is live! All Tutorial Master updates, news, learning articles and upcoming features are going to be posted there. More importantly, it's going to host a more detailed documentation (powered by Doxygen), which would make it a lot easier to learn how to use Tutorial Master API as well as tinker its source code. The website still lacks few pages, but they'll be added soon.

    Tutorial Master Update 1.5 is in active development. Refactoring code takes most of the time, but it is essential for making rapid implementations of upcoming features in the future.

    Stay tuned for more updates, and if you're not the forums person then you can follow HardCodeLab on Twitter or Facebook or be sure to check back on hardcodelab.com once in a while!

    Cheers! :)
     
  43. rganeyev

    rganeyev

    Joined:
    Dec 16, 2015
    Posts:
    6
    Hi Elmar,

    Do you plan huge refactoring of the your asset? I bought it and I am fully disappointed.
    Starting from the mixing of completely different code-styles ending by performance leaks - it's simply bad.
     
    BizzApps likes this.
  44. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Hi,

    I am very surprised to hear about the problems you've encountered as you're the first person, out of more than 60 satisfied customers of the Tutorial Master, to be disappointed in it.

    If you personally don't like the product, I will gladly provide you a refund.

    Best Regards,

    Elmar
     
    Last edited: Dec 22, 2016
  45. cielosoft

    cielosoft

    Joined:
    Dec 9, 2016
    Posts:
    1
    Hi,
    I'm very glad to see this solultion for tutorial.

    I know that NGUI support is on its way. But I need to know when it's coming to decide to get this.
    Could you tell me the target date when it's coming? (Like Mid Jan is okay for me, and I understand that schedule can be changed)
     
  46. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Hi,

    I am glad you're interested in Tutorial Master!

    The upcoming update is significant as there are a lot of things that are needed to be done apart from adding NGUI support. I will let you know after it's been thoroughly tested in a closed BETA.

    Kind Regards,

    Elmar
     
  47. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
  48. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
  49. Yannage

    Yannage

    Joined:
    Jan 18, 2016
    Posts:
    1
    I just purchased this and was using it for a html5/webGL project. When playing on the iPhone it stops working. I tested my game and also the demo you provide. It seems the preloader works but then I get the below issue.
     

    Attached Files:

  50. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,009
    Hi,

    Thank you for purchasing Tutorial Master!

    Keep in mind that not all mobile devices fully support WebGL yet (a warning is displayed in advance). I have just tested the demo on my Android phone and it worked perfectly, whereas, an iOS device failed to load it. Both were tested using Google Chrome.

    Tutorial Master itself is fully written in C# and does not rely on third-party plugins or DLL so it cannot cause problems for WebGL.

    Regards,

    Elmar