-
Notifications
You must be signed in to change notification settings - Fork 6
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
Proposed RFC Feature per-engine recently used project path #24
Comments
Feature wise, I do think this proposal could help users get into tooling applications a little easier. Now this proposal will hit some restrictions in how we treat the engine as well and will need some guard rails against missing projects. So first the restrictions, are that we have to treat the settings files within the engine locations as immutable. This is needed as the location where the Engine is installed might only have read only access for the user(C:\Program Files, /opt/ /usr/share/ etc...). Settings file wouldn't be able to be persisted to that location. The 2nd option of having a registry file with the recently launched project for the engine within a Now on to the guard rails that would be needed with this proposal to prevent a worse user experience. I believe the recent project registry file within the It would need to cross check the recent projects "engine" field with the running engine's "engine_name" field to make sure the project is actually associated with the engine. Finally I believe we need some a strategy for the open question of
There are a couple of one here.
After each of those options I still believe we need the logic that if no recently used projects can be open by the engine, then proceed to use the same logic as if the application has never launched with a project. (i.e The Editor would launch the Project Manager). Out of the two options posted above, I think number 2 is more user "safe". It could be unexpected if an application opened the second most recently used project, if the first could not be open. The user would probably not notice the Editor or AP launched a project that wasn't there most recent until started to work within those application. Now I did notice this RFC brought up the alternative of using the Using the alternative for all the work that goes into this proposal, it would be simpler to just update the Once the the global_project commands are updated, the only other thing that needs to be done is to update the C++ code to add the "engine_name" as a specialization tag, which can done at the bottom of SettingsRegistryMergeUtils:FindEngineRoot by merging the engine.json to the settings registry and setting specialization key |
@lumberyard-employee-dm wow! This is excellent feedback and I agree with all the recommendations. Regarding the "global" project approach, my only question is, are we planning on deprecating the concept of a "global" project? I wasn't sure if it was a hold over from before we had external projects working. |
The global project was added during pre-O3DE development to help ease developers off setting their user specific project inside of the team-wide shared The logic of adding a "global" project is having the user add a setreg file with no specialization tag to their personal user Since we can convert the concept of a I would deprecate the Removing the If the user has a |
Summary:
When launched without a project path parameter, O3DE tools (Editor, Asset Processor etc.) will attempt to use the most recently used project for that engine. These paths will be stored in a .setreg file in .o3de/Registry or inside the engine in user/Registry.
What is the relevance of this feature?
Currently, when a user directly runs tools like Editor.exe or AssetProcessor.exe without specifying a project path, and the these tools are not inside a project folder, they will launch the Project Manager (o3de.exe) from which the user can select the project they want to use. There are a few misses here:
Feature design description:
From a user perspective there will be no UI change.
NOTE: Users that distribute a custom engine and project via source control can already provide a default relative project path using a .setreg file in their engine's Registry folder, which is great for advanced users, but this recently used project feature will provide similar benefits to non-advanced users.
Technical design description:
The most recent used project path will be written by Project Manager (o3de.exe) to a .setreg inside the .o3de folder
Option 1:
.o3de/Registry/recent_projects.setreg
Option 2:
user/Registry/recent_projects.setreg
What are the advantages of the feature?
What are the disadvantages of the feature?
How will this be implemented or integrated into the O3DE environment?
Are there any alternatives to this feature?
How will users learn this feature?
Are there any open questions?
The text was updated successfully, but these errors were encountered: