Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Discussion of the space strategy game where you design ships, issue orders to your fleet, then play hands-off battles against human or AI designed enemies.
User avatar
NacNud
Line Manager
Line Manager
Posts: 32
Joined: Mon Aug 31, 2009 6:11 pm

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby NacNud » Sat Sep 19, 2009 3:03 am

Humm, looks interesting BlckKnght. Sadly my programing skills are several years rusty/out of date which is why I just did it by hand.

If you don't mind odds are I'll use the script and try to find a way to work it into the file.
Thanshin
Type II Robot
Type II Robot
Posts: 56
Joined: Mon Sep 21, 2009 5:50 am

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby Thanshin » Mon Sep 21, 2009 6:45 am

Thanks very much for the excel.

I suddenly had a strange need for this as soon as monday morning came. ;)

I'll study it carefully at workpl... home.
User avatar
BlckKnght
Supreme Robot
Supreme Robot
Posts: 183
Joined: Thu Sep 03, 2009 6:31 pm

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby BlckKnght » Mon Sep 21, 2009 6:55 am

NacNud wrote:Humm, looks interesting BlckKnght. Sadly my programing skills are several years rusty/out of date which is why I just did it by hand.

If you don't mind odds are I'll use the script and try to find a way to work it into the file.

Please feel free to use the script in any way you want. If you just want the raw data, you should be able to save from the Google spreadsheet I linked earlier into a variety of formats (including Excel's).
JamesCooper
Supreme Robot
Supreme Robot
Posts: 192
Joined: Sun Sep 20, 2009 5:24 pm
Location: Saskatoon, Saskatchewan, Canada

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby JamesCooper » Wed Sep 23, 2009 10:53 am

lol, that's what I get for not searching the forums first. I was just about to start on making this exact same thing, also in Python (I'm a Python programmer by day). I guess great minds thing alike. :D
User avatar
BlckKnght
Supreme Robot
Supreme Robot
Posts: 183
Joined: Thu Sep 03, 2009 6:31 pm

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby BlckKnght » Mon Sep 28, 2009 7:00 pm

I've updated my google spreadsheet with the module data from version 1.12. It is located at: http://spreadsheets.google.com/ccc?key= ... ZZkE&hl=en
User avatar
BlckKnght
Supreme Robot
Supreme Robot
Posts: 183
Joined: Thu Sep 03, 2009 6:31 pm

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby BlckKnght » Wed Sep 30, 2009 9:17 pm

BlckKnght wrote:I've updated my google spreadsheet with the module data from version 1.12. It is located at: http://spreadsheets.google.com/ccc?key= ... ZZkE&hl=en

I've updated the spreadsheet again, now for version 1.14. I also changed the process I used to import the tab delimited values file into excel so that the quotation marks in the data files are preserved. The URL linked above is still the place to go.
konemaster
Senior Line Worker
Senior Line Worker
Posts: 7
Joined: Mon Oct 12, 2009 4:09 pm

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby konemaster » Mon Oct 12, 2009 4:27 pm

Darn, I already wrote my own python script, extracting stuff.
Yours seems much longer, gotta look into this one when I got some time... maybe you got some more more nifty features.

With the power of the infamous MS Excel 2007 I clicked out some nifty graphic-bars so now I (and maybe you too) can see which stuff is how good against hull or shields
(those shiny yellow-greenish columns).

Image

(Im not so sure about the conversion from fire_interval to fire_s though...)
User avatar
BlckKnght
Supreme Robot
Supreme Robot
Posts: 183
Joined: Thu Sep 03, 2009 6:31 pm

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby BlckKnght » Mon Oct 12, 2009 7:03 pm

konemaster wrote:Darn, I already wrote my own python script, extracting stuff.
Yours seems much longer, gotta look into this one when I got some time... maybe you got some more more nifty features.

I doubt it. I went with the stupidest parser design I thought would actually work. It simply sticks things from opposite sides of the string " = " into a dict. The only remotely clever feature is they way it will stick certain columns at the beginning of the output (and exclude others). If you understand set operations, that part is pretty simple too.

With the power of the infamous MS Excel 2007 I clicked out some nifty graphic-bars so now I (and maybe you too) can see which stuff is how good against hull or shields
(those shiny yellow-greenish columns).

[snip the nifty spreadsheet]

(Im not so sure about the conversion from fire_interval to fire_s though...)

Yeah, the units (especially for time) in the module data are not very clear. I've been meaning to use a stopwatch to see exactly how long on a weapon takes reloading, but I haven't had a chance yet. In the mean time I've just been assuming that time is measured milliseconds, but that's probably wrong. From your table, you are using 1/360 sec, right?

If guessing at units hasn't make your brain hurt yet, try correcting for the fact that missiles can only fire again after their first volley has arrived. That's where it really gets messy. The speed values for missiles (and maybe plasma) are a bit strange, as they don't seem to be on the same scale as the displayed speeds for ship in the game (a missile that is spec'd at 0.5 speed can overtake a fighter moving 3.0).

I'm not sure your stats for shield and armor damage are going to give you good guidance. Thats because it doesn't actually help to have more shield or armor penetration than the resistance of the enemy's shield or armor. As long as is able to penetrate, a weapon will always do its full damage, and penetration versus non-penetration is a hard line. Since a weapon with 27 shield penetration can get through any shield in the game there's no advantage of having more. Even 24 shield penetration is enough to go through all but the Reflective Shield module, so the Proton Beam module and the Federation's Fusion Beam have a big advantage against shields compared to the standard Beam Laser, but this is not obvious in your stats. Armor penetration is a bit more complicated because the armor thickness goes down with damage, but the general issue is the same.
konemaster
Senior Line Worker
Senior Line Worker
Posts: 7
Joined: Mon Oct 12, 2009 4:09 pm

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby konemaster » Mon Oct 12, 2009 8:21 pm

Yeah, the units (especially for time) in the module data are not very clear. I've been meaning to use a stopwatch to see exactly how long on a weapon takes reloading, but I haven't had a chance yet. In the mean time I've just been assuming that time is measured milliseconds, but that's probably wrong. From your table, you are using 1/360 sec, right?


Totally. But I guess it's wrong. I took it cause it somehow is a little bit realistic.
I just sat down with a stopwatch and stopped the time of the heavy plasma...
It's strange: sometimes it uses 7 seconds reload time and sometimes 8,9,10...
Because of not changing the target in this times I guess it must have something to do with the shell not hitting - maybe like the missiles?
But it shouldn't be... somebody should stop some more times to find it out.

If guessing at units hasn't make your brain hurt yet, try correcting for the fact that missiles can only fire again after their first volley has arrived. That's where it really gets messy. The speed values for missiles (and maybe plasma) are a bit strange, as they don't seem to be on the same scale as the displayed speeds for ship in the game (a missile that is spec'd at 0.5 speed can overtake a fighter moving 3.0).


Also you can't factor in the fact that in particular multiple missiles will get their hit chances tripled but also their interception.

I'm not sure your stats for shield and armor damage are going to give you good guidance. Thats because it doesn't actually help to have more shield or armor penetration than the resistance of the enemy's shield or armor. As long as is able to penetrate, a weapon will always do its full damage, and penetration versus non-penetration is a hard line.

[correct and perfect statement omitted]



You're right - totally.
I wanted a total number of a weapon - how much damage it can actually do in average.
So maybe I would have to assume that each weapon has to deal with an average shield/armor etc.
But this would not help very much, wouldn't it?

I'am very confident that there must be a mathematical and short form which could somehow give us a better overview.
Or compute a nice answer to a question like: 'Give me the best ship against THIS enemy.'
What do you think?
konemaster
Senior Line Worker
Senior Line Worker
Posts: 7
Joined: Mon Oct 12, 2009 4:09 pm

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby konemaster » Mon Oct 12, 2009 8:28 pm

Also here is my python program.
Used python 3.1 and had to program somewhat unusual (coming from 2.3+).

Code: Select all

import os
path_GSB = 'C:/Programme/Positech Games/Gratuitous Space Battles'
path_GSB_modules = path_GSB+'/data/modules'

def list_to_dict(str_list,cutoff='[dataitems]'):
    dictionary = {}
    for item in str_list:
        if item.strip() == '[dataitems]':
            break
        if item.find('=')>0:
            key, value = item.split('=')
            dictionary[key.strip()]=value.strip().replace('"','')
    return dictionary

output_file = open('C:/Programme/Positech Games/Gratuitous Space Battles/stats.txt','w')
properties = ['name','damage','fire_interval','max_range','min_range','optimum_range','powerconsumed','shield_penetration','armour_penetration','speed','tracking_speed','turnspeed','weight','crew_required']
seperator = ';'
lf = '\n'
for prop in properties:
    output_file.write(prop+seperator)
output_file.write(lf)
for file_name in os.listdir(path_GSB_modules):
    actual_file = open(path_GSB_modules+'/'+file_name,'r')
    dictionary = list_to_dict(actual_file.readlines())
    if 'category' not in dictionary.keys(): continue
    if 'size' not in dictionary.keys(): continue
    if dictionary['category'] != "WEAPONS": continue
    if dictionary['size'] != "CRUISER": continue
    for prop in properties:
        if prop not in dictionary.keys():
            output_file.write(seperator)
            continue
        output_file.write(dictionary[prop]+seperator)
    output_file.write(lf)
output_file.close()
sys.exit(0)
konemaster
Senior Line Worker
Senior Line Worker
Posts: 7
Joined: Mon Oct 12, 2009 4:09 pm

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby konemaster » Mon Oct 12, 2009 8:48 pm

Learning something new every day...
The set operation is nice, indeed.
I would have tried to get those dictionaries to collide and return the intersection somehow... but I'am to lame to look it up.

Moving on to the mathematical thing, I'll try to come up with something - let's get the facts:
Can we somehow have a look on when shields are absorbing damage / reflecting / letting through?
If we could define this for shields, amor - the weapons will be piece of cake.
User avatar
BlckKnght
Supreme Robot
Supreme Robot
Posts: 183
Joined: Thu Sep 03, 2009 6:31 pm

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby BlckKnght » Mon Oct 12, 2009 10:12 pm

konemaster wrote:I just sat down with a stopwatch and stopped the time of the heavy plasma...
It's strange: sometimes it uses 7 seconds reload time and sometimes 8,9,10...
Because of not changing the target in this times I guess it must have something to do with the shell not hitting - maybe like the missiles?
But it shouldn't be... somebody should stop some more times to find it out.

Hmm, it could be possible that plasma launchers cycle faster when their previous shots hit, since when they misses there will be a projectile flying across the rest of the battlefield. There is a "speed" stat that I'm pretty sure controls how fast it moves (though again, who knows what its units are), and like missiles they have a "fuel" stat that show the maximum distance the projectile can go.

I'm not sure your stats for shield and armor damage are going to give you good guidance. Thats because it doesn't actually help to have more shield or armor penetration than the resistance of the enemy's shield or armor. As long as is able to penetrate, a weapon will always do its full damage, and penetration versus non-penetration is a hard line.

You're right - totally.
I wanted a total number of a weapon - how much damage it can actually do in average.
So maybe I would have to assume that each weapon has to deal with an average shield/armor etc.
But this would not help very much, wouldn't it?

I'am very confident that there must be a mathematical and short form which could somehow give us a better overview.
Or compute a nice answer to a question like: 'Give me the best ship against THIS enemy.'
What do you think?

Hmm, I'm not sure if some "dimensions" of a design can be given useful numerical values, because facing off against different opponents can greatly change the value of a given module. A fleet that devastates opponents who have missiles (because it has lots of PD or guidance scramblers) probably won't do nearly as well against lots of fighters, or against a fleet with lots of plasma launchers. Similarly, a fleet that's strong against one of those may be useless against the original missile fleet.

If you're just trying to characterize the weapon modules, I suspect that the best thing to consider is just their DPS values versus different kinds of targets. So in addition to a raw DPS stat, you'd have a DPS against cruiser shields, one for cruisers with heavy armor, another for fast frigates moving at speed 0.8, and one for fighters going speed 2.75 (and there are plenty more you could play with).

Those more specific DPS values should be pretty easy to calculate. They're just the raw DPS multiplied the hit chance and a factor to account for penetration. Hit probability is 1-(target_speed/tracking_speed), with a minimum of a ~2% chance of a lucky hit. Shields and armor reflect all of the damage from weapons that do not have penetration greater than or equal to their resistance or thickness, except that non-penetrating weapons still deal damage ~2% of the time from critical hits. If the weapon does penetrate it does full damage (so the penetration factor is either 1.0 or 0.02). The 2% values for critical and lucky hit values may not be right, but I can't remember where I saw cliffski mention each of them to double check.

I'd suggest using 24 shield resistance and something like 50 armor thickness for the two cruiser targets, and have them each moving at speed 0.15. For frigates, assume something like 9 resistance of each type. Fighters don't have any resistances worth mentioning, so they must rely on their speed.
Talon
Junior Line Worker
Junior Line Worker
Posts: 3
Joined: Tue Oct 13, 2009 7:22 am

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby Talon » Thu Oct 15, 2009 5:25 pm

This might seem like a silly question but I've been thinking, shouldn't GSB's ship design interface provide a data table like this itself? I mean most of the basic data is presented there, but only for 1 module at a time. It'd be nice if one could view a list of, for example, the weapon modules in this manner, sortable by damage, cost, or any other relevant field. Seriously, for a game where ship design plays such a significant part, why are we relying on external apps to view the data in a more usable format?
konemaster
Senior Line Worker
Senior Line Worker
Posts: 7
Joined: Mon Oct 12, 2009 4:09 pm

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby konemaster » Sat Oct 17, 2009 7:08 pm

Yes, this would actually make sense and I wouldn't need to try to calculate anything.
Cliffski should do the work actually...

Some kind of "Summary" - button which openes a screen with everything listed and summed up at the end.
That would be just terrific, right?
Talon
Junior Line Worker
Junior Line Worker
Posts: 3
Joined: Tue Oct 13, 2009 7:22 am

Re: Modules Stats Beta 1.10 current. Updated: 9/16/09 Ver: 1.15

Postby Talon » Sat Oct 17, 2009 10:37 pm

Well I was thinking more about an alternative view to the current module picker. Instead of a screen with a bunch of icons that all look too much alike, there could be an alternative display that shows a list of the modules with their stats, much like a spreadsheet view. So if one were interested in picking the weapon/armour/whatever with the lowest cost, for example, they could just click the cost field to sort the list by cost. Also, throwing in basic DPS values for the weapons wouldn't hurt either, even if it doesn't take into account any potential enemy shielding/armour it would still be useful just to see how the weapons compare to one another.

Return to “Gratuitous Space Battles”

Who is online

Users browsing this forum: No registered users and 5 guests