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

BZW (BZFlag World) Metadata #361

Open
blast007 opened this issue Sep 22, 2024 · 2 comments
Open

BZW (BZFlag World) Metadata #361

blast007 opened this issue Sep 22, 2024 · 2 comments

Comments

@blast007
Copy link
Member

blast007 commented Sep 22, 2024

This is a proposal to discuss adding a metadata object to the BZW format for information like the world name and version, licensing, etc. This information would also be part of the binary representation of the world, and could perhaps be queried from the server without fetching the entire world.

Ideas for information that would be allowed:

  • World title/name
  • World author(s)
  • World version
  • World license(s)
  • Description of the world

Any other ideas for information to allow?

For the data types of the information, my thought was to allow strings and string lists. Should there be other types, such as integer or float?

From a binary/protocol level, I would think it be best to allow future information to be added, so some sort of key/value encoding would be ideal.

This is the possible syntax for the metadata object. In this example, title, version, and description are strings, and author and license are string lists (with multiple instances appending additional elements to the list).

metadata
    title Example World
    author First Author
    author Second Author
    version 0.1.4a
    license LGPL-3.0-or-later
    metablock description
        This is a
        multi-line
        description
    endmetablock
endmetadata
@TheGiraffe3
Copy link
Contributor

Maybe what version of BZFlag the world requires to work smoothly?
This would only be necessary if we're going to add new world objects, but just as a thought...
bzversion 2.6

@The-Noah
Copy link
Contributor

I really like this idea and think it would be a great addition. I think it would also be good to allow custom fields for flexibility, either just as their name (myfield) or prefixed with an x- (x-myfield) like HTTP headers.

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