Proposal: Show tips in the splash screen
Open, NormalPublic

Tokens
"Love" token, awarded by maxon."Love" token, awarded by plyczkowski."Love" token, awarded by Severin."Love" token, awarded by campbellbarton.
Assigned To
None
Authored By

Description

The idea is to show some useful one-liner tips about non-obvious features on the splash screen. This way users might learn things like alt-wheel on enums, ctrl-c for RGB curves and so on. It is pretty simple to fit into the splash screen, just would probably need some more attention to font style:

(please excuse the crudity of the model -- didn't have time to build it to scale or paint it)

It could be done as a simple text file from which random line is read on startup and displayed on the splash.

Details

Type
Design

A big +1 from here. @Paweł Łyczkowski (plyczkowski) has this in his UI proposal doc including quite a few example sentences :)
@Paweł Łyczkowski (plyczkowski)/@Pablo Vazquez (venomgfx) now a nice and shiny design/mockup is needed! Maybe a big info-icon on the left and the text on the right?

I'm available for the coding side of things.

Julian Eisel (Severin) triaged this task as "Normal" priority.

Here are my takes:

shiny big info-icon

I'd go with simplicity on this one : )

Textfield hover copy and Paste is one of those things that's super useful but not so easy to stumble upon.

Why not put the quick tip in the 3D view ?

Maybe we can make it context sensitive, for exemple, in edit mod, tips for modeling, in the texture editor, tips for painting, in the node editor, tips for nodes.

With the option to hide the tips of course.

@cédric lepiller (pitiwazou), not a big fan of that. 1. cause it can be annoying to steadily have popups over the viewport, 2. cause this is a global info, so it should also give tips for things like all the fancy editing options of our number buttons, other areas such as compositor image editor, etc. Having this in the 3D viewport would mean it's rather local/viewport only

Or maybe in the top bar, the problem with the splash screen is that lot of people deactivate it.

@cédric lepiller (pitiwazou) -1 to that.

For tools I would potentially go for the "extended tooltip ala pixologic", but it's low priority. Also, @Jonathan Williamson (carter2422) is currently adding help popups to his Retopoflow, let's see how that goes.

Main requirement for this should be: it never ever shall distract artist. For those who're using blender every day information which randomly appears on the screen might be rather distraction. It's also adds whole bunch of complexity trying to guess what information is most relevant for artist at this exact moment.

I wouldn't consider users disabling splashscreen being a stopper. Main audience of this feature is new artists who are only getting into blender. Don't think their first step is to go into user preferences and disable the splash.

Why not just make them disableable in user preferences? and not the splash screen in total.

Like you said, it's low priority and I think you want something really easy and fast to make, so if you think, the splash screen is the best for tips, i'm ok.

Or if this is made as an addon

My preference of the currently shown designs favors @plyzowski's 2nd mockup.

On functionality, it would be nice to have a button or small arrows on either side of the tip to go to the next/previous tips. For those of us that like information overload!

<-- Quick Tip: You can press the arrows on either side of this tip to cycle through tips! -->

+1 @Sean Olson (liquidape)!
I'd prefer to not add a new UserPref option to this as the UserPrefs are already much to messy. Every new option for them should be rethought twice to make sure it's really worth adding. We could make this an Add-on but I don't see a real problem with having it being not deactivatable - it is just there without being in the way and can be easily closed together with the splash.

I don't see a real problem with having it being not deactivatable

Yup. If it were a part of the 3d View HUD that would be another story. But splash is closed when working, so it's not impacting GUI overload then.

Maybe people can offer suggestions on the actual tips, that would be very useful to others and saves the devs a whole lot of time trying to guess what is common knowledge or not.

1: 'Toggle multiple visibility icons in the Outliner/Modifiers by swiping mouse over them'

2: "Copy and Paste can be used to move assets from one running instance of Blender to replace 'Append'"

3: "Having trouble selecting objects in a dense scene? Use Shift+b box select to zoom in on the area of interest"

