Tech Tree Java App - Updated 12/9/10

Research and Development in the SotS universe.
Post Reply
User avatar
Arkalius
Posts: 441
Joined: Tue Jun 20, 2006 6:06 am

Tech Tree Java App - Updated 12/9/10

Post by Arkalius » Sat Oct 18, 2008 8:42 pm

Hello all... it's been a long time since I've been around, but I come bearing gifts :)

I have created a Java application that can read the SotS tech tree data and present it in Tree format providing you a lot of data on all the techs in the game, including link and average cost, true probabilities of acquiring a tech, requirements and all that. You can download a zip file containing the jar for the app from this link:

Download the App

To run it, all you need is to have a recent Java Runtime installed on your computer, and you should be able to just double-click the jar file on your system to open it. It might be the case that something other than java is set to open jar files (like WinRAR). If that is the case, you'll have to change the association to your JRE installation's java.exe.

When you first run the program, it will ask you where your SotS installation is. Once you set it, it will load the data for the tech tree. It should remember this setting and it won't have to ask you again. If you want to change the location, you can do so in the menu at the top. Also, if you wish, you can load custom data files into the program, as long as they are proper tech tree format and don't contain any races beyond the 6 in AMoC. If you select this option, it will ask you for the tech tree file, then the Strings file. This is the Strings.csv file in your SotS localization data gob. It is needed for tech descriptions. If you have a custom one, use that. Otherwise you'll have to extract the original from the gob.

This version should work with any version of SotS up to Argos Naval Shipyards (and beyond possibly).

The techs are presented in a tree format, with the base elements being the roots of the different tech families. Keep in mind that when you select any tech in the tree, you are really selecting the link to a tech. You can also search for any tech name. You will get the following information:

Name - obvious
Link Cost Level - The research cost of this link, relative to a base cost level. Multiply this value times 1000 to get the actual research point cost.
Tech Average Cost Level - The average cost in the same units as above for the tech, based on the cost of each of the links that lead to it
Description - obvious
Power Era - Tells you which power level you must have researched for this tech to be available
Hull Era - Same as above, but for hull size
Group - The group this tech belongs to, if any (used for requirements)
Requirements - Other techs that must exist before this tech will be available for reasearch - this has nothing to do with links. Some requirements are groups
Link Probabilities - The probability that this link exists for each race
Tech Probabilities - The overall combined probability that this tech will be available for each race, considering all links and requirements
Link Average - The overall average chance that this link exists for all races. Note that if only one race gets the tech, then this value will just be the probability for that race
Also Allowed By - Shows the other techs that lead to this tech, if any.

I hope people will find this program useful. If you have any ideas on improvements that you'd like to see to it, I'm open to suggestions. If you are interested in seeing the source code, contact me and I can provide it for you.

Enjoy!

UPDATE 12/9/10 - A bug in the probability calculations was causing a wrong probability to show up for some techs in certain circumstances. This has been fixed... at least partially. I'm continuing to investigate the probability calculations to be sure.

UPDATE 4/25/10 - Noticed the attachment was missing, so I've set up an external link where you can download the app above. It hasn't changed since the last update in 2009, so if you already have it, no need to re-download :)

UPDATE 7/28/09 - gozer found that the app wouldn't load the custom tech tree from the ACM mod. The mod has a couple of minor glitches in the tech file that the app couldn't handle. It's now fixed and can load the file fine.

UPDATE 7/3/09 - Added new search functionality per the suggestion by Desertfox. You can now search for a technology name. It looks for any tech with a name that includes the exact text you enter. You can iterate through multiple matches with the F3 key. Let me know how you guys like it and if there are any other improvement suggestions.
Last edited by Arkalius on Fri Dec 10, 2010 7:38 am, edited 14 times in total.
-Arkalius

Check out my SotS2 tech tree java app!
For the SotS prime player, grab the original tech tree java app.

User avatar
Slasher
Platinum Post
Posts: 6934
Joined: Sat Jan 20, 2007 3:10 am

Re: Tech Tree Java App

Post by Slasher » Sat Oct 18, 2008 9:08 pm

Really, REALLY nice little app...
You have the gratitude of the Hive...

The only suggestions I can think of would be adding link RP cost and total RP cost for each tech.
Other than that it would be cool if it would also show what sections and weapons each tech allows and their stats. That would properbly require half the gob to be scanned for data, so it seems a tad excessive to expect...
As it is, this program is already quite handy.
Image
Image

User avatar
Arkalius
Posts: 441
Joined: Tue Jun 20, 2006 6:06 am

Re: Tech Tree Java App

Post by Arkalius » Sat Oct 18, 2008 9:31 pm

I made a change to the app based on your rp cost comment Slasher. Now multiply by 1000 to get the value... much more intuitive. New file attached on original post.
-Arkalius

Check out my SotS2 tech tree java app!
For the SotS prime player, grab the original tech tree java app.

User avatar
Slasher
Platinum Post
Posts: 6934
Joined: Sat Jan 20, 2007 3:10 am

Re: Tech Tree Java App

Post by Slasher » Sat Oct 18, 2008 9:54 pm

Thanks a bunch.
Image
Image

User avatar
GammaPaladin
Cassandra
Posts: 1791
Joined: Mon Oct 06, 2008 4:35 am

