Engine Parts

Creation, discussion, and balancing of game content such as techs, buildings, ship parts.

Moderators: Oberlus, Committer

Message
Author
dbenage-cx
Programmer
Posts: 389
Joined: Sun Feb 14, 2016 12:08 am

Engine Parts

#1 Post by dbenage-cx »

MatGB @ http://www.freeorion.org/forum/viewtopic.php?f=28&t=10534#p88512 wrote:My current plan is to simply double all the existing parts, I'd like to simplify ship speeds so they're always a multiple of 20 but that's a lower priority. If they're all doubled then the max speed is 200, and I'm fine with that. 20, 40, 60, 80 are nice simple stat bonuses.
I threw some commits together for this to get a general feel for it.
A few differences from just doubled stats and limiting to one per ship.
Improved(internal): +20 speed cost/time:15/3 (from 10/3)
Dimensional(internal/core): +40 speed cost/time:25/5 (from 20/4)
Transpatial(core): +60 speed (+40 stealth) cost/time:80/8 (unchanged)
Singularity(core): +80 speed cost/time:40/6 (from 30/5)
No changes in techs (but need to update descriptions).

Dimensional drive gains ability to mount in core slot. Gives some access to using core slot earlier in game (e.g. gravitational hull).
If this portion gains acceptance, will need a distinct icon for internal+core type parts.

Singularity Engine Core outperforms Transpatial Drive for raw speed. Might need some flavor text adjustment.
Singularity is the end goal of the speed tech line, where Transpatial is a side-effect within the robotic hull line.
Cost was not changed as it potentially saves a slot for engine + stealth.

Costs were increased starting at 15 (more than most fuel parts, cheaper than shields) and slightly less than double cost for doubled speed.
Added 1 turn to Dimensional build time due to core slot addition.
Added 1 turn to Singularity build time due to Dimensional and top speed status.

Expect costs may want adjustment and some other changes were not discussed previously.

User avatar
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: Engine Parts

#2 Post by MatGB »

dbenage-cx wrote: Expect costs may want adjustment and some other changes were not discussed previously.
No, they weren't, which is why I'm so surprised, how are you spying on my mind? The only thing I wasn't already mulling over was swapping transpatial and singularity in effectiveness, and this makes absolute sense because singularity has far harder prerequisites and should be the 'best' of them.

There has in the past been a core/internal part, possibly the infinite fuel module, but I can't find it currently, probably got removed, possibly because there wasn't a decent display system for it, and I definitely like the idea, we could extend it to some other internal parts that wouldn't hurt being instead in a core slot, especially given we're still short of core slots in general. My biggest concern is it might overbalance the gravitic/titanic hulls a bit but that can be solved with simple cost adjustments.

By the looks of things the part costs might be on the low side but as they don't stack it's harder to judge, the best thing to do is play with them and see how it pans out, thanks for getting started on this.
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

User avatar
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: Engine Parts

#3 Post by MatGB »

I am enjoying this/liking it so far: there is an AI script error when they've got the tech and start trying to use it as designs with multiple engines are invalid.

Big like: because it's not an either/or choice mixed fleets with carriers and escorts have the same speeds, you end up with far fewer mixed fleets and can have carriers with a speed boost.

Reservation: It makes my 'battlecruiser' style designs where I sacrifice shields for more speed completely redundant, I really like having battlecruisers as a class of ship, faster than the normal fleet but weaker and designed for patrol/picket duty instead of line-of-battle doomstack, so while it wasn't a good implementation before it's now redundant and it would be good to change things in some way so that faster patrol battlecruiser ships/hulls are viable.

Definite observation: while the build time increase is about right, the cost increase isn't, need to up it more especially for bigger ships, a substantial speed boost makes most ships vastly more flexible/powerful, and the bigger they are the more this is true.
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Engine Parts

#4 Post by Geoff the Medio »

MatGB wrote:...it would be good to change things in some way so that faster patrol battlecruiser ships/hulls are viable.
Can you add a hull that is suited specifically for this ship role?

User avatar
Oberlus
Cosmic Dragon
Posts: 5716
Joined: Mon Apr 10, 2017 4:25 pm

Re: Engine Parts

#5 Post by Oberlus »

MatGB wrote:I really like having battlecruisers as a class of ship, faster than the normal fleet but weaker and designed for patrol/picket duty instead of line-of-battle doomstack, so while it wasn't a good implementation before it's now redundant and it would be good to change things in some way so that faster patrol battlecruiser ships/hulls are viable.
What is "faster" in this case? 180+ uu/turn? I would say that faster-but-weaker are the whole class of energy hulls.
MatGB wrote:while the build time increase is about right, the cost increase isn't, need to up it more especially for bigger ships, a substantial speed boost makes most ships vastly more flexible/powerful, and the bigger they are the more this is true.
Shouldn't this be tackled from the hull's cost itself?. Or maybe, make the cost of the engine dependant on the size (number of slots?) of the hull. Otherwise, it would render cost-innefficient fast, small designs.

User avatar
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: Engine Parts

#6 Post by MatGB »

Geoff the Medio wrote:
MatGB wrote:...it would be good to change things in some way so that faster patrol battlecruiser ships/hulls are viable.
Can you add a hull that is suited specifically for this ship role?
Yeah, the more I think through the various issues with hull balance and flexibility, the more I think we need to rework hulls and related techs more than just a little bit. I already wanted to rework the way the buildings and hulls are unlocked and if we ever do get things like torpedoes and similar that'll be needed anyway.

Lots to ponder, in the meantime I might just shoehorn in a few hulls to get the in game balance right.
Oberlus wrote:
MatGB wrote:I really like having battlecruisers as a class of ship, faster than the normal fleet but weaker and designed for patrol/picket duty instead of line-of-battle doomstack, so while it wasn't a good implementation before it's now redundant and it would be good to change things in some way so that faster patrol battlecruiser ships/hulls are viable.
What is "faster" in this case? 180+ uu/turn? I would say that faster-but-weaker are the whole class of energy hulls.
Yes, but my preference is that while each line of tech should have strengths and weaknesses and thus not have access to everything, most lines should be able to manage mixed use fleets, I like and would want to encourage that players benefit from specialising down one or two lines not all of them. And basically want the Standard/Robotic/Constructed line to be the base 'blunt instrument' nothing subtle but able to cover all the bases line.
MatGB wrote:while the build time increase is about right, the cost increase isn't, need to up it more especially for bigger ships, a substantial speed boost makes most ships vastly more flexible/powerful, and the bigger they are the more this is true.
Shouldn't this be tackled from the hull's cost itself?. Or maybe, make the cost of the engine dependant on the size (number of slots?) of the hull. Otherwise, it would render cost-innefficient fast, small designs.
Yeah, this is also a concern, if the engine costs too much because it can make a Titan unbalanced then it'll be unjustifiable on smaller ships that should be able to be more flexible: the same is also true of shields, perhaps a cost with an addition/multiplier for parts in the design. Not sure on it, but it's definitely worth testing.
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

User avatar
Oberlus
Cosmic Dragon
Posts: 5716
Joined: Mon Apr 10, 2017 4:25 pm

Re: Engine Parts

#7 Post by Oberlus »

Yes, but my preference is that while each line of tech should have strengths and weaknesses and thus not have access to everything, most lines should be able to manage mixed use fleets, I like and would want to encourage that players benefit from specialising down one or two lines not all of them.
But not to the point where one line is enough to fulfill every role. Otherwise, what's the point on getting more tech lines? I mean, if you manage to get several tech lines researched, shouldn't that give you some advantage over those that only have one or two?
On the other hand, focusing only on one hull tech line has its advantages: you get other techs earlier.

Anyway, you sure you can not manage mixed use fleets with just one or two tech lines?
Regarding speeds:
- Organics can have 160 (100+60) early on for every design. They must wait for Sentient to reach 180.
- Asteroids are stuck at 120 (60+60) until they research their flagship to get 140. Pretty slow anyways.
- Robotics can go 140 (80+60) soon but also relatively soon they can get 160 (80+80) since they have four hulls with core slot.
- Energy hulls can have really soon 180 speed, but must wait for solar to get 200.

So organic and robotic can have very good fast battlecruisers relatively soon (strange combination of adjective + noun, battlecruisers in our seas have never been fast but sturdy), energy sooner, but once solar hulls are out there it must be energy or energy.
The only line that has no fast ships (either frigates, battlecruisers, scouts or anything) is asteroids.
And basically want the Standard/Robotic/Constructed line to be the base 'blunt instrument' nothing subtle but able to cover all the bases line.
Sorry, what is the constructed line?