other suggestions :)

  • Use Spacebar opens the tool search popup
  • Ctrl-C over tools & menu-items to copy the Python command.
  • Backspace over buttons to clear their values.
  • Shift-Click the manipulator axis to transform on that plane
  • Trouble navigating your Scene? Try walk around ...
  • Need to cut a hole in a mesh?, try the knife tool ...

Something else to consider... tips could optionally have a Find out more button, which links to documentation.

For example, reference to Walk mode could link to the reference manual on walk mode.

I don';t like idea of next/prev button suggested earlier here. If you want to read all the tips, you've got file locally anyway. It could also be exposed to Help -> All The Tips operator which could show that file.

But all the tips should be documented in the manual anyway, in a single page so anyone can grasp though them and see if there's something new. So to see all the tips you just click on the link button on splash or help menu.

And in fact, it should be started from making that page first i think. Then we''ll see if there's enough information in there to bother with the splash screen changes.

As for the code-side it's a bit more tricky than it sounds on the first glance, because of the following things:

  • Tips must be covered with the translations (not difficult, but implies next things)
  • Tip could be long enough and needs line breaks
  • Lines break should be friendly to translated strings

Some implementation issues:

  • expect tips will be stored in a single .txt file, no bold characters (as used in some mockups) and each line is a separate tip.
  • displaying a tip can be as simple as to select a random line.
  • should tips be context sensitive in any way? - for example not display BGE tips if Cycles engine is selected.

... suggest we just keep tips about real basics only - not rendering/cycles specific (to begin with) at least.

  • should we avoid to read the entire file on every load? - perhaps cache line count and offsets... it could become large at some point.

Also interested in feedback on possibility to link a tip to the user manual (can be postponed for initial patch too. just suggestion)

@Campbell Barton (campbellbarton), it could be done similarly to translations -- text file could only be in the sources, which gets compressed on compilation and have a header with offsets/lengths. Could also be datatoc-ed which is probably better in that case.

Would make it impossible to browse the file manually, but for that we really need to have manual page.

@Sergey Sharybin (sergey), would keep a bit more simple than datatoc

  • tips.txt, one tip per line.
  • tips.txt.data is a binary file, containing line offsets, (filesize defines line-count).
  • when displaying the splash check for tips.txt.data, if it doesn't exist or is older then tips.txt, regenerate it.

This way loading is reading a random ushort in one small file, then a direct lookup to a second file (minimal disk activity).
Anyone can update the text file without some manual rebuilding steps. (maybe branch users like to include their own)

Where you're proposing to store this tips.txt.data?

dont have strong opinion, user home dir I suppose (where bookmarks.txt is).
Note, we could start make use of ~/.cache/blender on *nix systems, see XDG_CACHE_HOME.

@marc dion (marcclintdion) A list of proposed tips is being developed in the UI doc (Though I think it's going to need it's own doc before long as it's growing fast) : https://docs.google.com/document/d/1ScPMbHv8WRCU2znB7IU2l-W9hH-NLs5weQKLkjqmgpA/edit#

@Sergey Sharybin (sergey) On next/previous button - maybe just a key to go to next tip? Like "space"? The point of the tips is to show random info at a glance - maybe I don't want to go dig for it, but just wast a few minutes looking at little tips. These Tips should be for all users, beginner and pro - remember that a beginner is not going to have any idea how to go to a text file and find it - how operators work - that the space bar opens a search field... I am strongly against forcing somebody to jump through hoops to see simple little tips that are supposed to make the software easier and more enjoyable to learn.

@Campbell Barton (campbellbarton) - On links - I do think it's a good idea for on Tooltip click to open manual entry on that tip for more detailed info - as you said. Maybe underline or format so it looks like a link?

On Context sensitivity - My preference would to stay away from this - My thought is that the tips should be random knowledge about all areas of Blender. If you don't care about BGE, you just won't internalize that tip. This is a learning tool, and if users "turn off" chunks of the learning, they might miss things that might help them or that they don't know that they needed.

A list of proposed tips is being developed in the UI doc (Though I think it's going to need it's own doc before long as it's growing fast) : https://docs.google.com/document/d/1ScPMbHv8WRCU2znB7IU2l-W9hH-NLs5weQKLkjqmgpA/edit#

Thanks @Sean Olson (liquidape), I was about to write on that. @Campbell Barton (campbellbarton) I already added yours (I didn't know about Backspace clearing, that's handy : )

@Campbell Barton (campbellbarton), i don't like that approach, it's messy. it would only be legit if the tips file if officially runtime editable. For that i don't see actual need and for that you would also need to keep file with tips in the user folder since program data is not always editable by users.

IMO, it should be just as simple as:

  • Text file in the sources
  • This text file gets parsed compile time
  • Parsed version of the file is put to the <blender_version>/datafiles/tips.dat (which is kinda to make you happy, read later)

Format of the file is also really trivial:

  • Single integer: number of entries N
  • N integers: offset of corresponding message in the file
  • N message entries, each entry consists of single int (length of the message M) and then M bytes is the message itself.

Also to be stressed, you don't access anything if splash is not displaying. Which means background mode stays totally unchanged (so renderfarm takes same amount of time to render, unit tests takes the same time to run etc).

Comparing to your approach this would save map geenration on first run and then would save two stat() calls to check timestamps.

Now, all the tips should be short, would say 120 symbols max (or 140 to match twitter ;) This means 1K messages would be around 100K in the memory, uncompressed. That is really nothing, blender grows much faster with all that llvm updates. So where to draw the line? Why matcaps are datatoc-ed and for the tips you want to go over all that filesystem hell?

Woops, sent reply to quick.

@Sean Olson (liquidape), it could be a clickable tip which would open all of them in the browser, with nice cross-linking to related chapters and so.

@Campbell Barton (campbellbarton), just throwing another idea.

Why do we worry about this C anyway, can't it be an addon? Quick thoughts:

  • That would solve issues with those users who wouldn't like tips (they can just disable an addon)
  • We'll be able to tweak particular behavior easily (well, we all know C, but someone from UI team might want to be able to do tweaks or so)
  • Addon is loaded on demand, so no splash -- no data loaded. At all.
  • Python does caching (not sure it does string compression, but still don't really think loading full file is slow. Even if so, you can pre-process file in the way you proposed earlier).
  • Others would be able to write scripts to customize tips further or add own stuff onto splash (could be handy for schools?)

Just an idea, RFC :)

@Campbell Barton (campbellbarton) one idea i had for a caching system, is to have the same tip from the last time the user opened blender, is cached and when blender is opened again it displays that tip until blender has finished its start up routine then after blender calms down so to speak and then request for getting a new tip. this will save start up time.

Also on being context specific i say no because many users open blender then switch to there context allowing users to never see the tips that are most helpful

Also this program has startup tips simple download (good example)

Link

http://www.open3mod.com/

@Sergey Sharybin (sergey).

  • Agree, skipping reading the file if the splash isn't shown is important (own suggestion accounted for this, but not explicitly).
  • Weather its 1-4 stats's... I dont think matters too much, just avoid reading the entire file to pick one line is main goal. (check how much Python stats the fs on load... and weep :) )
  • You misunderstand my point about some tips.txt.data - (re: paths users can't always write to). as stated already, this would be in a user writable location same as bookmarks.txt

Regarding the addon suggestion, I like it!

details...

  • The addon its self doesn't have to include all text in memory (it can load from a text file too).
  • We will have to do some minor tweaks to the splash so Python can extend it. (no big deal).
  • Its nice all this can stay in addons repo, Since we're more relaxed about dev access here.
  • Agree ability to swap out different tips addon is nice. (schools etc)

@Campbell Barton (campbellbarton), well some misunderstanding in there. What i mean is: why can't we distribute the mapping file as a part of blender installation? So we don't worry about re-generation at all. But if we go with addon (which sounds promising?) guess we don't have other way than worry about cache generation.

On the other hand, it's probably better to go with XDG's ~/.cache approach. That way we'll land the utility functions to access that directory and Cycles's kernel can be moved there as well :) That's another story tho.

And i think it's rather nice if python can extend the splash. Maybe even move the recent files, links etc to py.

Anyway, guess we first need some manual page to gather ll the tips. Do we have one already or maybe it's easy to add one?

Committed addon: rBAC4b8c1acd6ed54917283a10a350c1f0f280b811f9
Committed Blender Menu: rB26f9a9245387ced59214840f99ccf4aabc0c39f4

Enable 'Testing' addons to use (UI -> Splash Tips)

It can show tips and optionally a URL link to the manual.
Uses random textfile seek to get the line (has the downside that longer lines increase the chance of showing up).

Some limits:


Example line:

This is a tip \n This is a newline ~/getting_started/basics/interface/buttons_and_controls.html

... Which should display

This is a tip         (i)
This is a newline

...where (i) is an icon button linking to https://www.blender.org/manual/getting_started/basics/interface/buttons_and_controls.html


If this is a reasonable start it could be enabled by default.

This comes with blender, just enable the addon.

I don't build blender yet. Nvm then, I'll wait for the buildbot.

@Campbell Barton (campbellbarton), it's not totally great idea to do manual breaks in the original string. You would never be able to solve translated tips wrapping that way i'm afraid.

@Sergey Sharybin (sergey) yes, its weak, we really need a line wrapping UI label.

@Campbell Barton (campbellbarton), there another thing which i'm not currently sure what's the best way to approach to it.

Basically, translation team should be aware of all the tips so they can translate them. Ideally it should somehow appear in .pot file. But how to get the messages from the addon..

@Sergey Sharybin (sergey) - we have scripts to extract strings for translations, so they can just get this text too, its not so complicated.

Addons do have a way to provide their own translations too, but not sure if we would make use of that,

@Campbell Barton (campbellbarton), as wasn't aware addons have a way to provide translations. It's good then.

So how to move forward with this task?

  • Get approval from UI team
  • Agree on tip format (we can change easily, just noting we may want to change it)
  • Add support for translations?
  • Should this addon be enabled by default?

Did anyone test it? :)

@Campbell Barton (campbellbarton), I can test further this week (on a train at the moment). My first test a few days ago seemed good.

Did anyone test it? :)