Re: Tech Tree Java App

Post by GammaPaladin » Sat Oct 18, 2008 10:36 pm

Nice work :)

I like that it works with my modded tech trees, and presumably future versions of the game ;)

User avatar
Arkalius
Posts: 441
Joined: Tue Jun 20, 2006 6:06 am

Re: Tech Tree Java App

Post by Arkalius » Sun Oct 19, 2008 1:32 am

I just made another update to the file... It's got a slightly better UI now. It uses a split pane that has a slider in the middle that can be resized and a menu that gives author info.
-Arkalius

Check out my SotS2 tech tree java app!
For the SotS prime player, grab the original tech tree java app.

User avatar
Arkalius
Posts: 441
Joined: Tue Jun 20, 2006 6:06 am

Re: Tech Tree Java App

Post by Arkalius » Sun Oct 19, 2008 9:16 am

Added BoB compatible version...
-Arkalius

Check out my SotS2 tech tree java app!
For the SotS prime player, grab the original tech tree java app.

User avatar
erdrik
Posts: 5421
Joined: Thu Aug 24, 2006 7:13 pm

Re: Tech Tree Java App

Post by erdrik » Sun Oct 19, 2008 4:24 pm

errr... for some reason the .jar is associated with winrar for me...

CmptrWz
Posts: 54
Joined: Sat Jan 27, 2007 2:30 am

Re: Tech Tree Java App

Post by CmptrWz » Sun Oct 19, 2008 6:09 pm

That is a problem a LOT of people with WinRAR have.

I recommend you dump winrar and go with 7-zip, myself, but in theory you should, at least, be able to open with and find Java yourself.

Program Files->Java->jre of your choice->bin->java.exe

User avatar
Arkalius
Posts: 441
Joined: Tue Jun 20, 2006 6:06 am

Re: Tech Tree Java App

Post by Arkalius » Sun Oct 19, 2008 6:20 pm

Ah yes... actually open with javaw.exe. That one doesn't attach stdout to a command window and therefore doesn't leave one sitting open on your system.
-Arkalius

Check out my SotS2 tech tree java app!
For the SotS prime player, grab the original tech tree java app.

CmptrWz
Posts: 54
Joined: Sat Jan 27, 2007 2:30 am

Re: Tech Tree Java App

Post by CmptrWz » Sun Oct 19, 2008 7:12 pm

Odd, my jars are associated with java.exe, and I don't get a window up.

May be related to the various versions of Java I have installed, though.

BTW, I don't think it would be that hard to make the code version (or #/name of races) independent. Did you want some help pulling that off?

User avatar
Arkalius
Posts: 441
Joined: Tue Jun 20, 2006 6:06 am

Re: Tech Tree Java App

Post by Arkalius » Sun Oct 19, 2008 9:55 pm

The races are based on an enum which makes the code clean and easy to maintain. I could make it not rely on specific races but it would require a lot of code change and I don't think it would be worth the effort. As it is I can create a version for any combo of races by just altering the enum which is easier than trying to code it dynamically.
-Arkalius

Check out my SotS2 tech tree java app!
For the SotS prime player, grab the original tech tree java app.

User avatar
xRei
Posts: 1173
Joined: Sun Oct 28, 2007 8:46 am

Re: Tech Tree Java App

Post by xRei » Mon Oct 20, 2008 2:53 am

Very nice program. I especially like the 'Tech' variable.. It's sad to see what the 'actual' chance for certain techs is.. like..

Meson Projector..

<1% Zuul. :3
3% Hiver
17% Human
4% Tark
60%(!!!) Liir
45%(!!) Morri
"True glory consists in doing what deserves to be written; in writing what deserves to be read."
- Pliny The Elder
Roman scholar & scientist (23 AD - 79 AD)


"35- Lavamadness fixed a thing with construction ships showing different thingies."
-Mecron
Comment on fix 35 of the AMoC 1.6.3 patch

User avatar
GammaPaladin
Cassandra
Posts: 1791
Joined: Mon Oct 06, 2008 4:35 am

Re: Tech Tree Java App

Post by GammaPaladin » Mon Oct 20, 2008 6:20 am

Zuul Meson Projector boats would be utterly frightening, considering the number of projector hardpoints their projector boats get, and the firing arcs. That's probably why the chance is so low.

I had actually been considering writing a little Java app for displaying (And possibly manipulating) the tech tree, but then I remembered how much I hate UI programming. All my apps are CLI for a reason ;)

User avatar
Arkalius
Posts: 441
Joined: Tue Jun 20, 2006 6:06 am

Re: Tech Tree Java App

Post by Arkalius » Mon Oct 20, 2008 6:25 am

Yes that's the real meat of the program. Calculating that is not the simplest thing in the world, and the calculations took the most debugging. The two things that gave me the most grief is Meson Projectors being in the Projectors group and requiring the Projectors group, and then the two node tracking techs which both lead to each other. Both of these instances caused stack overflows due to recursive method calls looping in on themselves. Basically I had to manually keep track of the recursive stack in the methods to avoid looping around.
-Arkalius

Check out my SotS2 tech tree java app!
For the SotS prime player, grab the original tech tree java app.

Post Reply

Return to “The Tech”

Who is online

Users browsing this forum: No registered users and 2 guests