Robotic line is already the standard one. I usually go straight forward to Self-Grav. hulls, then Titanic then Solar. If I feel fancy I can get Bioadaptive and Sentient sooner than Titanic. I ignore whole asteroid line until I can have scattered hulls for the extra shield.
Giving robotic another big ship faster than what they have (if that's what you are thinking of) would make almost useless the other lines.

Morlic
AI Contributor
Posts: 296
Joined: Tue Feb 17, 2015 11:54 am

Re: Engine Parts

#8 Post by Morlic »

MatGB wrote:I am enjoying this/liking it so far: there is an AI script error when they've got the tech and start trying to use it as designs with multiple engines are invalid.
Try this diff:

Code: Select all

diff --git a/default/python/AI/ShipDesignAI.py b/default/python/AI/ShipDesignAI.py
index 30c6a6a69..51b1661c3 100644
--- a/default/python/AI/ShipDesignAI.py
+++ b/default/python/AI/ShipDesignAI.py
@@ -850,7 +850,7 @@ class ShipDesigner(object):
         self.production_time = local_time_cache.get(self.hull.name, self.hull.productionTime(fo.empireID(), self.pid))

         # read out part stats
-        shield_counter = cloak_counter = detection_counter = colonization_counter = 0  # to deal with Non-stacking parts
+        shield_counter = cloak_counter = detection_counter = colonization_counter = engine_counter = 0  # to deal with Non-stacking parts
         hangar_parts = set()
         for part in self.parts:
             self.production_cost += local_cost_cache.get(part.name, part.productionCost(fo.empireID(), self.pid))
@@ -861,7 +861,11 @@ class ShipDesigner(object):
             if partclass in FUEL:
                 self.design_stats.fuel += capacity
             elif partclass in ENGINES:
-                self.design_stats.speed += capacity
+                engine_counter += 1
+                if engine_counter == 1:
+                    self.design_stats.speed += capacity
+                else:
+                    self.design_stats.speed = 0
             elif partclass in COLONISATION:
                 colonization_counter += 1
                 if colonization_counter == 1:
- Organics can have 160 (100+60) early on for every design. They must wait for Sentient to reach 180.
- Asteroids are stuck at 120 (60+60) until they research their flagship to get 140. Pretty slow anyways.
- Robotics can go 140 (80+60) soon but also relatively soon they can get 160 (80+80) since they have four hulls with core slot.
- Energy hulls can have really soon 180 speed, but must wait for solar to get 200.
This is actually something to consider: Having impactful engines reduces the (relative) speed differences between the hull lines significantly.

E.g. energy hulls are twice as fast as asteroids (120 vs 60) but only 50% faster with the +60 speed engine.

Is this desired?
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Engine Parts

#9 Post by Vezzra »

I think Mat's idea is that the player should have to choose which hull line they want to pursue, preventing that you'd have to research all or most of the lines to be able to field a competitive mix. Trying to research most/all of the lines would not be a viable strategy, the goal is to make the player choose.

This means that while each line must have distinct strengths and weaknesses (otherwise having several lines is pointless of course), each line has to provide the hulls required to cover the essential needs: scouts, outpost/colony ships, troop ships, warships (both direct fire and carriers). Also small, medium and large hulls, as well as slower and faster hulls.

The differences (strength and weaknesses) would be stats like fuel capacity, speed, structure, stealth, detection, special boni/abilities, build costs and time. Also overall size: while all lines have smaller and larger hulls, e.g. asteroid hulls could be generally larger than organic hulls, etc. ("Size" referring to number of external/internal/core slots.)

Just some examples to illustrate what I mean:

Asteroid: High structure and stealth, low build costs and time, very slow, low fuel, large.

Organic: Low structure, very low build costs, high build time, fast, high fuel, small, special properties: organic growth (gain structure with age), self repair.

Neutronium: Extremely high structure, high build costs and time, slow, small.

Energy: Fast, extremely low stealth, special bonus to shields, etc.

(This isn't really thought out, I just threw together some things that I associate with those hulls.)

Typically a player would only research one or maybe two lines, depending on the overall strategy they want to pursue. The hull lines you choose will decide what kind of game you'll have to play, like the choice of starting species.

Of course, this means we'll basically have to redesign the entire hull lines from scratch.

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Engine Parts

#10 Post by Vezzra »

Oberlus wrote:Sorry, what is the constructed line?
Standard = Constructed = Robotic line. Although standard also/primarily refers to the basic hulls you get at game start.

User avatar
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: Engine Parts

#11 Post by MatGB »

I think I've got the AI fixed so it doesn't fail with engines, Commits · MatGB/freeorion 91701a9 I did the simple thing of copying the format from shields and changing variable names, if someone that groks Python/the AI can have a quick look that'd be grand.

Still liking it overall.
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

dbenage-cx
Programmer
Posts: 389
Joined: Sun Feb 14, 2016 12:08 am

Re: Engine Parts

#12 Post by dbenage-cx »

Standard = Constructed = Robotic line. Although standard also/primarily refers to the basic hulls you get at game start.
I have always thought of standard as a separate line from robotic, with standard covering the 4 starting hulls (and possibly fighters) currently.
Robotic having lower internal space, higher external, some repair capabilities, and a higher cost.
Mostly that is based on the assumed concept of hull lines favoring a metabolism (lacking a dynamic for phototrophic/energy).

Possibly define some standard hull for each general role to balance the specialize lines against?
Those standard hulls do not necessarily need to all be researchable/included in-game, just form a base line.

Had been testing lately with shield changes when I noticed the AI error, so thought they were related to the later change set.

Morlic
AI Contributor
Posts: 296
Joined: Tue Feb 17, 2015 11:54 am

Re: Engine Parts

#13 Post by Morlic »

MatGB wrote:I think I've got the AI fixed so it doesn't fail with engines, Commits · MatGB/freeorion 91701a9 I did the simple thing of copying the format from shields and changing variable names, if someone that groks Python/the AI can have a quick look that'd be grand.
Except for some small typo, looks fine.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: Engine Parts

#14 Post by MatGB »

Observation: for some reason my browser didn't load the comments between my post mentioning the AI error and my post saying I'd fixed it so I completely missed Vezzra's explanation (which I agree with) and Morlic's posted diff (which would've saved me a chunk of time), still, all good.
dbenage-cx wrote:
Standard = Constructed = Robotic line. Although standard also/primarily refers to the basic hulls you get at game start.
I have always thought of standard as a separate line from robotic, with standard covering the 4 starting hulls (and possibly fighters) currently.
Robotic having lower internal space, higher external, some repair capabilities, and a higher cost.
Mostly that is based on the assumed concept of hull lines favoring a metabolism (lacking a dynamic for phototrophic/energy).
It's one of those game history things: when I was first playing there were only Standard hulls, I think the Asteroids came next then the 'Constructed' hulls (ie Geo Integration Facility), then Robotic/Nanobot.

At the moment the hull lines are defined by their flagship: the Robotic Line is badly named but they all combine to give us the Logistics Facilitator and until relatively recently the tech tree was one line, I split out Constructed to let you get to them without going for Nanobot and Transpatial. So they're all one line, even though arguably they shouldn't be.

For another look at them: they're all the sort of ships us-humanity would build with our current tech approach and don't involve any esoteric SF options, just natural progression of current ideas put into space. All the other lines involve an SF concept above and beyond space travel itself.

It'd be more accurate perhaps to call them the "Technological" or "Engineered" line, except that's still misleading.
Possibly define some standard hull for each general role to balance the specialize lines against?
Those standard hulls do not necessarily need to all be researchable/included in-game, just form a base line.
I've considered several times putting in several more 'Standard' hulls, that might need researching, overpriced but buildable with just a shipyard, etc.

I basically think we need to rework the entire pool of hulls. I love what we've got but the game needs different things now and some of the stuff is a bit repetetive. Um, oops, that's even more work...
Had been testing lately with shield changes when I noticed the AI error, so thought they were related to the later change set.
Yeah, not going to look at that in terms of testing yet, got to finish some stuff off so only really scanned proposals
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

dbenage-cx
Programmer
Posts: 389
Joined: Sun Feb 14, 2016 12:08 am

Re: Engine Parts

#15 Post by dbenage-cx »

Thank you for the insight to their current progression.

If it is mostly acceptable, should I go ahead and post as PR (after cleaning up descriptions, etc)?
Vezzra wrote:Of course, this means we'll basically have to redesign the entire hull lines from scratch.
MatGB wrote:I basically think we need to rework the entire pool of hulls.
I'll try to focus more towards supporting mods, so others ideas can be shared in an easier manner (I keep stalling on vfs).
Yeah, not going to look at that in terms of testing yet, got to finish some stuff off so only really scanned proposals
No worries, I did not mean to ambush you either ;) That branch was getting a bit stale, so wanted to put it on the table as I keep forgetting about it.

Post Reply