
("Tip of the Day" mockup)
Several great tools out there have a "Tip of the Day" or similar popup appearing upon their launch. I was thinking about implementing the same for Godot.
So a "Tip of the Day" is a popup that shows the user various tips and tricks, where they get to react with "Hey I didn't know you can do this!" Majority of users love these, as they can improve their workflow in various ways. It can include those common problems beginners encounter when starting with the engine, as well as some more advanced things for professionals.
There are several types of content that I think can be present in the popup:
general tips & tricks -- ranges from shortcuts ("When in 3D editor you can press NUM1, NUM3, and NUM7 keys to view the scene from top, right, or front view."), to code editor tricks ("You can span your code to multiple lines if you end them with \"), to common project settings ("Working on a pixel art game? Make sure you turn on Pixel Snap in project settings to avoid problems like gaps between tiles in a TileMap!").
lesser known functions (properties) -- this would work like engine documentation, but adapted to be like a tip, and would expose some powerful functions that not many people know about, like get_tree.call_group() or Node2D.set_as_toplevel().
meta -- things like links to various places (website news, Discord server, Patreon), or quick instruction on how to contribute to the engine.
The popup would appear once every time you launch the engine, and only when you open a project. It makes more sense to appear there rather than in the Project Manager.
The popup would have the "Don't show again" checkbox, an "Ok" button, 2 arrows to cycle tips, optionally a number that shows current page "Tip 23/241", and the content itself in a scroll container.
The content would consist of regular text, code snippets, and sometimes images. It shouldn't be long because then it would turn into a documentation rather than a tip.
The content itself would be stored in a JSON file where the popup would pull appropriate tip from. I'm assuming the JSON is standard content storage format, correct me if wrong.
Tips would cycle, giving the next one every time the engine is turned on again and a project opened up. This means an index variable stored somewhere which increments upon every engine launch.
The mockup provided above pretty much shows what I had in mind, but I will make a few design iterations on it.
Finally, in order to acquire some initial content, I plan on making a form where people can submit as many tips as they want. Results would get stored in a spreadsheet and after some time we could merge and evaluate those before adding them to the file. After implementation, users are welcome to add as many tips as they want with PRs.
If something is unclear or missing, let me know so I can correct it. If you have suggestions, fire away!
When and if this gets a green light, I'll start working on this immediately. I'm pretty motivated to contribute to the engine I've been using for more than a year!
The pop-up could be made to show up automatically only once per day, so that you don't see it too often when testing demo projects. This can be implemented by storing the UNIX timestamp of the last editor startup in a file, then comparing it with the current UNIX timestamp. This timestamp should preferably be stored in a dedicated file in the cache directory rather than editor_settings-3.tres. Otherwise, that would mess up with people synchronizing their configuration using a cloud storage solution or a dotfiles manager.
It makes sense to add an Help > Tip of the Day menu option as well, to view tips after starting the editor.
I dislike this from the perspective it's another thing that stops me and other developers from using the engine on start. Other engines have implemented this as a flashing annoying thing on the editor interface combined with a tutorial system.
One of the goals of UX is to not allow barriers to using the project.
@fire Wouldn't the "Don't show again" checkbox solve that? You check it once and never see it again (unless you reenable in Help > Tip of the Day or reinstall your OS).
Good idea, it's useful for beginners, however I dislike the implementation, pop ups are anoying and break visual workflow. We could add the tip of the day at the bottom of the projects list view or as a bottom panel (beside the animation panel).
Also this adds another burden for the community: write, curate and update tips. Yet to be honest, I don't find this a must have, a good amount of users may skip it and so it may be considered bloat. Personally I have had some joy reading some tips on IntelliJ but 99% of the time I just pass and go straight to work.
Also this adds another burden for the community: write, curate and update tips
And translate to the many languages that are supported. It could be a nice feature, but the hardest part is producing and maintaining the content (which must always be small, clear, and correct).
godot is used for so many different kinds of games/projects, i fear certain tips will be irrelevant to that developer's project. this might become a nuisance instead of a helpful tip
There are some features that are not documented anywhere and tip of the Day would be useful for letting the user know they exist. I mean, there are things that should be written anyways, so maintainability isn't really a problem here. But it should be used only for really useful stuff and "meta" tips don't sound like that.
There are many problems with this:
If this would be added, it should IMO be opt-in, not opt-out. I like the help > show tip of the day suggestion.
These are some pretty reasonable arguments against. I didn't think of it this way, especially the requirement to maintain it, and for all the languages. I agree that it doesn't contribute significant amount of benefits. Finally, I see how opt-out can be annoying, and making it opt-in under "Help" tab feels like it's not worth the effort. I think this makes it more of a candidate for a page on documentation rather than engine feature then.
Seems that majority are against, so I guess the issue can be closed.
Actual beginner here.
Uhhh... I literally never read any of these "Tip of the Day" things.
The only thing they manage to do for me, is to annoy me to death.
Do you guys want to know why?
BECAUSE IT'S LITERALLY RANDOM INFORMATION, WHICH I CANNOT USE, AS I LITERALLY DON'T KNOW HOW TO DO ANYTHING YET.
It's worthless bloat, it adds absolutely nothing. This doesn't allow me, in any way, to learn anything.
Besides, I have to memorize this crap too, in like what, two seconds? That's too damn quick man, I barely had time to apply the information I just learned. By the time I close the window, I'll have forgotten everything it just told me.
Anyway here's the truth from someone who honestly finds these things to be 100% useless. I never read them, never bothered to. It has never helped me once. I would rather have detailed tool tips, when I hover over stuff instead. Now that would be an amazing way of integrating documentation.
This is kinda silly, but I do wish more UIs could be more video game like when it comes down to teaching you how to do stuff.
See, you hover on the thingy, it tells you what it does. Cool.
https://i.imgur.com/ihlVw04.png
That's a good feature. Tip of the day? Completly worthless and a useless waste of space and text.
The better idea would be to have video game like tooltips when you hover over the UI.
https://i.imgur.com/LhC8MML.png
Yeah, I never read such modals too. I rarely checked to not show them, but in vast majority of times I instantly closed them. But in games, when I am waiting for a level to load and the text isn't too long, I usually read the "loading tips".
Example from Overwatch (not my screenshot):

When opening our project, I have to wait for the editor to load (to load assets of opened scenes) and it's frozen in the "create new scene" state, useless for like a dozen of seconds if not more. Couldn't be a similar feature to "loading tips" used in Godot editor?
@mnn You could make a separate proposal for this. But keep in mind that the loading time differs. For me, only the initial project load is long enough to be able to read any tips. And it might get shorter if editor makes use of parallel loading.
If that was as easy as paste my previous post, I would. Since the feature would most likely be useless for me (it would be short beginner tips, IMO advanced ones would be either too long or too specific), I don't really feel like filling forms (the rigid proposal template) in a language which is not even my native.
Still don't understand why a user of an engine should be required to know what an engine module/addon has access to / is capable of in order to submit a proposal.
Still don't understand why a user of an engine should be required to know what an engine module/addon has access to / is capable of in order to submit a proposal.
Because there's too many feature requests, so we have to filter them out somehow. See discussion in #779
As for this feature, since it was basically rejected, I actually have an idea to instead make a documentation page that lists all useful things that are otherwise hard to find. We could make it easily accessible somewhere in the editor and this should be enough.
Most helpful comment
I dislike this from the perspective it's another thing that stops me and other developers from using the engine on start. Other engines have implemented this as a flashing annoying thing on the editor interface combined with a tutorial system.
One of the goals of UX is to not allow barriers to using the project.