Yup.

A couple of issues from me. Screenshot for reference:

  • Lack of margin from the bottom makes it look ugly.
  • No indication that it's a tip. Makes it look like it's a message that the user is supposed to react in some way. Prepending "Tip:", "Quick Tip:", or the i icon to every message would solve that.
  • Are there any justification options? Tips would look best justified to center. An example of a tip looking bad, because it's justified to left, with too little margin, and the break point placed too early:

The i icon for more info on a tip is a nice touch. I would change it to the website icon though - it would also warn that it's a link to online documentation, and so it will open the browser for instance.

I agree with all of @Paweł Łyczkowski (plyczkowski)'s comments.

Beyond that, though, it's working really nice! The website option is a good one, which will really help make tips more useful.

re: Agree on tip format (we can change easily, just noting we may want to change it)
I'm not to sure what you mean by this?

re: Add support for translations?
I think we should do this.

re: Should this addon be enabled by default?
Yes! Tips are most valuable to new users, who likely have not modified their settings yet. If the add-on is not enabled by default then the users that most need it will miss out on the benefit.

Agree with @Paweł Łyczkowski (plyczkowski) too :)

rBAC60bf224aea6759cf2659bfd03cd1741b035c0eef

  • Use URL icon, add Tip: prefix, increase lower margin

@Jonathan Williamson (carter2422), re: tip format,

See:
https://developer.blender.org/diffusion/BAC/browse/master/ui_splash_tips/tips.txt

The lines at the bottom include URL's to https://www.blender.org/manual/, newlines are inserted explicitly. Otherwise its plaintext.

Here is an other problem I believe it because my DPI is 110 so some missing part doesn't appear

When reset 72 tips work good.

@Erick Tukuniata (erickblender), this is a problem.
DPI scales the text but not the splash width.

We would need a line wrapping label to solve this properly.

  • I do not agree on a tip in the splash (the thing gets too much info). Make a tip popup up, like a system requester (windows) or a Mac notification maybe.
  • I do not agree with the idea that "new users" will find it useful (it is annoying as many people too). Make it an optional, separated from the splash, and always add the option to immediately disable it.

In general this discussion is so disappointing... I thought we were going to try to stop doing things like this, but instead try to make things work more targeted at audiences. For people who want to learn Blender, we have to help them with that in smart ways. For power users, we have to help them too. And we certainly should stop trying to be lazy and easy. Code a training mode in blender. Think about how to configure Blender for them. Etc.

@Ton Roosendaal (ton) -
A) the idea is to show snippets of info that can be easily be seen/absorbed, not a full tutorial mode.

B) full tutorial mode is a good idea that I would like to see too - but that is a much more in depth project aimed at intensive learning. Blender & any program with substantial depth requires constant learning - you never will "Know it all". I strongly think that people learning the basics will go into a "tutorial" mode, but once those are learned you would rarely see people going into that mode. The tips allow constant learning with little overhead.

C) From personal experience in gaming - I've learned TONS of things from little tips about little interesting things you can do in a game. Like Blender, World of Warcraft is an incredibly complex program with an insane amount of options - many of these would have gone unnoticed by me without the tips section: http://goo.gl/fuzXxa

D) It sounds like the tips are going addon route - if they annoy you that much, turn em' off! I agree that perhaps we could have an opt-out near the tip so they could be turned off super easily without need to jump into prefs to turn them off.

E) Comments like "In general this discussion is so disappointing... I thought we were going to try to stop doing things like this, but instead try to make things work more targeted at audiences." can really take the wind out of peoples sails and I don't think are conducive to the conversation at hand - you are devaluing every bodies opinion that has been posted above. I'm glad for input, even input that brings up opposing opinions, but comments like this bring the dev process more into forum land - and your comments hold much more weight than others due to your position. Don't underestimate your words and how they can play with the emotions of people that are volunteering their time to make the best program they/we can!

I like the idea of showing quick tips on the splash screen. These can be good for both beginners and power users (eg. useful less used shorcuts, general info about certain 'hidden-gem' addons, general quick tips about improving usability, rendering, UI, etc etc). I'm sure you'll find an abundance of tips to keep things interesting and fresh for both beginner and advanced users.

@Ton Roosendaal (ton) I'm not a fan of the 1998 style popup window to be honest....never found it pleasing to navigate nor read. I agree with much of what @Sean Olson (liquidape) said...the idea is to show something that would make the user say "Oh I didn't know that existed in Blender", not a full blown training mode which you won't find a lack of online.

The discussion here is about making it subtle and optional which is healthy IMO. Clutter can be reduced a bit through other means, like displaying the Links section in a dropdown list perhaps?

The UI team is new still, it has to be empowered, but also still has prove itself. We should definitely treat UI design as something requiring expertise and years of experience just like any other contribution we want in Blender. We want high quality, simplicity, the best design possible. And we should acknowledge that merely using software doesn't make anyone such an expert - which makes the topic so difficult to communicate about.

To enable the new UI team to get involved and help them to grow and become expert, we agreed on them to help out on approved development tasks, to help active developers with UI design jobs. That can be for Lukas (doing new Cache Library ui), or for Viewport team (how should workflow-oriented draw modes look like), or for Custom Manipulators (including invisible ones), or for rigging debugging tools and despgraph, or a better workflow for adding Drivers, or for Joshua with Action Fake users, .. and so on.

