Vega-strike-engine-source: weapon_list.xml is inconsistent

Created on 11 Apr 2021  路  10Comments  路  Source: vegastrike/Vega-Strike-Engine-Source

The weapon_list.xml file has inconsistencies:

Issues:

  1. Capitalization: Tags such as _Bolt_ vs attributes such as _name_. _DetonationRange_ vs. _detonationrange_. etc. Also, filenames could potentially fail on case sensitive file systems. e.g. _MASS.WAV_, which is correct right now but easily changed by well meaning dev to align with every other file..
  2. Multiple attributes for the same variable: _damage_ (only laser) vs. _rate_ (everything else).
  3. Same attribute under different tags for same variable: _Distance/radius_ vs. _Damage/radius_. Also _radialspeed_.
  4. Some tags are not used: _offset_ for example. _Texture stretch_ is another.

Required;

  1. Define an xml schema (https://www.w3schools.com/xml/schema_intro.asp) and apply it to the document.
  2. Fix the above issues.
  3. Align filenames to match.
  4. Did I forget something?

Other things to consider:

  1. There is an upcoming PR with changes to the parsing from the internal parser to boost property tree. It seems to work OK, but some values probably fail as the file is inconsistently capitalized.
  2. Once approved, we could easily switch over to/add support for JSON, as boost supports both with the same API. We would still need JSON schema (https://json-schema.org/) to prevent a recurance of this issue.
  3. These are breaking changes that should go together (data and engine) and should be part of a specific release.
  4. We need to consider changes to other games (e.g. Privateer) as they may be using some parts of the code/data we're not.
bug

Most helpful comment

On behalf of Priv:WCU (the "spiritual successor" to ChuckStarchaser's Priv:PU), this is hereby noted.

I'm loath to start working on this until Py3 is known to work though, so if at all possible would prefer if this sort of thing could be scheduled for post-0.8?

The smart thing to do seems to be to ensure that 0.8 also contains Py3 tool refactoring, such that everything is known to work with Py3 and unicode. Once that's done, there will be more knowledge about where and how to manage this change in a sane way across the tooling, engine and assets?

All 10 comments

I suppose it is a good idea then to contact the teams of said other games, and inform them of this update, and ask them to update accordingly.

The Privateer weapons list should be alright as ChuckStarchaser is/was quite focused on details of that nature. As for the main game's data set not so much several different cooks in the mix hence the inconsistencies in capitalisation.

On behalf of Priv:WCU (the "spiritual successor" to ChuckStarchaser's Priv:PU), this is hereby noted.

I'm loath to start working on this until Py3 is known to work though, so if at all possible would prefer if this sort of thing could be scheduled for post-0.8?

The smart thing to do seems to be to ensure that 0.8 also contains Py3 tool refactoring, such that everything is known to work with Py3 and unicode. Once that's done, there will be more knowledge about where and how to manage this change in a sane way across the tooling, engine and assets?

yes, this is certainly a 0.9.x thing to do.

@ermo the internal Python interpreter works just fine it's the various scripts data(assets) side that need conversion to Py3

On behalf of Priv:WCU (the "spiritual successor" to ChuckStarchaser's Priv:PU), this is hereby noted.

I'm loath to start working on this until Py3 is known to work though, so if at all possible would prefer if this sort of thing could be scheduled for post-0.8?

The smart thing to do seems to be to ensure that 0.8 also contains Py3 tool refactoring, such that everything is known to work with Py3 and unicode. Once that's done, there will be more knowledge about where and how to manage this change in a sane way across the tooling, engine and assets?

  1. Do we know if there are any other games beside Vegastrike and Priv:PU?
  2. How do I get and compile Priv:PU? If we support it, we may as well test both.
  3. Are there any changes to the engine or is it just the data? I started in P/PU and recall some changes such as auto pilot.
  4. @BenjamenMeyer, when do you think I can PR my engine change to master?

On behalf of Priv:WCU (the "spiritual successor" to ChuckStarchaser's Priv:PU), this is hereby noted.
I'm loath to start working on this until Py3 is known to work though, so if at all possible would prefer if this sort of thing could be scheduled for post-0.8?
The smart thing to do seems to be to ensure that 0.8 also contains Py3 tool refactoring, such that everything is known to work with Py3 and unicode. Once that's done, there will be more knowledge about where and how to manage this change in a sane way across the tooling, engine and assets?

  1. Do we know if there are any other games beside Vegastrike and Priv:PU?

I do not; though @Loki1950 might. There seems to be some hints on the forums that there were others, but I don't know of any evidence other than that so they might have started planning but never got off the ground.

  1. How do I get and compile Priv:PU? If we support it, we may as well test both.

You can find Prive:PU at https://github.com/pwcu/privateer_wcu - it's successor project. @ermo is the lead there; I was also getting involved - it's part of how I got into VS. :)

  1. Are there any changes to the engine or is it just the data? I started in P/PU and recall some changes such as auto pilot.

From discussions around VS regarding PWCU - from @Loki1950 and @ermo - it manages a few things differently. They had at one point forked VS; but IIRC the main changes have been brought back to VS so the two can really use the same VS engine now.

  1. @BenjamenMeyer, when do you think I can PR my engine change to master?

Which engine change are you referring to? Where you make things more consistent in VS?
I would wait until we cut the 0.9.x branch. That should be soon - in the next week - as I'll cut the 0.8.x branch and rev the version on master as soon as we release 0.7.x.

There where several other data sets or conversions Star Wars,Star Trek and Babylon 5 the major ones and the Star Trek one needed several major engine changes to support travel between star systems(no jump points).

Wonderful. Thanks.
Regarding other conversions, when/if they come forward,we'll need to decide on a support policy. Otherwise, it could get tricky.

The lead for the Star Trek mod went into politics he was elected so his free time evaporated and the source code changes where kept of the PU svn repo as a separate branch not sure if it is retrievable.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

BenjamenMeyer picture BenjamenMeyer  路  5Comments

BenjamenMeyer picture BenjamenMeyer  路  4Comments

BenjamenMeyer picture BenjamenMeyer  路  5Comments

BenjamenMeyer picture BenjamenMeyer  路  3Comments

viktorradnai picture viktorradnai  路  3Comments