Page 1 of 1

Database Files for VS

Posted: Wed Mar 22, 2006 9:57 am
by Zeog
I would like to understand some of the VS configuration and database internals. There are many files in SVN that seem to be somehow configurating the behaviour of VS.

In particular, I'd like to know what the following files actually do, if they are used at all, are just remains of a former version or maybe unintendedly committed.

Cargo/Upgrades/Weapons/Turrets/Ships (all mangled)
a) ./stats/vegastrike.xls
b) ./units/units.csv
c) ./units/units_working.sxc
d) ./master_parts_list.csv
e) ./master_parts_list.xml
f) ./weapons_list.xml
g) ./documentation/unitstats.csv

Factions:
h) ./stats/factioninfo.csv
i) ./stats/factions.csv
j) ./factions.xml

As far as I've found out:
d) master_parts_list.csv stores for every item in VS a key, its category, volume, mass and price, the path to the cargo item picture and a description

about the rest I'm not completely sure. :?

Posted: Wed Mar 22, 2006 10:13 am
by Kangaroo
Weapon_list.xml - contains stats about all weapons and missiles in VS

Re: Database Files for VS

Posted: Wed Mar 22, 2006 12:53 pm
by dandandaman
a) ./stats/vegastrike.xls

Ignore.

b) ./units/units.csv

Contains all the config information for the units that are spawned in game, VERY IMPORTANT!!!

c) ./units/units_working.sxc

Just something to help me with part of the rebalance. Ignore.

d) ./master_parts_list.csv

Contains the configuration information for all items able to be sold, VERY IMPORTANT.

e) ./master_parts_list.xml

An xml copy of the above, deprecated.

f) ./weapons_list.xml

Contains the weapon information for all the weapons possible, VERY IMPORTANT.

g) ./documentation/unitstats.csv

Ignore.

h) ./stats/factioninfo.csv

Ignore.

i) ./stats/factions.csv

Ignore.

j) ./factions.xml

Contains the configuration for factions, relationships/comms etc, VERY IMPORTANT.


If you want more detailed info, let me know and I'll post it up! :-)

Dan

Posted: Wed Mar 22, 2006 4:42 pm
by Zeog
Perfectly, thank you much! :D
Do you mind if I remove the superfluous files (those labeled with "deprecated" and "ignore") from SVN then?

One more question: I'm inluding Silverain's upgrades and weapons pictures into SVN. The image paths are stored in the master_parts_list.cvs and including them works fine. For weapons, however, I find it very difficult. There are many more weapons listed in the master parts list than available in game. Some weapons are also listed with some properties in the units.cvs and some are also listed in weapons_list.xml. Which list in the authorative one?
(It's somewhat hard to find out since everything is spread accross these files. For example in units.cvs many upgrades have a directory string "./factions/upgrades/..." (from the "/units/" directory). But a directory /units/factions/upgrades/... does not exist!) :?

Posted: Wed Mar 22, 2006 8:45 pm
by JumpinDuck
I'd like to tweak missile capacity of ships. It seems to me that the units.csv file should have all the ships' stats, but it's very confusing, many numbers and little explanation for them. So can someone please just give me an example of a line/part of a line that affects missile capacity?

P.S.

Also if someone would be so kind and tell me which file is responisble (and a line too if file is a jungle :)) for determining how much space does a missile use within the missile capacity. Because while a ship can mount, say, 16 dumbfires per launcher, it can mount only 1 friend/foe missile, making such practically unusable.

Posted: Mon Mar 27, 2006 1:20 am
by private_lock
Hello dandandaman!
  1. First I thank you for this clear statement. It was what I was hunting the forum for :-) Please consider making this thread sticky because more people might find the explanations quite useful!
  2. Was it a political decision to abandon those XML-formats or was it just to tedious to edit them compared to the *.csv?

    Will the ./weapons_list.xml and ./factions.xml also get transformed to *.csv? What about the ./universe/milky_way.xml and all those *.system?
  3. There are quite a lot more XML files in the units directory:

    ./units/admonisher/admonisher
    ./units/admonisher/admonisher.blank
    ./units/admonisher/admonisher.template
    ./units/aelar/aelar
    ./units/aelar/aelar.blank
    ./units/aelar/aelar.template

    Do I get you right, that all those are deprecated too???

    Actually the ./units/units.csv contains equivalent data.

    If so, this should be indicated in http://vegastrike.sourceforge.net/phpwi ... tUnitFiles
  4. Regarding the contents of ./units/units.csv What is the 'Cargo' column good for? Why do some bases have a hard wired Contraband/Pilot in their cargo hold? And imagine a Pilot off 367 metric tons :-) To me the whole column seem utterly superfluous.
  5. The Cargo_Import column has many duplicate entries where this redundancy introduces a source of errors. Perhaps one could imagine an import tag to indicate, that 'starfortress.blank' and 'starfortress.template' are exactly the same as 'starfortress'.
  6. Anyway I still didn't get the use for those template and blank copies ...

    Actually they differ in the preset of upgrades. But then I would consider it streight forward to have a single base ship with basic statistics. In addition the 'Upgrades' column would be enhanced to this format:

    {VARIANT(string);PRICE(percentage);FIXED(boolean);{filename(string);mountoffset(int);subunoffset(int)}}

    And the new shield levels and such stuff will be derived from the according upgrades. The total price calculates as the sum of all subcomponents multiplied by the second parameter to simulate the discount for beeing such a good customer and taking the ship as is.

    This would also open the door to some randomly preassembled ships, like with a realworld car dealer.

    BTW. can I sell upgrades, that came via the 'Upgrades' column or are those hardwired into the ship? If they are not in the normal ship-dealers upgrades, am I prevented from installing a second shield? Will the effects of several shields add up?

    To me it would be more natural to have a third flag indicating whether a preset was fixed or not. Fixed items appear in gray in the upgrade-screen and never show a button. This allows to verify, they are there and view their statistics. It is obvious to the user, why he cannot buy another shield.

    In addition those preinstalled components might suffer damage and can be repared that way.

    All in all I would consider this a mayor step in reducing redundancy, since this system guarantees consitent data. All values are calculated by taking the base and modifying it through exactly one merged level of upgrades (preinstalled or bought later).
  7. Once I fly a ship with Cargo_Import and a Dock, will computer AI controlled ships be able to land on my 'dodo' and trade 'Fuels/Crude' and 'Compressed_Gasses'? Will this affect my balance and hold volume?


Hello JumpinDuck!

First make a backup copy of units/units.csv, then open it with your favourite spreadsheet program, I take OpenOffice Calc.

It will offer an import-dialog for items seperated by commata ','

Goto the far left to column CX that reads 'Mounts', the line below is the format of values to expect:

{type(string);ammo(int);volume(meters);SIZE(string);x(meters);y(meters);z(meters);
xyscale(meters);zscale(meters);forex(meters);forey(meters);forez(meters);
upx(meters);upy(meters);upz(meters);functionality(percentage);maxfunctionality(percentage)}

For the "llama.begin" 's 6 mounts this is:

{;;;LIGHT MEDIUM SPECIAL;1.01200;-6.80000e-2;3.40800;;;;;;;;;1;1}
{Tractor;;;LIGHT MEDIUM PECIAL;-0.964000;-6.80000e-2;3.40800;;;;;;;;;1;1}
{Laser;;;LIGHT;0.380000;0.176000;1.07600;;;;;;;;;1;1}
{Laser;;;LIGHT;-0.336000;0.176000;1.07600;;;;;;;;;1;1}
{dumbfire;16;48;LIGHT-MISSILE MEDIUM-MISSILE SPECIAL-MISSILE;0;0;0;;;;;;;;;1;1}
{dumbfire;16;48;LIGHT-MISSILE MEDIUM-MISSILE SPECIAL-MISSILE;0;0;0;;;;;;;;;1;1}

If you match the corresponding columns you get these three types of mounts (two of every kind):

Code: Select all

{type(string);                {;
ammo(int);                    ;
volume(meters);               ;
SIZE(string);                 LIGHT MEDIUM SPECIAL;
x(meters);                    1.01200;
y(meters);                    -6.80000e-2;
z(meters);                    3.40800;
xyscale(meters);              ;
zscale(meters);               ;
forex(meters);                ;
forey(meters);                ;
forez(meters);                ;
upx(meters);                  ;
upy(meters);                  ;
upz(meters);                  ;
functionality(percentage);    1;
maxfunctionality(percentage)} 1}

{type(string);                {Laser;
ammo(int);                    ;
volume(meters);               ;
SIZE(string);                 LIGHT;
x(meters);                    0.380000;
y(meters);                    0.176000;
z(meters);                    1.07600;
xyscale(meters);              ;
zscale(meters);               ;
forex(meters);                ;
forey(meters);                ;
forez(meters);                ;
upx(meters);                  ;
upy(meters);                  ;
upz(meters);                  ;
functionality(percentage);    1;
maxfunctionality(percentage)} 1}

{type(string);	              {dumbfire;
ammo(int);                    16;
volume(meters);               48;
SIZE(string);                 LIGHT-MISSILE MEDIUM-MISSILE SPECIAL-MISSILE;
x(meters);                    0;
y(meters);                    0;
z(meters);                    0;
xyscale(meters);              ;
zscale(meters);               ;
forex(meters);                ;
forey(meters);                ;
forez(meters);                ;
upx(meters);                  ;
upy(meters);                  ;
upz(meters);                  ;
functionality(percentage);    1;
maxfunctionality(percentage)} 1}

Most interesting to you will be the volume(meters) and the SIZE(string).

Another way would be to locate your favourite missile in the weapons_list.xml

Code: Select all

<Missile name="AdvTorpedo" mountsize="heavy-missile">
  <Energy rate="0" refire="20" locktime="4" /> 
  <Damage rate="80000" phasedamage="65000" longrange="1" radius="250" radialspeed="800" /> 
  <Distance speed="850" pulsespeed="15" range="1000000" detonationrange="60" volume="100" /> 
  <Appearance file="torpedo" soundwav="missile_3.wav" /> 
</Missile>
The mountsize="heavy-missile" along with the volume="100" is what normally prevents Llama's form having those :-) Normally, you know ...

If you don't want your abuse also to be exploited by the computer, you should think of how common your ships-type is in the universe compared to how many AI-controlled ships will be able to load the forged missiles. Perhaps it is best, if you tweak both files to meet somewhere in the middle.

HTH
private_lock

Posted: Mon Mar 27, 2006 1:24 am
by Privateer Ferrius
The XML files are no longer used for new ships, but compatability with it is kept for older ship models. Should you wish, you CAN create new ship entries using XML, however. It just wouldn't be following the new standard ;)

Posted: Mon Mar 27, 2006 2:00 am
by loki1950
quick caveat about spreadsheets progs and csv files don't use Exel it borks the file on saveing :twisted:

Enjoy the Choice :)

Posted: Mon Mar 27, 2006 2:16 am
by Privateer Ferrius
OpenOffice works fine, though :)

Posted: Mon Mar 27, 2006 12:22 pm
by www2
@private_lock and @dandandaman

i work on this part op the projet...
only is in the multiplay/mmog area...

link for my projet (on the forum)
http://vegastrike.sourceforge.net/forum ... php?t=6542

Posted: Fri Mar 31, 2006 1:42 pm
by dandandaman
private_lock:

man that's a lot of questions! sorry bout the delay, but here's some answers...

a) I'll get it wiki-ised I think instead... but ya, that's stuff that really needs to be covered somewhere

b) two main reasons ... first was that it was hard to batch-balance everything when it was in seperate files, and the second that loading and parsing tons of seperate xml files was a bit of a slowdown, so having one .csv file already loaded when it came to launching units sped things up a bit

c) Yup, all the xml unit files are deprecated. But no, that page need not be updated as it is in the old wiki. The new wiki has this incomplete page instead:
http://vegastrike.sourceforge.net/wiki/ ... _units.csv

d) Cargo make sure that the unit is launched with that cargo in its hold already (I believe). Why Pilots? Dunno...

e) .blanks and .templates aren't going to exist for much longer....well, i hope....so this shouldn't be a problem

f) sounds mighty similar to the plan!

g) Your hold volume, yes .. your balance...good question!

Dan

Posted: Fri Mar 31, 2006 7:33 pm
by drvoke
dandandaman wrote:d) Cargo make sure that the unit is launched with that cargo in its hold already (I believe). Why Pilots? Dunno...
Isn't this so that when you blow up a ship, it ejects a pilot pod along with the cargo?

Posted: Sat Apr 01, 2006 2:38 am
by dandandaman
drvoke wrote:Isn't this so that when you blow up a ship, it ejects a pilot pod along with the cargo?
That's the result ... but why, on bases, it'd be the plan I don't know :-)

Dan

Posted: Wed Apr 05, 2006 5:07 pm
by private_lock
Hello drvoke and thanks to dandandaman

d) Following this philosophy in 0.4.3 only very few units could eject a pilot:
Starfortress, Vitik and Yavok in different flavours... In addition, only Llama.begin will blow out some upgrades. Since there are definitely more pilots swirling around in the void, this cannot be the only source. Moreover I wonder if those units are automatically detected for carrying contraband.

When I bought a new ship the other day, I noticed some new cargo I hadn't bought, including some mission-cargo for dump because I definitely had no mission going on. Strange!

f) Now I consider myself being really intelligent for coming up with the same idea as you guys :-)

g) So far I didn't notice any AI docking with me ... How will I find out? I never noticed someone requesting a clearence from me ...

When granting clearence it would be logic to treat the situation the same way, as if I initiated the docking myself in putting me into the 'base screens' for the other ship, so that I can trade my cargo myself. No need for a new interface ...

Thats it for now
private_lock

Posted: Wed Apr 12, 2006 2:15 am
by Halleck
Agreed, this info could stand to be in the wiki somewhere. A full breakdown of the data tree would be nice, perhaps as subpages to Development:CVS Tree.