-
-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add "Tip of the Day" popup upon engine start #15
Comments
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 It makes sense to add an Help > Tip of the Day menu option as well, to view tips after starting the editor. See also godotengine/godot#31430. |
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 |
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. |
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. 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. 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. |
@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. |
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. |
Although this is closed, a few thoughts in case this ever gets renewed: Like @Juankz I like the PyCharm TOTDs and leave them enabled, because I encountered a great tip once and that changed my mind on the whole system. For me, a single click to close the dialog on startup is worth the potential knowledge gain. I don't follow the notion that it is a nuisance, because it's literally a single click to be rid of the dialog forever. However, a feature like this lives and dies with excellent curation: If the tips are concise, helpful and create a potential "that's cool, I didn't know that" effect, I think a TODT-system has merit. If it's just walls of text and mini-tutorials I wouldn't want to read it either. I agree that it's a lot of work to collect and curate and translate the tips, but that is true for everything we do in the docs and we do have a Best Practices and Troubleshooting section which are also maintained and translated. So if it's worth having, it's also worth maintaining I think. The question is whether it is worth having though. So far, feedback seems to be mostly negative. I wonder if it might make sense to start collecting tips, e.g. in the docs (see #3625) and then get some feedback on whether someone found something useful in there. If true, then decide to move it to Godot as a TOTD system of some kind. I also believe the strengths of a TOTD are not where it's aimed at the beginner, but rather the intermediate user who is just fluent enough with Godot to work with it, but still doesn't have a deeper knowledge of a lot of shortcuts and best practices. As a beginner I would probably be overwhelmed as well with a mountain of info. As for getting swamped with unhelpful tips on features people don't use, there could be the option to set up the TOTD to include/exclude certain topics (e.g. show no 3D tips, etc.). If the tips were present in the documentation, they would be grouped by topic over there already, so enabling/disabling certain topics could follow naturally from there. |
I've been thinking about this again lately. Maybe tips of the day could be displayed below the progress dialog when there's a long EditorProgress operation going on (for more than 5 seconds or so). This applies to things like resource (re)importing, baking lightmaps, and so on. This would allow for having unintrusive tips display when they're the most relevant (i.e. when you don't have anything else to do in the editor at a given point in time). |
Something actionable is creating a place for tips and seeding the list with a few. |
("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.
Idea
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()
orNode2D.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.
Implementation
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.
Acquiring content
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.
Final notes
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 text was updated successfully, but these errors were encountered: