decentraland / unity-renderer

Unity implementation of Decentraland Client
https://play.decentraland.org
Apache License 2.0
137 stars 92 forks source link

Implement RFC-1 - Decoupling of Loading Screen #3302

Closed dalkia closed 1 year ago

dalkia commented 2 years ago

Implement the decoupling of the Loading menu described in RFC-1

xavi-dcl commented 1 year ago

I've read the RFC, but it is not clear what enable better loading UX in the renderers means exactly? More precise loading bar progress? Or faster loading? Trying to understand the impact this would have to the user.

Can someone confirm that the estimate of "5" includes thorough testing & bugfixing? Without knowing technical details, my guess is that this is a major change and it would be easy to miss some corner case or a race condition bug. Is there reason to worry indeed, or is the change pretty safe?

dalkia commented 1 year ago

Implementing RFC-1 will solve tech debt.

Currently, the loading screen life cycle is controlled by kernel. This is a responsibility that should not be in that side, since any change in the kernel logic may cause visual issues that were not intended. Bugs were introduced because of the coupling of kernel and renderer on this matter; for example, the flashing of the camera before a new teleport is started; or seeing the tutorial in the new user flow before it should.

The general idea is to move the whole loading screen logic to renderer, by analyzing the scene life-cycle events instead of depending on external kernel calls. This change of responsibility will allow better control on the visibility of the screen. It will also allow us to make it more extensible and open to visual changes (text or images change, effects, etc)

I have move to estimate from 5 to 8 since I did not include testing. Having 3 extra points will give us a better test and correction buffer to look for edge cases.