Home » Stars! Clones, Extensions, Modding » FreeStars » Don't Let the Stars Fade Away
| |
Re: Don't Let the Stars Fade Away |
Thu, 13 September 2007 16:12 |
|
PaulCr | | Chief Warrant Officer 3 Stars! V.I.P
| Messages: 187
Registered: February 2007 Location: An Island that kinda look... | |
|
If anybody is interested, I've update the xml parser to include the following types which means getting information from unencrypted .x files is pretty much complete.
10 Repeat Checkbox
23 Split fleet
35 Planet info (Route/Driver target/research contribution)
36 New Password
37 Merge Fleet
40 Messages
43 Detonate minefields
44 Fleet Rename
I've not been able to create a .x file that includes something else except for Type 9 which is probably the serial No/Machine ID, 24 which precedes 23 and only seems to include the fleet no it applies too which is included in 23 anyway so can be ignored and type 46 that occurs until you receive a .m file from your first processed orders, usually the first unless you've missed turns. It occurs even if you save a .x file without any orders.
Presumably it is the host requesting something it needs once only but I can't think what since the Serial No and Machine ID is probably passed every time in type 9 which always occurs in the .x file.
I pretty confident I've tried possibly option on the interface that changes the .x files, if somebody notices an unrecognised type or something that appears wrong can they let me know.
Report message to a moderator
|
|
| | | | | | |
Re: Don't Let the Stars Fade Away |
Thu, 04 October 2007 06:51 |
|
|
More suggestions for future additions, if you don't mind.
Ability to set the maximum attainable speed and maximum safe speed of an engine in the component editor - so we can add high-tech engines that can hit warp 11, say, or make earlier ones dangerous to use at warp 9.
In the host's new game menu, aility to set global tech modifiers - such as maximum attainable tech level in each field, research cost modifiers in each field, and starting tech levels (perhaps possibly even negative tech levels?)
In host menu, set the starting average mineral concentrations and/or upper and lower bounds, and modifier for maximum planet population. Possibly an ability to modify hab distribution.
Regarding new component creation in the component editor, I forgot to mention a checkbox to determine if a weapon follows the kill-limit rule (as missiles/torpedoes do) or not.
Ability to change the size of the battle board.
Report message to a moderator
|
|
| |
Re: Don't Let the Stars Fade Away |
Fri, 05 October 2007 12:40 |
|
yartrebo | | Petty Officer 3rd Class | Messages: 43
Registered: July 2006 Location: North America | |
|
Quote: | Currently, max safe speed is derived from fuel usage, (as I posted once at the Academy) though I'm not sure if you can actually make for example Warp7 unsafe for any given engine by just increasing its fuel usage over the threshold with StarsMod.
|
In my stars! clone, it is handled by three variables:
unsigned int max_warp; // Maximum warp speed engine is capable of doing (always 10 for engines from stock stars!, and always 0 for other parts).
unsigned int * warp; // Fuel usage for each warp (engines only), as percent of normal. Set to NULL if max_warp is == 0.
unsigned int max_safe_warp; // Maximum warp speed engine can be used at safely. Above this, there is a 10% risk of losing the ship per warp speed above the safe speed. For stock stars!, this value is always either 9 or 10.
This can handle any absolute maximum warp and maximum safe warp speed, and the fuel usage table is of variable size, meaning there is no realistic limit on max_warp.
Report message to a moderator
|
|
|
Re: Don't Let the Stars Fade Away |
Fri, 05 October 2007 22:04 |
|
|
Yartebo - you have a clone project going too? Post a URL or something, mate!
As an aside, wouldn't it be etter for people to work together and get one complete clone finished rather than have 5-12 projects nearly identical externally but too different internally to combine, languishing in a perpetual unfinished state?
Report message to a moderator
|
|
|
Re: Don't Let the Stars Fade Away |
Sat, 06 October 2007 00:16 |
|
yartrebo | | Petty Officer 3rd Class | Messages: 43
Registered: July 2006 Location: North America | |
|
Quote: | Yartebo - you have a clone project going too? Post a URL or something, mate!
|
I'm not sure where it would be appropriate to have it hosted. Perhaps Savannah or Sourceforge? For now, if you want a copy of the source, ask and I'll email it to you.
Before I would post it online, I would like to come up with a name for it. For now my project directory is 'sclone', but surely a better name can be thought of.
Quote: | As an aside, wouldn't it be etter for people to work together and get one complete clone finished rather than have 5-12 projects nearly identical externally but too different internally to combine, languishing in a perpetual unfinished state?
|
A year ago I tried to work on the freestars! project, but Leit was busy and it was hard for me to figure out how the code worked or to start debugging the myriad bugs that are in it.
Instead, I've decided to start my own project from scratch with the intention of getting a working server released before soliciting contributions. My experience is that I work many times faster on code I write from scratch than trying to figure out how to tie code into other code if the other code is moderately or very buggy (and freestars! is very buggy, which is quite understandable considering it is pre-alpha).
Progress on the server is coming along very fast considering I started less than a week ago (2,655 lines of ANSI C code, maybe 10% done - took about 20 hours according to my logs). I get to work in my favorite language (C) and use all my coding, naming, and design conventions as well as specifying the file format.
Report message to a moderator
|
|
|
Re: Don't Let the Stars Fade Away |
Sat, 06 October 2007 07:34 |
|
m.a@stars | | Commander | Messages: 2765
Registered: October 2004 Location: Third star to the left | |
|
yartrebo wrote on Sat, 06 October 2007 06:16 | Progress on the server is coming along very fast considering I started less than a week ago (2,655 lines of ANSI C code, maybe 10% done - took about 20 hours according to my logs). I get to work in my favorite language (C) and use all my coding, naming, and design conventions as well as specifying the file format.
|
Wish I could devote so much free time to my own project. Though when I started it was fast going too.
Are you planning to make room for things like Primitive Stars, Scenario games, bigger universes, or things like that?
So many Stars, so few Missiles!
In space no one can hear you scheme! Report message to a moderator
|
|
|
Re: Don't Let the Stars Fade Away |
Sat, 06 October 2007 10:21 |
|
yartrebo | | Petty Officer 3rd Class | Messages: 43
Registered: July 2006 Location: North America | |
|
Quote: | Are you planning to make room for things like Primitive Stars, Scenario games, bigger universes, or things like that?
|
Overall it's a very flexible engine. Max universe size is 2^32-1 planets and 2^32-1 universe size. Most other things are limited to 2^32-1.
The .def file can include preloaded planets, homeworlds, ships, technologies, and any other element of a game. The universe generation code uses the same loading code as the code for running a turn.
For things like primitive stars!, I don't have plans for any race checking beyond forcing RW points to be zero or above; however, such checking could easily be added by adding a <RACE RULES> section to the .def and universe files and the matching C code in the program.
Report message to a moderator
|
|
| |
Re: Don't Let the Stars Fade Away |
Sun, 07 October 2007 04:58 |
|
Orion | | Crewman 2nd Class | Messages: 15
Registered: November 2005 Location: Strasbourg, France | |
|
Quote: | Instead, I've decided to start my own project from scratch
|
Yartrebo, what kind of file format are you using to communicate between a client and your server ? The same as FreeStars ?
[Updated on: Sun, 07 October 2007 05:00] Report message to a moderator
|
|
| | |
Re: Don't Let the Stars Fade Away |
Sun, 07 October 2007 12:32 |
|
m.a@stars | | Commander | Messages: 2765
Registered: October 2004 Location: Third star to the left | |
|
yartrebo wrote on Sun, 07 October 2007 17:34 | It's not the same as freestars!. It's an ASCII format, but it is more compact and readable form, though it is not standardized the way XML is.
|
Wow, mamma! I must admit I was hoping for something *really* compact, such as:
Quote: | Cruiser: 15 8 0 0 0 9 0 0 (meaning: type 15=ship hulls, 8th hull, req const9) 90 85 40 5 8 28 (mass, cost and itemID)
Class/Initiative bits 133; Xtra/Role bits 12 (meaning: it's armed, a skirmisher/escort type and a small target); Fuel 600; Armor 700
SlotDef 7 1 2 6148 1 6148 1 48 2 48 2 6462 2 12 2 (7 slots, plus type & capacity for each)
SlotPos 49 35 67 21 85 55 53 (encoded X Y coords, as in the original game, even if it needs a calculator to read/modify)
|
I feel that, even splitting the slot codes to nicer things like SHIE|ELEC|MECH to make it more readable, it would still be nicely compact, particularly when there's 200+ items in the list.
So many Stars, so few Missiles!
In space no one can hear you scheme! Report message to a moderator
|
|
|
Re: Don't Let the Stars Fade Away |
Sun, 07 October 2007 14:18 |
|
yartrebo | | Petty Officer 3rd Class | Messages: 43
Registered: July 2006 Location: North America | |
|
Quote: | Cruiser: 15 8 0 0 0 9 0 0 (meaning: type 15=ship hulls, 8th hull, req const9) 90 85 40 5 8 28 (mass, cost and itemID)
Class/Initiative bits 133; Xtra/Role bits 12 (meaning: it's armed, a skirmisher/escort type and a small target); Fuel 600; Armor 700
SlotDef 7 1 2 6148 1 6148 1 48 2 48 2 6462 2 12 2 (7 slots, plus type & capacity for each)
SlotPos 49 35 67 21 85 55 53 (encoded X Y coords, as in the original game, even if it needs a calculator to read/modify)
|
I would like the files to be hand readable/editable. If the server throws an error, it would be nice to know how to fix it instead of staring at one of your cryptically coded lines. Sure, they're compact, but I would need the source code or a very well written description to be able to decipher it, and I still need to put in that deciphering effort.
I've also placed some extra flexibility in my design. Types (such as "Engine" or "Starbase Hull") can be mixed and matched without limit, both for the slots and the parts that fit into them (the criterion being if (slot.type & part.type)), so you could very well design a hull that has any property of a ship part, such as built in beam capacitors or shielding. You can also design a part that can be used as both a hull and a part, or both a ship and starbase hull. Stock stars! doesn't need any of that, but they could be used for modding.
Fighters in particular would be nice to have as both a hull and part. That way you could either have it as a free-standing design or as a part carried by a mothership.
I have made plans for an asn1 binary encoded version, which should be very compact (asn1 being a binary nested general purpose format used for certain internet protocols such as LDAP), but I won't implement it unless there is overwhelming demand.
PS: I do not plan for any encryption with the possible exception of race files. For all other files, openness is best and properly generated files (no excess information) and proper checking (no invalid orders) will leave no room for cheating. If you try to cheat (defined as sending any order that you are not able to do), the server will say which player is out of line and refuse to gen the turn.
Report message to a moderator
|
|
|
Re: Don't Let the Stars Fade Away |
Sun, 07 October 2007 23:20 |
|
|
That's cool.
Can you add a brand new component type? Let's say, a "hangar" type slot, and new tech components of the appropriate type, fighters, can only be added to the hangar slots on certain hulls? Or maybe a hangar/weapon slot or two. -shrug- This would please all the people that love fighters I guess... the hard part would be implementing them in combat, unless you want to just abstract them as a weapon with a visual effect of a little craft that flies out to the target, causes an explosion, and returns, this would be relatively easy but wouldn't allow interception and etc. fun dynamics. If they could appear as little ships that are only targetable by other fighters or gatling type weapons, now... Also, creating them this way instead of as actual ship hulls could reduce the needed micromanagement and make them different from a simple frigate swarm.
I think they're really not necessary but it'd be interesting to try.
[Updated on: Sun, 07 October 2007 23:28] Report message to a moderator
|
|
|
Re: Don't Let the Stars Fade Away |
Mon, 08 October 2007 00:04 |
|
yartrebo | | Petty Officer 3rd Class | Messages: 43
Registered: July 2006 Location: North America | |
|
Quote: | Can you add a brand new component type? Let's say, a "hangar" type slot, and new tech components of the appropriate type, fighters, can only be added to the hangar slots on certain hulls?
|
My plan is to indeed have a 'fighter' slot type. Fighters are very small hulls with room for an engine and a fuel tank. They come with a built-in weapon (the weapon is included as part of the hull). When you start combat, fighters are spawned from the mothership and given a special fighter engine (speed 10, no FTL capacity, cannot be used normally). You can use the hull normally, but then you have to pay extra for a warp-capable engine and a fuel tank (unless the ship uses a ramscoop or is always escorted). Spawned fighters are removed after the combat whether or not they survive.
Also, the mothership will replace any destroyed fighters after battle for free, making them free chaff if your motherships survive. They also don't take mine damage.
Early game fighters (say, X-ray fighter) will cost about 2/6/2/8, come with perhaps 10/10 armor/shields, and have base movement of 1 1/2 (with speed 10 engine). Late game fighters (say, pulverizer fighter) will cost perhaps 8/20/8/30, come with about 100/100 armor/shields, and have base movement of 2 1/2 (with speed 10 engine). Fighters get a built-in jammer (25% to 75%) due to their small size.
Fighters require construction and weapons tech to build.
Fighter desireability is based on the cost of the ship part installed on the mothership.
All fighters get creamed by beamers and are effective at fighting missile ships (or at least not dying too fast because of overkill and jamming). Fighters do not get any bonuses from the mothership, so a Nubian sporting pulverizers and capacitors will still outgun a Nubian sporting loads of pulverizer fighters. Low-tech fighters make an excellent nuisance ship to distract the enemy. At 10/10 armor/shields, they make a tempting target to enemy torpedoes and missiles.
All fighters have 8kT mass (same as a frigate or scout).
Fighters have very high initiative, ranging from around 12 for very basic ones to around 36 for top end ones. Since a fighter has a built-in weapon and cannot fit computers, this is not as high as it sounds and can be surmounted, but not cheaply.
[Updated on: Mon, 08 October 2007 00:06] Report message to a moderator
|
|
|
Re: Don't Let the Stars Fade Away |
Mon, 08 October 2007 10:21 |
|
m.a@stars | | Commander | Messages: 2765
Registered: October 2004 Location: Third star to the left | |
|
yartrebo wrote on Sun, 07 October 2007 20:18 | I would like the files to be hand readable/editable. If the server throws an error, it would be nice to know how to fix it instead of staring at one of your cryptically coded lines. Sure, they're compact, but I would need the source code or a very well written description to be able to decipher it, and I still need to put in that deciphering effort.
|
As long as it's text, it's hand-editable. And yes, the list header has all the necessary descriptions (or at least it should). It can even be edited with Excel for those who like their columns neatly aligned.
And with the data being essentially the same, and needing the same checks, nothing will prevent the server from outputting all the nice & useful error messages it wants, whatever the entry format.
About deciphering I've been thinking that indeed something like WEAP|SHIEL|SCAN is neater/easier to read/understand than 6128, not as easy to mangle, and only a bit less compact and "edible" by the server itself. I'm just yet to spend the time coding it.
Quote: | I've also placed some extra flexibility in my design. Types (such as "Engine" or "Starbase Hull") can be mixed and matched without limit, both for the slots and the parts that fit into them (the criterion being if (slot.type & part.type)), so you could very well design a hull that has any property of a ship part, such as built in beam capacitors or shielding. You can also design a part that can be used as both a hull and a part, or both a ship and starbase hull. Stock stars! doesn't need any of that, but they could be used for modding.
|
That seems very flexible, indeed. I haven't gone beyond the basic capability of adding shields/cargo/armor/fuel and the like to hulls/parts. Things such as Fighters sound cool, if you can meaningfully insert them with the rest of gameplay.
Quote: | Fighters in particular would be nice to have as both a hull and part. That way you could either have it as a free-standing design or as a part carried by a mothership.
|
That will make the Battleboard a lot more interesting/complex, I bet.
Quote: | I have made plans for an asn1 binary encoded version, which should be very compact (asn1 being a binary nested general purpose format used for certain internet protocols such as LDAP), but I won't implement it unless there is overwhelming demand.
|
Perhaps for the bigger scenarios where the amount of special rules needs significant space?
Quote: | PS: I do not plan for any encryption with the possible exception of race files. For all other files, openness is best and properly generated files (no excess information) and proper checking (no invalid orders) will leave no room for cheating. If you try to cheat (defined as sending any order that you are not able to do), the server will say which player is out of line and refuse to gen the turn.
|
I guess at least some sort of CRC-checking will be needed, if only to detect file corruption.
So many Stars, so few Missiles!
In space no one can hear you scheme! Report message to a moderator
|
|
|
Goto Forum:
Current Time: Sun May 05 23:36:37 EDT 2024
|