A Quick High-level Comparison of Unity and Storyline
As a learning technology consultant, I’m often asked to compare the features of various authoring tools to help an organization standardize what it uses. Most often, these requests are for tools such as Storyline, Rise, Captivate, and iSpring. Although capabilities vary quite a bit, Storyline and Unity differ from each other far more than any of the tools in the set above.
When I compare authoring tools, I always think about the tradeoffs between capability and complexity. Unity is much more complex than Storyline, but it offers much more interactivity. You’ll see this reflected in many places in the table below.
Storyline vs. Unity
Feature | Storyline | Unity |
Most Common Usage | E-learning | Games |
Scripting | Storyline can be extended through JavaScript, but its interactivity can generally be accomplished with built-in Actions and Triggers without scripting. | Although it’s possible to use Unity with Scripts developed by others, usage will be very limited without a basic knowledge of how to program in C#. |
Content Display Areas | Slides and Layers with Timelines | Scenes with an event loop and Animation Controller and Animations |
Variable Scope and Types | Global with a few simple types | Public, Private, and Protected scopes with C# types and ability to develop own classes |
Ability to Modify Properties | Some element properties can be modified at runtime, but the majority can only be modified during editing. | Nearly every property of every component can be modified through Scripts at runtime. |
Graphics | 2D with support for 360 images | 2D and 3D with support for 360 images Support for rendering 3D models |
Physics Modeling | No | Yes |
Audio Playback | Yes | Yes, with support to modify sound volume and position relative to the player. |
LMS Support | Built-in support for AICC, SCORM 1.2, SCORM 2004, xAPI, and CMI5 | Not built in |
Support for AR and VR | No | Yes, through XR Interaction Toolkit (as well as other device specific approaches) |
Object/Functionality Nesting | Storyline can store elements in Groups, States, or Layers. The built-in functionality for these elements is robust, but there is very limited capability to share new custom functionality across instances of elements (because each copy is independent). The closest equivalent is slide masters with code in them. | Unity has a Hierarchy, which allows nesting one GameObject inside another. Each GameObject can have attached Components that can be controlled and modified through Scripts. Groups of GameObjects can be saved as Prefab, which serves as an easily modifiable template and can be instantiated at runtime. Updates to an instance of the Prefab can easily be applied to all other instances or if you choose, you can have a Prefab override the common settings while leaving them the same for other instances. |
Target Platforms | Browsers for laptops, tablets, and phones | Windows, Mac, Linux, iOS, Android (including Meta Quest), Browsers via WebGL, PlayStation, Xbox, SteamVR (via plugin) |
Ability to Export Videos | Yes | Yes |
What Does it all Mean?
- If you’re thinking of developing standard e-learning, choose Storyline.
- If you’re thinking of developing a fairly simple e-learning game, choose Storyline (perhaps with addition of some JavaScript).
- If you’re thinking of developing a powerful custom learning game, augmented reality, or virtual reality, consider Unity (or Unreal, which is another similar tool).
If you’ve used both Unity and Storyline or if you have questions about either of the tools, I’d love to hear from you.
Thanks for the comparison article Matt!
Do you know if it is possible for Unity to export TinCan to an LMS even though it isn’t natively supported?
I found an article here:
https://unity3d.stals.com.au/
but not much information on how it actually works…
I’m trying to take my eLearning Designs to the next level and considering moving to Unity (because it seems that the most interactive feature that authoring tools like Articulate and Captivate offer is a simple drag and drop :/
If you have any insight on this subject I really appreciate it!
Thank You,
-Chris
Here are a couple of resources for using xAPI in Unity:
https://github.com/gblxapi/UnityGBLxAPI/wiki/#using-context-to-track-learning-standards
https://learningsolutionsmag.com/articles/use-the-gblxapi-library-to-send-xapi-statements-from-unity
Articulate Storyline is much more efficient than Unity for typical e-learning courses. Unity provides tremendously more capability for custom interactions. It wouldn’t make sense to use either for the opposite purpose.
Thanks for your insight Matt.
I appreciate it.