Home » Stars! 2.6/7 » The Bar » Stars 3
Re: Stars 3 |
Mon, 02 June 2014 10:45 |
|
mrvan | | Officer Cadet 1st Year | Messages: 220
Registered: May 2014 | |
|
Not to take attention away from the pretty lights, but if we want to move forward with this I think
1) everyone interested in contributing should approve or critique the current engine setup
2) everyone interested in contributing should pick one (preferably simple) step in the order of events and do a first (possibly incomplete) implementation
I think tasks that are simple to implement are: [with possible simplifying assumptions in brackets]
16 mining
17 production [limited to factories/mines/defenses/scanners and maybe terraforming?],
19 properly implementing pop growth including planet hab values
2+3+5 wp0 load/unload tasks [limited to colonists][assuming infinite fleet capacity]
I have no preference so I'll happily pick whatever no one else picks.
These are not as romantic as BB fights or fleet design, but I feel that it is important to move the project to a shared project and start getting code out there.
If these basic tasks are there is even becomes possible to make a not totally trivial client; in fact it is enough to do a bit of testbedding on optimal pop growth/resource integrals.
I have not problem helping out with writing python, unittests, and working with git. There is a download as zip link on github so you don't need anything else than python to get started.
[Updated on: Mon, 02 June 2014 10:48] Report message to a moderator
|
|
| | | |
Re: Stars 3 |
Mon, 02 June 2014 13:45 |
|
m.a@stars | | Commander | Messages: 2765
Registered: October 2004 Location: Third star to the left | |
|
I have the working code for the RaceWizard in Javascript (and C), which includes Hab value calculations (as reverse-engineered from the EXE, refactored by me) and Terraforming (crafted by me, and apparently accurate). There's several "unit" tests, and a few comments. It should be easy to port to Python by anyone who knows Python.
I also have the Fuel Usage code, which includes travel & coords calculations (for fleets and packets), as Stars! does them. The packet part includes decay and is apparently accurate.
There's also the old Econ calculator, which includes math about max Terra, Pop, Facts, Mines, etc. Also in js.
My version of the Order of Events is a bit more "deconstructed" and has more smaller sections. We should probably compare notes ASAP.
Last but not least, the All Items Table dumper has a lot of code to deal with techs, items, engines, and hulls that could perhaps be of use somewhere.
So many Stars, so few Missiles!
In space no one can hear you scheme! Report message to a moderator
|
|
| | |
Re: Stars 3 |
Mon, 02 June 2014 14:18 |
|
mrvan | | Officer Cadet 1st Year | Messages: 220
Registered: May 2014 | |
|
m.a@stars wrote on Mon, 02 June 2014 13:45I have the working code for the RaceWizard in Javascript (and C), which includes Hab value calculations (as reverse-engineered from the EXE, refactored by me) and Terraforming (crafted by me, and apparently accurate). There's several "unit" tests, and a few comments. It should be easy to port to Python by anyone who knows Python.
I also have the Fuel Usage code, which includes travel & coords calculations (for fleets and packets), as Stars! does them. The packet part includes decay and is apparently accurate.
There's also the old Econ calculator, which includes math about max Terra, Pop, Facts, Mines, etc. Also in js.
My version of the Order of Events is a bit more "deconstructed" and has more smaller sections. We should probably compare notes ASAP.
Last but not least, the All Items Table dumper has a lot of code to deal with techs, items, engines, and hulls that could perhaps be of use somewhere.
Could you perhaps place the relevant algorithms or js code somewhere organized by "order of events" module? Also, could you post your version of the order of events?
A logical place to post would be a 'docs' or 'design' folder in the repo. If you click on the "+" icon in github and type a slash in a file name, you can create the file right there from the web interface (accept the message about forking).
Also, I would still urge you to try your hand at a simple python module, e.g. mining. As XAP says, the python code is not scary, and I will gladly help you.
Report message to a moderator
|
|
|
Re: Stars 3 |
Mon, 02 June 2014 14:31 |
|
mrvan | | Officer Cadet 1st Year | Messages: 220
Registered: May 2014 | |
|
XAPBob wrote on Mon, 02 June 2014 13:25I presume we're replicating existing behaviour at the moment.
Yes. We will probably introduce flags/settings at some point, especially some rebalancing options would be nice (CA reduced instead of free terra, JOAT less points for NAS, etc)
The only places where I could be tempted to do something right now are the "cheat" enabling bugs like the N-S minefield dodge. We could also consider solving things like the unfinished item rounding bug talked about recently. Also, on borderline cases where it is very difficult to replicate the exact behaviour I would be tempted to settle for 'good enough', especially for a first version.
Come to think of it, what about a rough release plan like:
0.1 - single player mode, no tech tree, fixed ship designs (e.g. scout, colonizer, medium freighter), limited PRT's/LRT's. Good enough for benchmarking pop/resource growth.
0.2 - full single player mode. Good enough for all offline games we play now without the AI
0.3 - multiplayer mode, without wormholes/MT/minefields
1.0 - full clone (except for AI)
1.x - extra options, especially for balancing and alternative rule sets
[Updated on: Mon, 02 June 2014 14:37] Report message to a moderator
|
|
| | | |
Re: Stars 3 |
Mon, 02 June 2014 17:04 |
|
XAPBob | | Lt. Commander | Messages: 957
Registered: August 2012 | |
|
I threw in min damage/doubled growth as examples of "contentious" bugs.
I *do* think we should have actual damage recorded, rather than 1/512ths, possibly even per ship???
But that's quite a way away (and we could impose a minimum damage value deliberately)
[Updated on: Mon, 02 June 2014 17:21] Report message to a moderator
|
|
| | | | |
Re: Stars 3 |
Tue, 03 June 2014 02:27 |
|
XAPBob | | Lt. Commander | Messages: 957
Registered: August 2012 | |
|
Yes, an array that can be appended to from eh module is about right.
Maybe a tools.message(player,message)?
[Updated on: Tue, 03 June 2014 02:29] Report message to a moderator
|
|
| | |
Re: Stars 3 |
Tue, 03 June 2014 04:31 |
|
m.a@stars | | Commander | Messages: 2765
Registered: October 2004 Location: Third star to the left | |
|
XAPBob wrote on Tue, 03 June 2014 08:27Yes, an array that can be appended to from eh module is about right.
Maybe a tools.message(player,message)?
And logs. Plenty of logs for bookkeeping, bug-tracing, statistics, end-of-game summaries, "first" awards, etc.
So many Stars, so few Missiles!
In space no one can hear you scheme! Report message to a moderator
|
|
|
Re: Stars 3 |
Tue, 03 June 2014 04:34 |
|
XAPBob | | Lt. Commander | Messages: 957
Registered: August 2012 | |
|
m.a@stars wrote on Tue, 03 June 2014 09:29XAPBob wrote on Tue, 03 June 2014 01:12Overcrowding formula?
Red planet formula?
I have seen the math for those 2 somewhere but IIRC recently some1 posted about Resources from overcrowded planets.
Thanks, not dealing with resources at the moment, just growth (or death)
Quote:
Dunno if recording dmg per ship will need too much space. At any rate, the Jeffs used just 2 buckets, we could use more (in the future).
Well, the design contains the "original armour/shield" values, so we only need two integers - It depends how constrained we feel for space of course, and with JSON it can be added later
Quote:
As for the messages, don't forget to add a "class" tag to them, for filtering. The more classes, the finer the graining.
Class per "OoE" or arbitrary class IDs (maybe prefixed by an OoE ID?)
[Updated on: Tue, 03 June 2014 04:40] Report message to a moderator
|
|
| |
Re: Stars 3 |
Tue, 03 June 2014 04:45 |
|
m.a@stars | | Commander | Messages: 2765
Registered: October 2004 Location: Third star to the left | |
|
XAPBob wrote on Tue, 03 June 2014 10:34the design contains the "original armour/shield" values, so we only need two integers - It depends how constrained we feel for space of course, and with JSON it can be added later
2 Ints, times 2 (or 4) bytes each, times all tokens (or all independent ships) in the game can get big... All the more reason to have separate fleet data per player, so as to not require excessively large amounts of contiguous storage.
Quote:Class per "OoE" or arbitrary class IDs (maybe prefixed by an OoE ID?)
Or per module. Dunno, it'll be used by the client, so just keep it simple. Improve later!
So many Stars, so few Missiles!
In space no one can hear you scheme! Report message to a moderator
|
|
| |
Goto Forum:
Current Time: Thu Apr 18 21:06:51 EDT 2024
|