Introducing Local Entities!


#1

Hey folks,

If you’ve ever written a script that creates items for only one person to see locally, you might be familiar with “Overlays”. Overlays are used for things like UI elements (such as the arrow widgets in Create mode) or domain content that you want to trigger separately for each visitor (like the collectable gems in Azooz). Until now, these have been separate from “Entities”, which are the basic building blocks of most things in High Fidelity and are sent over the servers to other users.

Maintaining the 3D Overlay System separate from Entities has become a source of technical debt and confusion for everyone. We have a plan to introduce the concept of “Local Entities” that have all the full functionality of Entities, but can only be seen locally by one person.

This opens up fun new possibilities. You can now use particles, materials, lights, and even zones as Local Entities! Plus, the new Local Entity system will be more efficient and have a cleaner API.

One important thing to note: the 3D Overlays API will be supported for the foreseeable future. Local Entities will be backwards compatible with Overlays. We encourage you to use the new APIs as they will be more efficient, but your existing content will continue to work.

Here is a table showing the schedule for rolling out the new system and deprecating the old system. By “deprecate”, we mean that the API becomes unsupported and will generate an error in the logs. However, the APIs can still be used, and 3D overlays will be converted to local entities under the hood.

Note: just like Overlays, Local Entities will be collisionless.


#2

“Text entities have all the properties Text 3D Overlays have”

NO THEY DON’T! They cannot have the foreground adjusted at all! Make sure that property gets merged over if they haven’t already in 78!

Also, please, the emissive property; that should be standard for entities and overlays alike!


#3

https://github.com/highfidelity/hifi/pull/14569 :slight_smile:

As per the table, that change will arrive in 78.


#4

Is there any documentation on this yet?


#5

The docs will be updated as the new entity properties are added over 78 and 79!

Additionally, the new version of Entities.addEntity, which takes in an " entityHostType" (“domain”, “avatar”, or “local”) has been documented here: https://docs.highfidelity.com/api-reference/namespaces/entities#.addEntity


closed #6

This topic was automatically closed after 30 days. New replies are no longer allowed.