Skip to content

Conversation

jhanca-robotecai
Copy link
Contributor

This PR submits an RFC with changes proposed to most of the simulation-related Gems and Templates.

@jhanca-robotecai jhanca-robotecai changed the title Add RFC for changes in simulation Gems and Templates RFC: changes in simulation Gems and Templates Mar 4, 2025
Copy link
Member

@pawelbudziszewski pawelbudziszewski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fully agree with the proposed changes. Currently, there is a mess in these gems and templates. Some assets are duplicated others are not used or needed anywhere. Also, the structure and naming of gems and templates may be confusing. So I fully support this initiative.

I've added a few comments to the RFC text. One additional general remark:
While working on these gems, they should be reviewed for unneeded and duplicated assets, confusing names, etc., and such issues should be corrected (if possible)

@pawelbudziszewski
Copy link
Member

@jhanca-robotecai: great job BTW! :)

@jhanca-robotecai
Copy link
Contributor Author

@jhanca-robotecai: great job BTW! :)

Thank you for the review. I added your comments to the RFC.

Copy link

@nick-l-o3de nick-l-o3de left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't really have any objections to a good reorg. We've found "adding more gems" can add a lot more complexity though. It might be worth considering moving all the reusable and sharable bits into a single gem so that they're all there - my understanding is that the engine doens't actually ship assets that it doesn't use in a level or project, when you actually make a release of your sim or game...

I'm not saying go this way, but consider the pros and cons?

And I'm talking mostly about asset gems, those that contain just models, prefabs, textures, you can add to your project.
Note also that asset gems do not need to contain any code at all, or any module or cpps or cmakes except to add the asset folders.

Comment on lines +28 to +29
All projects using `ProteusRobot` Gem will require an easy update: changing the required Gem name. All asset names (*prefabs*) and paths will remain unchanged, but not necessarily names and paths of each low-level asset (a mesh file or a texture). There is a risk that someone in some project uses these. Such project will require manual fixes or the old version of the Gem.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this the case? As far as I know, O3DE generates UUIDs and paths based on the 'scan folder' root. Gems can add new scan folder roots via a config file, which means there's likely a way to make sure that at least the relative paths of all the assets (from the scan roots) remain the same. If you need help with this, I can help investigate.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the review and the comment. I guess we are on the same page with the engine, but I did not put it in the right words.

The paths to the prefabs will remain the same or they will be added to the config file that you mentioned. The same goes for the material files. However, we plan to rename some of the texture files. It is very unlikely someone created their own material file and linked it with the textures from this repo (also due to the problem in the cmake that was recently discovered by us when trying to do the same: o3de/o3de-extras#837 ). Nevertheless, I wanted to point out such possibility in the RFC.

An example for the misleading name within the repository that we want to change:
Warehouse/Textures/WarehouseProps/WarehousePropsMaskMap_A.png
this will be renamed to WarehouseModules_roughness.png (files with _property suffix are discovered automatically by O3DE).

@jhanca-robotecai
Copy link
Contributor Author

Don't really have any objections to a good reorg. We've found "adding more gems" can add a lot more complexity though. It might be worth considering moving all the reusable and sharable bits into a single gem so that they're all there - my understanding is that the engine doesn't actually ship assets that it doesn't use in a level or project, when you actually make a release of your sim or game...

This reorganization will create a new Gem, but it will remove multiple other Gems at the same time. We are trying to find the right balance between downloading obsolete data (not everyone needs all assets) and having to use too many Gems.

If I was making decisions, I would remove most of the assets stored within the o3de-extras repository. On the other hand, I understand the argument that having some assets right next to the simulation Gems allows to pull everything at once and try out the engine. We discussed this topic internally and with some other folks during sig-simulation meetings - hopefully, step by step we will clean up the repo. Next RFCs are on the way.

@jhanca-robotecai
Copy link
Contributor Author

jhanca-robotecai commented Apr 8, 2025

There is a full list of changes that need to be implemented created based on the RFC as of today. Some of the tasks rely on each other.

  • 1. WarehouseAssets Gem: clean up existing assets
  • 2. WarehouseAssets Gem: add smaller warehouse
  • 3. ProteusRobot Gem: remove the Gem; move the content to ROS2SampleRobots
  • 4. RosRobotSample Gem: remove the Gem; move the content to ROS2SampleRobots
  • 5. Ros2FleetRobotTemplate Template: update to changes in WarehouseAssets and ROS2SampleRobots Gems
  • 6. Ros2ProjectTemplate Template: recreate the template based on WarehouseAssets Gem without using WarehouseSample; follow changes in ROS2SampleRobots
  • 7. Ros2FleetRobotTemplate Template: update to changes in WarehouseAssets Gem
  • 8. WarehouseSample Gem: remove the Gem
  • 9. Ros2RoboticManipulationTemplate Template: remove obsolete level; remove dependency to WarehouseAutomation Gem
  • 10. Ros2RoboticManipulationTemplate Template: move robot to ROS2SampleRobots
  • 11. WarehouseAutomation Gem: move meaningful assets to WarehouseAssets
  • 12. WarehouseAutomation Gem: move meaningful implementation to ROS2 or similar

@jhanca-robotecai
Copy link
Contributor Author

jhanca-robotecai commented Apr 8, 2025

1 and 2 solved by:
o3de/o3de-extras#846

3 and 4 solved by:
o3de/o3de-extras#857

5 solved by:
o3de/o3de-extras#857

6 partially solved by:
o3de/o3de-extras#857

7 solved by:
o3de/o3de-extras#846

9 solved by:
o3de/o3de-extras#843

@jhanca-robotecai
Copy link
Contributor Author

6 solved by:
o3de/o3de-extras#878

10 solved by:
o3de/o3de-extras#884

@jhanca-robotecai
Copy link
Contributor Author

8 solved by:
o3de/o3de-extras#885

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants