Provide a mechanism for the server to define what client side features should be present
As we now add support for Mercator mods, we'll get into the situation where any older client connecting to a newer version of cyphesis where there are mods applied will get a terrain that is different from the one defined on the server (since older Ember clients won't understand the "terrainmod" attribute). This might make the experience a little bit jarring, and I'm thinking of perhaps adding some kind of mechanism for allowing the server to specify a series of "features". Any client which doesn't implement any of the "features" should then be able to tell the user this.
I'm thinking of a simple mechanism, where "features" are just specified by simple strings, such as "mercator_
As "features" I'm thinking of anything that will make the client not represent the world in the correct way. The way we designed the world so far has prevented most of these "breaking" additions, but I'm sure we'll see some more as development proceeds.
If we implement this we'll however have to be quite careful about what "features" we specify. We should only define those things that are actively breaking, not those many cases where older clients just doesn't show as much.
Blueprint information
- Status:
- Started
- Approver:
- Erik Ogenvik
- Priority:
- Low
- Drafter:
- None
- Direction:
- Needs approval
- Assignee:
- Erik Ogenvik
- Definition:
- New
- Series goal:
- None
- Implementation:
- Deployment
- Milestone target:
- None
- Started by
- Erik Ogenvik
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Why not specify the features as a string key to integer value pair, and then the number can be incremented as the feature changes?
Rather than having "mercator_
"mercator_
The reason I didn't suggest that was that I don't want to make this feature too complicated and bind us to all kinds of backwards and forwards compatibility web. If the server wants "mercator_