Extend the TypeInfo class to handle all sent info
Currently the TypeInfo class only contains information on the type hierarchy. However, all type info is sent from the server, including default attributes. The TypeInfo class should therefore be extended to also provide methods for inspecting this data. This will make it easier for authoring tools, since they can use this data when creating new entities.
Another possible advantage could be that entities on the server that use default values, for example the default bbox, doesn't send this to the client unless it has been changed, depending on the client using the bbox set in the type info. This would save some bandwidth.
Blueprint information
- Status:
- Complete
- Approver:
- Al Riddoch
- Priority:
- Undefined
- Drafter:
- Erik Ogenvik
- Direction:
- Needs approval
- Assignee:
- Erik Ogenvik
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Al Riddoch
- Completed by
- Erik Ogenvik
Related branches
Related bugs
Sprints
Whiteboard
I think the most valuable aspect of this is in the use of default values for attributes defined in the class, and removing the need to send values for these attributes on the instances unless they have been overriden. As cyphesis uses the same model for attributes internally when handling this AI, a switch to a model where Sight operations only include data about instance attributes would safe massively on memory usage and processor load of the server. /al
I've created another blueprint, dependent on this, for the a little more complex task of making sure that only attributes that are changed are transferred. The main reason why I want to separate them is that I think that the latter task is quite large, and my main concern currently is getting entity persistence to work. With this blueprint implemented it's very, very easy to quickly create or alter the world from Ember, but without proper entity persistence all the work one would put into crafting a world would be lost whenever the server either is restarted or crashed. /erik
Moving this discussion to the specification URL on the wiki. /al
Work Items
Dependency tree
* Blueprints in grey have been implemented.