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

Implement loading/saving state with additional test #89

Open
svenstaro opened this issue Jul 29, 2011 · 5 comments
Open

Implement loading/saving state with additional test #89

svenstaro opened this issue Jul 29, 2011 · 5 comments
Assignees
Milestone

Comments

@svenstaro
Copy link
Member

This should utilize our neat serialization support. Should be basically easy, I guess but due to physics I'm marking it medium. Will probably take a few attempts to get right.

@ghost ghost assigned opatut Jul 29, 2011
@opatut
Copy link
Member

opatut commented Jul 29, 2011

And how do you want to serialize nodes? They do not have the serialization stuff yet, only NetworkEvents have. Furthermore, we cannot use the StringManager here, as it generates the IDs based on the Classes available, and if we leave a component out (as components can be created client-side) we will screw the whole file.

Not easy at all. We need something different here.

@svenstaro
Copy link
Member Author

Perhaps now that we have Qt it could be used for serialization purposes? Will have to investigate.

@ghost ghost self-assigned this Aug 11, 2011
@ghost ghost assigned svenstaro Oct 19, 2011
@svenstaro
Copy link
Member Author

Alright so technical implementation details:

  • Components and nodes are the only things that needs serializing for saving/snapshotting for now.
  • We have decided that UUIDs are most convenient, simple and efficient for our purpose of identifying components and nodes.
  • We will use Boost.Uuid for the UUIDs. This needs to be implemented first.
  • For reading/saving things from/to disk we'll use Boost.ProperyTree. This library can read/write a bunch of formats so we don't have to focus on anything specific like xml or json. Perhaps we can also use a custom writer/parser for network snapshotting.
  • We'll then need to recursively serialize/deserialize our node structure and node-component structure into this map. This will be the hardest part.

@shua
Copy link
Contributor

shua commented Mar 3, 2012

stuff to think about with serialization:

  • Components all need work.
  • MyGUI (use MyGUI XML, or add it to YAML/binary serialization?)
  • OgreProcedural Meshes (used in mesh components)
  • Resource Locations. If that's not added, then we'll have to add some guidelines for map creation.
  • QObject connections.

some of this stuff could be done in scripting. I think the 0.3 milestone should be based around serialization and scripting support.

@svenstaro
Copy link
Member Author

Indeed, we should think about these things.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants