As a developer, the existing Camera ScreenPoint members are too confusing because I can’t remember if they use inset or not. By knowing what a viewport is and that we have ViewportPoint members, I can deduce that ScreenPoint is the inset of the two, but that only holds true if:
I am familiar with jargon (new developers may not know what a viewport is)
I also know that we have ViewportPoint members
If I’m a new developer or am not familiar with the camera API, I will not be able to deduce that ScreenPoint is inset, and will have to check the wiki for clarification every time I use it. These ScreenPoint members should be deprecated in favor of something more where the API is self-explanatory without the help of other members.
List of ScreenPoint members:
Camera.ScreenPointToRay
Camera.WorldToScreenPoint
These methods should be deprecated and re-introduced with better names such as “InsetScreenPointToRay”.
I feel like developers can be expected to understand technical jargon.
Also there’s a point where an API is advanced enough that the new user experience (i.e., understanding the API without reading a wiki page) shouldn’t really be a consideration. UIS, DataStores, Pathfinding, Raycasting are examples. I think translating screen space to 3d space is one of these.
I’d suggest something like InsetViewportPoint instead, because “ScreenPoint” already means “viewport point with inset”. Or better yet, we could just deprecate this ScreenPoint stuff altogether now that we have a way to get the inset.
…In fact, now that I think about it I’m probably going to start exclusively using ViewportPoint + GetGuiInset when necessary so that I can avoid any confusion.