For the UI team it's also a sensible requirement to first understand how things work and were meant to work. Design-compatble solutions are much more future proof and pleasant to use than solutions that fight with it.

We also agreed on not attempting to make everyone happy with a single configure or "default" presentation. Newbies and kids or occasional users have just different requirements than the expert users. Even the experts mind to differ. That's the 'workflow' project.

Just as design exercise example: what we could do on startup of newly installed Blender, is:

  • Show splash, in bottom it has text "New installation, what do you want?" with options:
    • Copy previous configuration (splash updates with file names etc)
    • Learning mode
    • Expert mode

In Learning mode the splash then switches to a new picture, which can be a slideshow even of tips or config choices for noobs (do you have a laptop, or mouse or trackpad or tablet, etc). Learning mode also should have the most minimal keymap possible, which we then promote as default for training and tutorials as well. If needed, customized learning modes can be configured by CGcookie or Guru for their needs.

Expert mode gives a splash with options to choose from preconfigured workflows (old fart mode, motion tracker workflow, sculpt/modeler, etc) - or Maya/Max maps , and the own saved configs.

We can also check on having splash (on mousemove or keypress) change into a tip-splash - with images even! - and with option in that tip splash to disable it (and save config). Heck we could play animation tutorials in the splash. Or turn the whole UI in a tutorial for people.

This is just an example of work I'd encourage to see more here. Many ways are possible. Let's not be lazy. Don't choose the obvious (we don't need help for that anyway). Impress me I'd say. :)

And this I mean too. It's just my humble attempt to push people a bit. Dare to be excellent :)

@Ton Roosendaal (ton), its understandable we don't want to have to have long debates each time someone suggests minor UI tweaks (its been an issue in the past),

But don't think its quite fair to define a small change you disagree with as lazy, We make small changes/improvements to Blender all the time, (resolving paper-cuts, odd/behavior).
With the UI topics we need to take extra care of course. we don't want random stuff being added haphazardly (thats why this is a design tasks being discussed)

This kind of stuff is always subjective, I understand there are legitimate arguments against:

  • Its a stop-gap (weak) solution for features being generally un-discoverable.
  • Overloading the splash screen with extra (noisy) text.
  • New users vs experienced users topic.

On the other hand I've seen experienced artists on some of the open-projects be completely unaware of really useful features (local mode, view dolly... manipulator tricks) - these are documented in the manual too.
Even experienced users miss some corners of Blender, or forget about features if they don't use Blender regularly.


I'm surprised you suggest to have this a pop-up, to me this is always the most annoying thing - every time you have to click them away, Isn't not making it a pop up means its at least not annoying more experienced users? Anyone who wants can disable the addon or disable the splash screen.

We can define it as a mis-use of the splash-screen, or too much effort put into a weak panacea that avoids solving real problems of discoverability... or postpone it until we have Blender 101 getting worked on.

Am not pushing to have this in Blender, but think these suggestions should be discussed on their own merits, or postponed if we prefer to tackle issues like this as part of a larger project.

@Campbell Barton (campbellbarton)

I'm surprised you suggest to have this a pop-up, to me this is always the most annoying thing - every time you have to click them away, Isn't not making it a pop up means its at least not annoying more experienced users? Anyone who wants can disable the addon or disable the splash screen.

A compromise would be to keep it in the splash as currently, but add a "Don't show tips" checkbox there as well. Hiding the way to disable tips in the Add-ons tab in the Preferences is the kind of thing that created so much hidden functionality in the first place.

@Ton Roosendaal (ton), it's a design task to discuss some idea, and this one was supposed to be least controversial, not lazy. All the rest @Campbell Barton (campbellbarton) did already cover.

Tip to add: "You can Extend Vert Slide by holding Alt while sliding a vertex."

@Edson Jr dos Santos (RedDragon), please only comment relating to the design task. (general suggestions are off topioc)