Skip to content
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

Multi Object Property Editing / Prefabs #83

Open
MR-Alex42 opened this issue May 8, 2018 · 5 comments
Open

Multi Object Property Editing / Prefabs #83

MR-Alex42 opened this issue May 8, 2018 · 5 comments
Assignees
Labels
Major Feature Large bodies of work, such as major changes to the engine

Comments

@MR-Alex42
Copy link
Collaborator

Currently you need to apply a change of properties to each and every object separately. It would be much more efficient if a user could organize objects into groups and apply a change to all members of the group. Another way to achieve this would be to introduce a concept like Unity prefabs. If the prefab changes all instances of the prefab change as well.

@Frooxius
Copy link
Collaborator

Frooxius commented May 8, 2018

Yeah, I have been thinking about these for a while, but I haven't fully gotten to this yet. I have several ideas on how this should work within context of Neos, but needs some more more thought.

For example, should the prefabs be applied across all worlds? Meaning if the prefab is stored in the cloud, it will affect every single experience linking that prefab?

Another thing is how will it maintain the links to the prefabs. What if parts of the data tree are deleted/moved/inserted? How about performance memory implications?

Generally prefabs are going to be updated rarely, so the performance/memory cost should be in the update process, with as little in using and spawning them.

Also I'd like to implement this in a way that would allow implicit spawning, which would save on bandwidth, but it has further considerations.

@Frooxius Frooxius self-assigned this May 8, 2018
@Frooxius Frooxius added the Major Feature Large bodies of work, such as major changes to the engine label May 8, 2018
@sirkitree
Copy link
Collaborator

For example, should the prefabs be applied across all worlds?

Please no. I think being able to copy things to their own worlds is a huge benefit of Neos, and if someone changes the original to a penis... well, you can imagine the consequences.

@Frooxius
Copy link
Collaborator

Frooxius commented May 9, 2018

@sirkitree Yeah that's a good point :D Although I imagine both workflows would be necessary. Say you're making a game that's composed of dozens of worlds and you want to update an enemy that's in most of them. You'd want those changes to apply across your experiences.

There would be a way to break the reference to the original or create your own duplicate of it. But it should be designed in a way that makes it clear which one is happening with some sensible defaults.

@sirkitree
Copy link
Collaborator

Maybe just by author then?

If I import an asset, and use it in multiple worlds, only I can replace it across all of my worlds.

If someone copies that asset and uses it in their own worlds, they could update it across their worlds, but I cannot update that same asset that they copied into their worlds.

@Frooxius
Copy link
Collaborator

Yeah that sounds like a good default. If you take someone else's template/prefab, it'll make a copy of it for you (and similarly if someone else takes that, it'll make a copy for them) first and use that for instancing.

But if you want (and trust the author), you'll be able to say that you want the reference remain to the original.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Major Feature Large bodies of work, such as major changes to the engine
Projects
None yet
Development

No branches or pull requests

3 participants