Unity 5 is a nice package, but the packaging is lacking
Unity 5 has been out for a while now and I've had some time to play with it. It's a really solid release, but while the editor is great, Unity is still fairly rough around the edges.
Currently my three biggest gripes with Unity lie outside the editor. They are the documentation, the asset store and the project wizard. These areas have remained unchanged for a long time and they're starting to show their age.
The documentation
The documentation is lacking a lot of things. There are no changelogs, no information about when methods were added, no versioning, but most importantly no user comments.
Allowing users to comment on the documentation pages would be the best, quickest and most useful change Unity could do to improve the quality and usefulness of both the API and the manual. Let's look at the infamous lerp example:
https://docs.unity3d.com/ScriptReference/Mathf.Lerp.html
1 2 3 4 5 6 7 8 9 10 using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public float minimum = 10.0F; public float maximum = 20.0F; void Update() { transform.position = new Vector3(Mathf.Lerp(minimum, maximum, Time.time), 0, 0); } }
If you google for Unity and lerp you'll find the documentation page and accompanying example above, but you will surely also find a plethora of posts telling you just how awful that example actually is. The problem with this example is that it won't work in any real world scenario and it's potentially not clear to anyone unfamiliar with Lerp why. Using Time.time in the Lerp like that means it will only work once in the very first second of your game. This is because the t parameter is based on a range between 0 and 1, and Time.time is the amount of seconds since the start of your game.
With user comments the users temselves could post proper examples, ask and answer questions, post real world use cases etc. All the things you can in other documentations, at least the ones I use on a daily basis.
As for changelogs/versioning I encountered this problem myself very recently. A method can potentially be very different in Unity 4.x and Unity 5.x or it may not exist entirely, but you'll have no way of knowing by looking at the API. I struggled when I upgraded the official Stealth tutorial from Unity 4 to Unity 5. In Unity 4 you apparently do not have to call NavMeshAgent.Resume() after calling NavMeshAgent.Stop(), it resumes automatically if you give the agent a new destination. This isn't the case in Unity 5 and the only place this is currently written is in the Unity 5 release notes where it states:
Setting destination on a NavMeshAgent doesn't resume the agent after calling Stop; call Resume explicitly to resume the agent.
Upgrading between major versions is of course an extreme example, but methods change between minor versions as well. If we just had a changelog in the documentation we could see these changes instantly without having to google for them.
The asset store
The asset store hasn't really had a facelift since it's launch and it's starting to show. It may have been competitive with similar products back then and it may have worked perfectly fine with the number of assets available at that time. But now that there's tens of thousands of assets on there we need better tools to be able to find the assets we're looking for.
In the asset store if you do a keyword search you have no options for filtering your search using categories. You can't even sort it. I find the keyword search to be practically useless because of this. This means your only option for finding a specific asset is tediously browsing through every single page of each category it could be in. There's also no typeahead or autocomplete feature on the keyword search.
Selecting a category in the right sidebar refreshes the entire category menu, there's no need for this - the category menu doesn't change. The effect is also jarring in my opinion. There's also no way for you to search within a category, the only way for you to find what you're after is to browse the pages or click the button labeled "Show all" which allows you to bypass the paging by showing every asset in that category at once. This button is even available when selecting "3d models" which has nearly ten thousand assets. I love the optimism here. This button crashes Unity 100% of the time if you click it in one of the larger categories.
Here are some of my suggested improvements:
- If I do a keyword search let me sort the search the same way I would be able to if I selected a category. In addition to the normal sort options "relevance" should be the default so I can switch back to that if none of the other sort options helped me find what I was after.
- With the same keyword search I should also be able to filter my search based on the normal categories. Look up "faceted search" or "filtered search" on Google, it has been the norm for e-commerce websites for years now. Everyone uses it. The asset store is so big now it needs to use it as well.
- Implement typeahead or autocomplete in the keyword search. Example: https://twitter.github.io/typeahead.js
- This is more of a cosmetic change, but when selecting a category only refresh what actually changes and leave the category menu alone. Example: http://codyhouse.co/demo/content-filter
- And because this button is almost laughable in its current implementation - only show the "Show all" button when there is a sane amount of assets available in the current category.
There are also some persistent bugs in the asset store, but compared to the issues above they aren't as important. Fairly often the asset store will just render a blank/white screen. I have no idea what causes this or how to fix it. There doesn't seem to be any way of fixing it that works all the time. Not even rebooting is a sure fix. It just fixes itself after a few hours. This has to be a caching issue, but seeing as we have no control over the in-editor asset store browser we don't have any way of fixing this ourselves either. Sometimes it will also render without loading the css styles. Probably also a caching issue?
I'm also not sure what the previous/next arrows in the upper left corner do. They are almost never clickable and when they are they certainly don't move you back or forward one page, they just move you about the store seemingly at random.
This isn't critical, but it shouldn't be that time consuming either - the asset store sorely needs a redesign. For example on any given asset page you'll have 3 separate scrollbars. Information is generally presented poorly, thumbnails are too small. I feel there are numerous issues with the current design.
The project wizard
At the moment the Unity project wizard is about as bare bones as it could be. The project list can become very big and we have no control over it. The only way we have to "archive" old projects as far as I know, is to move the actual project folders on your disk so the wizard can't find them anymore. After Ludum Dare I have dozens upon dozens of projects in my project list that aren't mine. I just opened them once to look at them and they are there forever unless I either delete or move the actual project folder. A project is also only identified by a title, disk location and version number. There's no screenshots, descriptions, tags etc.
"Getting started" is equally tragic. It's one video and nothing more. No search, help, tutorials, documentation, manual, nothing. With the 5.1 release the few actually useful links that were on the bottom are no longer anywhere to be found.
By comparison the Unreal Engine Epic Games launcher is infinitely better and handles a lot of these things. And even though they're not the same type of software the launcher for Battle.net, League of Legends or similar online games could also serve as a source of inspiration.
Here are some of my suggested improvements for the project wizard:
- Allow us to add images and descriptions to our projects which show up in the project list in the wizard. This could either be done through the wizard or the wizard could discover this metadata automatically in the project folder if we name an image-file and a text-file in a certain way, for example.
- Allow us to organize the project list in some ways. Folders, tags, favorites etc.
- Give us a keyword search for quickly finding a specific project.
- Add a news section which either is unique to the wizard or aggregates a lot of the things written elsewhere - blog, twitter, announcements etc. Here you can tell us about releases, show us release notes, notify us of upcoming Unite events etc.
- The asset store needs to get in here just like the marketplace is a part of Unreal's Engine's Launcher.
- Links to forums, API, manual etc. needs to be in the wizard as well. The entire "Getting started" section should get an overhaul similar to the "Learn" section of the Unity website.
Conclusion
Improve the documentation, the asset store and the project wizard and I'll be a happy camper. At least bring them up to the level of similar products. I don't feel like any of my ideas should be that costly or time consuming to implement, but they would be of tremendous help for newcomers and experienced Unity users alike.
UPDATE September 24, 2015: There's been a pretty substantial update to the Unity Asset Store recently. Now the keyword search works together with the category browser letting you search freely within categories and filter your search results dynamically. You can also filter items by price, release date, file size and much more. It's a massive usability improvement over what we used to have.
adam
im making a asset for the asset store. you should check it out.
Øyvind Strømsvik
@adam: That's great to hear, but I'm afraid you haven't posted any links or ways for me to check out your asset. :)