endless-sky / endless-sky

Space exploration, trading, and combat game.
https://endless-sky.github.io/
GNU General Public License v3.0
5.55k stars 998 forks source link

Add Drag and Heat Dissipation to ShipInfoDisplay #1418

Closed drallim33 closed 7 years ago

drallim33 commented 7 years ago

I'd like to make a case for adding these stats, mainly for comparing ships when using the "Shipyards" part of the galaxy map.

Firstly, without knowledge of the drag stat and how it works, certain ships (like the Falcon and Leviathan) appear worse than they actually are, for no apparent reason. There is no indication that different ships have hidden and arbitrary top speed modifiers. Steering and acceleration of a ship is entirely dependent on mass and thrust, and the idea that drag doesn't work the same way (or even exists at all) is unintuitive. If I wanted to make a fast ship it is impossible to tell in-game which would be the best choice, without buying one of each and equipping the same engine on all of them to compare. Top speed is listed but without knowing what engines and thrust a ship has it is not very useful for directly comparing hulls using the shipyards map.

While it is possible to deduce the drag value of a ship from only the ship info panel, it requires considerable meta knowledge and calculation:

  1. Knowing that the drag stat exists at all
  2. Knowing how to calculate the thrust of the ship (not shown on the panel) from acceleration and mass
  3. Knowing how to calculate drag from thrust and top speed

So I suggest listing one of the following, and listing it under "Shields" and "Hull", so that it is apparent that it is a static feature of the ship and not a calculated result of hull+outfits:

  1. the drag stat itself, with a tooltip explaining that low drag results in higher top speed, or
  2. a "Speed" stat, for example (1/drag)*100. This would show a Bactrian as having a speed of 6.2, and a Falcon 14.9, making it obvious that the Falcon hull is more than twice as fast. Since the numbers are low and would never change when swapping outfits they hopefully wouldn't be confused with actual speed.

Now for heat dissipation. The workings of heat was pretty opaque to me when playing the game, I can't remember ever actually experiencing overheating, even when exceeding the "max heat" stat for extended periods. I was somewhat misled by the way the heat stats are listed next to energy and look similar, but work differently. Now that I've looked at the code, I don't think directly listing the heat dissipation stat that the engine uses is the way to go, since numbers like 0.6 and 0.78 won't be terribly helpful. So I suggest listing it as heat dissipation per second, and displaying as a percentage. I know it's done per frame so maybe this wouldn't be 100% accurate but it should be close enough to calculate it like so:

% heat dissipation p/sec = (1-(1-(HeatDissipation*0.001))^60)*100

So for instance a Bactrian would have this listed as 2.37%, and a Blackbird as 4.11%. The tooltip could explain that the ship sheds this much of its current accumulated heat every second, and that total heat capacity is mass*100. Again, put it up the top under Shield and Hull, to make it more apparent it is a static feature of the hull.

This should help demystify how heat works, and make it easy to compare this attribute on different hulls. The existing absolute figures will still be more useful when actually outfitting a ship, rather than comparing different ships.

Lorantine commented 7 years ago

higher drag makes ships slower with the same thrusters, while more mass reduces the turn rate of a ship, basically bigger ships have higher drag and mass, making them slower than smaller ships, which should be base knowledge; a huge carrier is slower than a small interceptor drag is also not really meant to be a stat you can see, humans can calculate ship weight, but they can't really calculate a drag stat, they can just streamline a ship heat dissipation is similar, basically if all heat stats (base, firing, engine & shield recharge) are higher than the max, the ship can overheat when thrusting, spinning, shooting & recharging, although heat isn't that hard; if your ship is hot, get cooling, and you can compare "max heat" so I don't think it has to be added, the things a new player could know are; bigger ships are relatively slower and require larger engines, and lower heat is better, if it reaches the max the ship overheats

Lorantine commented 7 years ago

thing is with drag, drag is constant, with more/less mass (also w/ cargo it influences the turn speed, but thrust speed stays the same, because no one would like a hauler III fully loaded with a speed of 5 and a turn rate of 2 drag is also more about how "streamlined" a ship is; a ship with the same mass but more "streamlined" will still be faster

as for heat, all a new player will notice is that if a ship is hot you'd need some cooling, and more experienced players may realize what it is exactly, heat dissipation is how good a ship loses heat, and a ship that has more exposed mass would be better at dissipating

kitsunemochi commented 7 years ago

remember reading somewhere m.z. said that drag would confuse people because there's no drag in space but he needed a way to make bigger ships slower

Lorantine commented 7 years ago

and a bigger ship doesn't mean it's heavier, for example the Corvette

drallim33 commented 7 years ago

I know how it works now kiledennis, but I think it would be useful to see it in game instead of through digging through code. Even now that I know how it all works, having it in game would save me alt-tabbing to ships.txt all the time.

This is technically true of ships with (near)identical mass. However, I generate "efficiency tables" for all ship/outfit stats for balancing purposes, and the relation between mass and drag stays fairly constant across all ship classes(sizes). This results in a balance where a lower mass ship (strongly)tends to have less drag, making mass itself a fair estimation of top speed. So in practice, I don't have to do any math at all to know that the 510 mass falcon is going to be faster than the 940 mass bactrian.

You don't have to do any math because you've already done the math when generating your efficiency tables, and have intimate knowledge of how the game works. Compare this to a regular player, who most likely _doesn't know that drag even exists_ (we are in space after all). First you realise some ships are inexplicably faster than others and you're not sure why. You try with a full cargo hold, and an empty one, but it makes no difference. You strip out all outfits except engines, and it makes no difference. You do experiments with ships of identical mass and engines, but they still go at different speeds. Then finally you read the code and discover that there's an arbitrary attribute that determines speed, and it isn't listed anywhere. Now you are ready to make your own spreadsheet to tell you information that is missing from the game.

That said, having drag not listed but kept consistent with mass and "category" might be fine. I mean the modified argosy is slow compared to other light warships, but this somewhat intuitive since it is re-purposed freighter. You wouldn't expect a delivery van to out-race a sports car just because you put a huge engine in it. The problem is that it is not consistent at all, not even close.

The Bastion has the mass and drag of a heavy warship, but the rest of its attributes are in line with the other medium warships. So unless you know about drag in advance, and that it's vaguely related to mass, you'd probably expect it to perform in line with similar ships. The Mule has mostly similar stats (except mass), yet is 81% faster despite having more than double the cargo space and a fighter bay.

Looking at the Firebird and the Manta, even if you know about drag (which again, most players wont), you would expect the Firebird to be slower given that it has 71% higher mass, more shields and hull, more cargo and bunk space, more outfit space, and a similar price. But the Firebird is actually slightly faster?

The Corvette has less drag than the Raven despite being in a higher tier, having higher mass, and more of everything.

The Protector has almost 30% more drag than the Vanguard, despite them being very similar in most other regards. 81%, 30%, 71%, these are large differences, we're not talking about 5% here and 8% there. I don't know how anyone could be expected to intuit these differences by looking at the existing stats.

remember reading somewhere m.z. said that drag would confuse people because there's no drag in space but he needed a way to make bigger ships slower

It's only confusing if it is not listed/explained. I accept all sorts of unrealistic things in this game and others without even thinking about it. The confusion only comes when the information that would explain things is hidden.

drallim33 commented 7 years ago

I get what you're saying, however I still have to disagree on that one point. I don't need the math, or knowledge of drag to know the falcon or anything else that much smaller than the bactrian will be faster. This is because with that much difference in mass, it is intuitive that the smaller ship is faster.

It's not intuitive at all, because unlike acceleration and turning, the speed doesn't change when you change the mass. This informs the player that speed is unrelated to mass, which turns out to be absolutely true. There may be some very loose correlation between empty-hull mass and drag, but I'm not sure why this would be a reason not to just display drag and remove any doubt.

Which no longer holds true when comparing similar scale ships I freely admit. That's the only point I was trying to make there.

It doesn't hold true when comparing different scale ships either. Look at Behemoth vs the Haulers. Both freighters. Behemoth is a bigger ship, much higher mass, and significantly more of everything. Using your logic it should be much slower than the haulers, but it is not.

This may be the real issue here. Consistency.

I imagine the whole point of having a separate knob to tweak is precisely that it is not consistent, it's a stat separate from mass that can be tweaked independently. If it was consistent with mass then there is no point having it in the first place.

The problem is that it is invisible. Imagine if cargo space was not listed, how would that help anything? Sure you could argue that people should be able to intuit that freighters have more cargo space, and that bigger ships in general have more space, but these are not reasons to make people look at a text file, or buy all the ships and fill their holds just to find out how much cargo space they have. Why keep it a secret?

ReimeiSky commented 7 years ago

Help us, oh great Michael Zahniser. This thread has reached 10 posts. We require your wisdom and greatness to resolve this issue.

endless-sky commented 7 years ago

With any information that's presented to the player, there needs to be a balance between providing so much information that it's overwhelming and confusing, vs. not providing enough information. That is, it's a balance between two different kinds of people:

  1. The people who will see a "drag" number in the ship stats and have no idea what that means (because it's a relatively abstract thing and not directly observable in game) and who would much rather just see top speed.
  2. The people who want to see "drag" listed because they're interested in min/maxing or in understanding the inner workings of the game.

I'd guess that far more players fall into category 1 than 2. And, the confusion that category 1 people would feel is probably going to do more to hurt their experience of the game than the frustration that category 2 people feel about there being "hidden" game mechanics. So in terms of cost-benefit analysis, it just doesn't make sense to display that information.

drallim33 commented 7 years ago

I disagree with what you said in so many ways it's difficult to know where to start.

The people who will see a "drag" number in the ship stats and have no idea what that means the confusion that category 1 people would feel is probably going to do more to hurt their experience of the game

You must a have a very low opinion of the intelligence of your players, what an insult. Who are these people, who are perfectly able to cope with everything else in the game, but upon seeing drag, will become so confused that it actually hurts their experience of the game? Is there even a single example of a person like this existing? I think you made them up in your head.

Why would they be confused? A simple stat with a tooltip: "Drag determines the top speed of a ship. Lower drag results in a higher top speed." Who would be confused by this? What would they be confused about? It really doesn't get much more straightforward than this.

(because it's a relatively abstract thing and not directly observable in game)

It's not any more or less abstract than top speed, only obfuscated. It is directly observable in the same way top speed is. They are almost the same stat, the only difference being one is modified by thrust.

The very first time you change the mass of any ship, you see the acceleration and turning figures change, while top speed remains the same. So you know right off the bat that top speed is unaffected by mass, and controlled by some other factor. You also directly observe it when you equip the same engines on two different ships.

and who would much rather just see top speed.

I'm not proposing top speed be removed. They serve different purposes. Top speed is what you want when outfitting a ship, when you are comparing different configurations of a single ship. Drag is not useful in this situation, because it is a static, unchanging base attribute, and does not show the actual, realised speed of a ship. Drag is what you want when comparing different ships. Because it's impossible to tell what engines the ships have in them, so a direct comparison is impossible. If all ships came standard with the same engine, there would be no need to show drag, since with standard engines top speed effectively is showing drag.

the frustration that category 2 people feel about there being "hidden" game mechanics.

What frustration? Who are these category 2 people? You've made up two categories of people and assigned the entire population to those categories, without any indication that they actually exist. I'm not frustrated about hidden game mechanics. There is only the tedium of trying to compare ships, finding that the in game display is inadequate for the task, and having to alt-tab to an external list. Displaying this stat would be a simple quality-of-life feature. Designed to keep people in the game rather than pulling them out of it.

I'm not a member of either of your categories, and frankly I doubt there are many who are. I am able to read tooltips and grasp simple concepts, as long as the necessary information is provided. I prefer to have as little knowledge as possible about the inner workings of the game, because that knowledge is immersion breaking. I don't need or want to know that top speed is equal to thrust divided by drag. I only want to know that Ship A is inherently x amount faster/slower than Ship B. The same way that I want to know that Ship A has x more/less cargo space than B, or y better/worse turning, or more/less turret mounts. Because these things have a direct impact on gameplay.

remember reading somewhere m.z. said that drag would confuse people because there's no drag in space but he needed a way to make bigger ships slower

So there is acknowledgement that people are intelligent enough to assume there is no drag in space. This is even more reason to tell them about it, since you know they will assume it doesn't exist. The unintuitive things are the ones most in need of explanation. Don't you see? If there's any confusion to be had it is because people don't know about it. Telling them about it will reduce confusion. Sigh.

jafdy commented 7 years ago

I feel like a "no drag" mod may be needed.

There are about 300,000 people who play this game just through steam. If you are saying that even a small portion will ever be comparing drag to make the fastest ship possible you are much mistaken. Most people will look at weapon hardpoints, outfit space, shields, cargo space first. Do I need to go on?

While what your asking for my be simple and useful to you this game isn't for you, if it's for any one it's for MZ.

Disclaimer: Once I get annoyed I am probably the saltest member of this community so try not to be put off any further contribution.

Lorantine commented 7 years ago

when I started the game I bought a Firebird but sold it because it was so slow, I didn't know that much about outfitting, and many players have a lot of issues when starting to play, adding a "drag" stat is just gonna be more confusing, only players that spent hundreds of hours in the game and who looked in the files will really understand it

@drallim33 drag is a hidden stat to keep large ships from becoming faster than sonic and not needing hyperdrive because they can have a top speed of 2 million, while max speed could be measurable like with a car; you can determine the max speed, but you can't exactly measure "drag" on it, and the drag on ships isn't even drag, as there is no drag in empty space, it's a hidden number to make a ship relatively slower and you use what MZ said, assume the reason why he said that, and go against your assumption, MZ tries to keep the game a bit noob-friendly by leaving unneeded statics out, who are you to even judge that, he is game owner and has way more experience in game making than you/us, why even take the time to write a book about trying to convince him when he says no? from what I see, jafdy and I agree with MZ, because it's just unneeded information most people look at possible ships and pick one based on cargo, shield/hull and space, 20 more speed isn't that impactful

@jafdy when I get annoyed I can be a pain too, don't worry :P

Wrzlprnft commented 7 years ago

I think MZ was referring to the more casual players getting confused by drag. And i don't see this as an insult. Further, since different ships can fit different pairs of engines, i don't see why drag would be way more important than top speed as a stat. Further, i don't see anything negative in players digging around in the savefiles and stuff, but i get the quality of life improvement in displaying it. (this paragraph is my personal opinion, hence the "i"s)

I'd say, if you can photoshop a example together where you want to have it, it would be way more clear and help the topic. You're not trying to convince the ones who are able to modify the sourcecode the they are wrong, you want to convince them that your idea is good. The talking reached the point where it gets salty, so come with pictures, or compromises (maybe add the drag with a "/" after the mass so you have the essential stuff for speed at one point as well as no new line). Taking insults and handing out new ones doesn't help your cause.

endless-sky commented 7 years ago

@drallim33, the point I'm trying to make is that every addition to the user interface involves tradeoffs. Ideally, the UI should show the user only information that is useful to them, and avoid showing them any information that they do not need or cannot make use of. But, every user has a different definition of what is "useful." And if the UI includes every single piece of information that any user might consider useful, the information that is actually useful to the vast majority of users ends up buried underneath a pile of information that, from their perspective, is useless.

Every time a new feature is added there are costs in terms of added complexity, and the benefits need to outweigh those costs. Based on posts in the Steam forums I believe that the users who are already confused by all the numbers in the ship info display outnumber the users who want even more information than is already there.

Amazinite commented 7 years ago

Is there even a single example of a person like this existing? I think you made them up in your head.

You should come hang out on the Steam forums sometimes.

Sinsling commented 7 years ago

Or just look at the max speed. You keep talking about the acceleration and turning when trying to talk about a stat that purely affects top speed. All anyone would need to do is look at how adding an engine with higher thrust adds more top speed. You don't need to see drag to figure out something causes thrust to be related to a particular ship's top speed. While some people (there are a few on steam) like to make spread-sheets, compare absolute best options for everything, ext, they are actually very few by comparison to those who just want a game to play and do not need the kind of information that would only help a spread-sheeter or mod maker.

As for heat dissipation, it is another similarly hidden stat that determines your max heat via ship mass. It does nothing else. Literally the only stat it provides that you need to see is your ship's max heat before it reaches critical temperatures.

drallim33 commented 7 years ago

@endless-sky I fully understand what you are saying, believe me I have heard this exact reasoning 1000 times before, and have never been satisfied with it. Not that it is incorrect in theory, of course you don't want to bombard players with superfluous information. But we're not talking about superfluous information, we're talking about base attributes of ships, which is currently not displayed anywhere in the game.

I believe you have it backwards. You claim that the volume of information is cause for confusion, while I believe a lack of accuracy, clarity, and/or completeness are what causes confusion. I can read entire books of accurate and well explained information without becoming confused. But even a single line of inaccurate or obfuscated information can be immediately confusing.

And if the UI includes every single piece of information that any user might consider useful,

I know the kind of things you're talking about. For instance, I would really like the energy production and consumption to be totalled into net energy, to save me constantly doing the arithmetic in my head. But I didn't bother suggesting it because it doesn't present any new information, it is "merely" a QoL thing to make playing easier, so I knew the answer would be, well what you just said.

I haven't played this game much, I haven't even played through the story, because I haven't managed to trigger it yet. So my first experiences are still fresh in my mind. Let me tell you what I did find confusing about the ship info:

1. The panel shows "Outfit space free", with numbers like 200/300. This is perfect, 200 free space out of 300 total space, it is immediately obvious what this is because it is labelled accurately. Gun and turret listings follow the same convention, and say "gun ports free", also very easy to understand, and consistent.

However underneath outfit space are two more listings - weapon capacity and engine capacity. They also have a fractional number but it was not obvious what they meant, 70 capacity out of 140? What does that mean, I was confused by this at first. Before long I realised it was not showing weapon capacity at all, but "weapon space free", the same as the outfit space above it. I wasn't confused for long, but I was confused, and not because of the volume of information, but because of its inaccuracy, and inconsistency with the information surrounding it. Five stats right next to each other, presenting information in a very similar way, but two of them are labelled differently.

2. Max heat. This is shown in a table next to max energy, which works entirely differently. The presentation of the information implies that it works like a battery does for energy. And the tooltip reinforces this, calling it "total heat capacity", which is misleading at best, or just downright false. As you know it does instead show maximum heat dissipation per second of the current loadout, and the actual total heat capacity is not shown anywhere. There is no indication that ships constantly shed a percentage of their heat without cooling. Another cause of confusion, once again not from the volume of information, but from false and misleading information, and missing information. I had to use google to find how heat actually worked, I believe from a steam forum thread.

If your goal is to prevent confusion, providing complete and accurate information is the way to go. Would this really cause confusion? Probably not. It's still not ideal, since total heat capacity isn't listed, and it is not explicitly explained that the ship loses a percentage of it's current heat rather than a flat amount. But is it more confusing than what is currently there?

You should come hang out on the Steam forums sometimes.

I just looked through the first 10 pages of general discussion on there, and only found one thread where a person was confused about the ship info. Hardly an indication that the majority of people are confused.

jafdy commented 7 years ago

Thank you for including a picture. I had a look at it and felt that MZ's tooltip got the important bits across, I looked at yours and got a "Ahh! Words!" reaction. Going back I feel that your explanation on heat gives lots of extra information that however accurate obscures the point more than it revels anything. On a positive note saying what an overheat causes to happen might be helpful.

With the weapon/engine capacity thing you may be right but I suspect a length problem here. MZ?

I like to think a lack threads on confusion is due to being careful with the UI regard less I think it would be best kept that way. Also could you find some asking for more data to be displayed? (ones you started don't count)

Disclaimer: Once I get annoyed I am probably the saltest member of this community so try not to be put off any further contribution.

O and also your on your own debating (arguing) against 6 people including MZ, and 3 of the longer standing members of the community. And could you stop with the word walls?

ReimeiSky commented 7 years ago

Personally, I found that for energy, jafdy's response applies to me as well. But for heat, both explanations are very confusing to me.

ghost commented 7 years ago

@drallim33

You may have point about heat capacity, but I found the weapon/engine capacity extremely clear, even without the tooltips. Even total heat capacity, which may be somewhat misleading, still gets the important part across; having more heat generation than heat capacity is bad.

I don't see any issue with not showing drag, but am curious why it isn't determined directly from the base mass of the ship. This would simplify the system, allow all top speed information to be presented with the current UI, and maintain the current behavior of increasing mass via outfits not changing speed.

drallim33 commented 7 years ago

Personally, I found that for energy, jafdy's response applies to me as well.

Fair enough but the energy description is not accurate. "If a ship's energy is reduced to zero, it will not be able to use all its systems simultaneously." This is sometimes true, sometimes false. With enough power generation and no projectile weapons (only beams), a ship will work fine with no batteries at all. Less words but also less accurate.

It will be hard for you as long standing players to imagine/remember what it was like to look at this information for the first time. You already know how everything works and don't need it explained, so the more concise thing seems better. Your brain automatically fills in the gaps from the knowledge you already have, and the extra words just seem like clutter.

But for heat, both explanations are very confusing to me.

Yes heat is a bit confusing because there is missing information. The tooltip is trying to explain two different things about heat, one of which is shown, one of which is not. So it is a little confusing. The actual heat capacity, (which is 100*mass, works like a battery, and is shown as a bar when you are flying the ship), if this was shown on a separate line and with it's own tooltip, then the one shown in the picture could be much more concise and readable. Another case of less information = more confusing.

Reactor: 1000 (tooltip: The amount of heat produced by the ship's power source, per second)

Engines: 500 (tooltip: The amount of heat produced by the ship's engines when moving and turning, per second)

Weapons: 1800 (tooltip: The amount of heat produced by firing all the ship's weapons, per second)

Charging shields: 540 (tooltip: The amount of heat produced by the ship recharging its shields, per second)

Cooling: -300 (tooltip: Amount of heat removed by cooling systems installed on the ship, per second)

Natural cooling: -2846 (2.37%) (tooltip: The ship naturally loses a percentage of its heat every second. This is the maximum amount of heat it can lose naturally.)

Heat capacity: 120,000 (tooltip: The maximum amount of heat the ship can store. If the ship builds up more heat than this, it will shut down briefly so it can cool off.)

So yeah it could be explained pretty clearly. But this would mean three extra lines. And given the opposition here to even a single number in brackets, let alone a whole extra line, well haha it doesn't stand a chance.

Max speed: 256.5 (7.4 drag) (Tooltip: More engine thrust results in higher top speed. Higher drag results in lower top speed. Bigger ships generally have higher drag, but can also equip more powerful engines.)

^ Would it really be as bad as everyone makes out?

ghost commented 7 years ago

Energy isn't actually 0 when output exceeds consumption on a capacity of 0. Energy isn't limited by capacity until the frame after it is produced.

Source: I just read the relevant ship.cpp code.

Lorantine commented 7 years ago

I learned the entire game without any tooltips (I only discovered them after maybe 100 hours of playing, same with the I button), so maybe there should be a hint leading players to discovering tooltips :P

ghost commented 7 years ago

The I key and associated features really do need to be better documented.

jafdy commented 7 years ago

Adding a bit more detailed description for game mechanics could be another use for #904.

toilethinges commented 7 years ago

Yes, like the Civilization franchise's Civilopedia (just an example of an in-game wiki): http://www.dndjunkie.com/civilopedia/ ?

I think that's what you're saying, at least, and I know that it would be very helpful.

Edit: this is in the game as well as on this reproduction website. I think it might affect immersion slightly, but the change would be very, very helpful to new players.

ghost commented 7 years ago

A civopedia equivalent would be awesome.

ReimeiSky commented 7 years ago

...we're going off-topic...

ghost commented 7 years ago

I prefer to call it differently topical.

Lorantine commented 7 years ago

creative discussion ;)

drallim33 commented 7 years ago

I've made my case and this seems to have run its course. But I don't know the github etiquette, should I close this now or leave it for someone else to close?

ReimeiSky commented 7 years ago

If you're still not satisfied, you can leave this open for a few more days and hope that someone from the Steam forums or elsewhere who supports your claim sees this. If nothing happens then, Michael will eventually close it himself. You can always close it yourself, of course, if you are satisfied with the responses.

DimlyMoonbeam commented 7 years ago

I should start by saying I think heat dissipation does need more information in game, and that I don't know the best way to give that information. Super verbose tooltips are horrible, that's not the point of a tooltip. But, while I don't want this in a tooltip, I would love for you to continue thinking about it and propose other solutions.

Now for drag. Oh no.

MZ stated in one of the google group's threads here, drag isn't shown because drag doesn't exist in space. That would be incredibly confusing to literally everyone that's gone through elementary school.

At minimum, to expose this stat in a user interface I would hope it would be named something other than drag. So, while reading through these comments I've been making that substitution in my head.

Moving past that, let's look at the reason drag is here. We don't live or interact with space, so for most of us wrapping our heads around the physics of space can just be a bit different. But in a game we (generally) want the physics to be easy, quick to learn, and forgiving while you learn it. Accurate simulators are generally out of scope for a game since you would have to reconcile the scale differences between stars, planets, ships, etc. Do we expect a maximum speed in this game? Probably, most people would. It's just the way the world we immediately interact with works. Our cars, airplanes, and ships all have maximum speeds. So, the drag stat works behind the scenes to give us that.

When I started out, I looked at the relevant information for how fast my ships go. In the shipyard, I saw that ships had a max speed. So right away there's that suspension of disbelief. So I could see max speed, acceleration, turning, mass of the ship, and thrust (on engines) all mattered for speed. No one really looks at these numbers the first time and knows exactly how they translate to real time effects, even if the physics exactly correlates with reality. So after looking at the numbers and thinking about them, I bought a few ships and flew around in them. I could see right away that for the same engines equipped, smaller ships both had a higher max speed, and moved around faster. Not much confusion there for me.

I would totally support you re-writing the physics engine in this game to give it things like gravity, general relativity, the ideal rocket equation, etc. The problem is that it's not easy. It's not easy for a player to control a ship acting like it would really act in space. It would be completely different from how the game acts now. And behind the scenes, drag helps make the game like we expect it to work.

So to answer your problem, I agree that there should be some indication of a top speed modifier. I think flying around in the ships, and just looking at the top speed gives that indication, that's certainly how it worked for me. I don't like the verbose tooltips given here. An in-game wiki makes a lot of sense to me, although a project of that magnitude would obviously need much more development work than just changing a tooltip.

To sum up, I agree that heat dissipation and 'drag' should be indicated, but not in a tooltip, and drag should at minimum be renamed or referred to by its description.

pcordes commented 7 years ago

Summary of what I'm suggesting:


If we show drag in-game, a different name might help (like speed factor, or some made-up technobabble justification for ships having a top speed). More on that later, first the UI-complexity issue:

Perhaps we could have a config option for simplified / standard / geek levels of stat details in the ship / outfit screens? default = standard = the current layout. That keeps it less cluttered/overwhelming out of the box, while still satisfying those of us who enjoy finding optimal solutions to min/maxing problems once we're ready to bury the current-ship stats with some base-hull stats.

And/or maybe have a toggle switch in the shipyard views to show base hull stats (like empty mass, drag, heat dissipation, etc. Maybe even "top speed / turn with the best engines that fit", but then you'd need an algorithm for choosing engines (out of the selection the player has discovered). Still, the random variety of crappy engines that ships come with is of little consequence when selecting a hull for your flagship. Maybe drag per engine space?


As a new player, I'm finding it very time-consuming to min-max ships. I had to make my own tables of outfit efficiency (energy/mass and E/heat) to compare boulder+geode vs. Armageddon, including the extra tonnage of cooling I'd need for the Armageddon, and stuff like that. Yes I know I could just have a giant fleet of not-perfectly-min-maxed shield beetles or kestrels that steamrolls everything, but I actually like min-maxing for its own sake. As well as to give myself a challenge in fights by seeing what I can beat solo, or with just 3 escorts. This also changes the tactical value of speed.

I found this issue/thread while searching for a spreadsheet of game data, or a script to create one (maybe filtered by the outfits your save file says you know about). I'm considering writing such a script myself, or maybe extending ES's built-in --ships and --weapons options with other options for other kinds of outfits. Doing it from inside the game executable would make it easier to filter by outfits your save-game knows about. (I don't think this is "cheating", or making it too easy for the player, if you avoid spoilers. It just saves typing; my tables were already in terms of reactor Energy per ton and per-ton-with-cooling.)

The top-speed limiting factor was actually the first thing I went looking for in ships.txt, after playing for a few hours and noticing that the thrust to top-speed ratio wasn't always correlated with ship size, and e.g. the streamlined Falcon was better. Like @drallim33, it took me some time to realize there was a hidden variable, but as soon as I saw "drag" in ships.txt, I correctly guessed how it worked (without having to check the code).

UI complexity is the only argument for omitting it that makes sense to me, so I'm glad to see that's the basis of @endless-sky's (and everyone else's) argument, other than KiLEdEnNis nonsense claim that it's obvious. It's not obvious how Endless Sky's non-Newtonian movement model works, because it's unlike any real physics. It's a fun game, not a simulation of anything realistic.


If "drag" is going to be visible in game, or documented in the wiki, the name is problematic. In straight-line flight, it's just a "speed governor": ship velocity doesn't decay without thrust (except when you overheat?!?). But when thrusting at a right angle to your velocity, your x velocity decays as y velocity builds even though there's no -x thrust. Endless Sky / Escape Velocity / many other top-down fly-a-ship games (including simple arcade games) have similar mechanics (which are fun and don't need to be changed), but it's very obviously not drag-less Newtonian mechanics. Not to mention that steering motors provide angular velocity directly, not angular acceleration. There's no drag in space, but there's something similar to it in this game. I get that some non-physicists might not even notice this unless you point it out by having a stat called "drag", but it's definitely a real thing in the game.

We probably don't want to actually call it a "speed governor" instead of a physical limit, though. That's just frustrating since we're not going to let players disable it (huge change to gameplay and ship balance, and not what I'm suggesting). (Fun fact, in Vegastrike (a GPLed first-person 3D trading/combat space simulator) does use a governor in your ship's nav computer as a top-speed mechanism. It can even be disabled, but so if you thrust for 1000 seconds, it takes another 1000 seconds to stop.)

jafdy commented 7 years ago

In terms of turning off drag, it can be done using a plugin. In fact if you steam forum one the the minis listed (no drag) dose precisely that.

pcordes commented 7 years ago

@jafdy: Interesting, but that's pretty much off topic for this issue. This is about making it easier to find out about ships in-game, and/or writing an out-of-game guide to how the game models drag / heat / other stuff.

DingusShingleton commented 7 years ago

Fwiw, when i was a new player, i found the heat system very confusing. I didn't really understand what the different figures meant relative to one another. Are they rates of change? Absolute figures? Is a positive idle heat going to result in an overheated ship? For a long time i thought that any positive idle heat value was no good.

Tbh i still don't know precisely what each number means and how heat dissipation works into the equation, but by this point I know it intuitively enough to outfit my ships effectively. Some additional info for new players would be a great addition i think.

Amazinite commented 7 years ago

I don't know if you guys just overthink it, but when I was a new player, all I really knew was that "more cooling = less heat = good," and I left it at that. Same for engines. "Bigger engines = more speed = good." I think that not seeing the drag and heat dissipation values and being told what they do in game is really only a problem for the people who go min-max crazy, which isn't too many people. Going back to what MZ said:

Every user has a different definition of what is "useful." And if the UI includes every single piece of information that any user might consider useful, the information that is actually useful to the vast majority of users ends up buried underneath a pile of information that, from their perspective, is useless.

pcordes commented 7 years ago

It took me a while before I could predict how much cooling was enough. It's very useful to be able to look at the numbers and see what you ship will be like, without having to take off and find someone to fight (to trigger shield-recharge heat). Any cooling beyond the minimum necessary to never overheat has no value (unless you're fighting pirates with plasma weapons).

@Amazinite, yes, obviously adding any more info is a huge problem for UI complexity. It isn't something that should be enabled by default. That's why I was suggesting putting stuff like hull drag stats behind a stats-complexity toggle in preferences. We might even be able to leave out some things that are currently in, e.g. some of the per-shot weapon numbers. I always just look at the per-second numbers (and maybe the shots-per-second), and the other per-shot numbers are clutter that I wouldn't mind turning off. As long as the default shows enough for people that never find the stats-preferences toggle, I think we'd be ok.

It was clear to me pretty quickly that the "Heat Capacity" line on the ship stats page was not the capacity at all, but rather the dissipation rate (although I didn't know what controlled the actual rate). The actually heat capacity is apparently just ship mass * 100. This isn't obvious because in real life, different materials have different specific heat (temperature rise per Joule per kg): e.g. it takes much more heat to raise the temp of a kg of water by 1 degree than 1 kg of copper, even though both are excellent heat conductors. And dissipation is just a factor of the hull. Until I learned how heat worked, I though outfits must include some heat fins, because adding them increased the max heat dissipation capacity of my ship! Turns out it just went up because your ship is heavier, and thus has a larger capacity before overheat, and max dissipation per second (other than active cooling) is a hull-dependent fraction of your total.

What was also totally unclear is that heat dissipates faster the hotter your ship is. So less cooling may just mean a higher equilibrium temperature when firing, moving, and recharging, not a guaranteed overheat if you do everything at once. I'm not sure why this was confusing before I learned what I know now (since in some ways it seems obvious), but I think it was more a case of the behaviour I was observing not matching what I thought the game stats were telling me.

From the way the game presents it, I expected that Heat was treated the same as Energy, with a constant dissipation per second. It also wasn't clear exactly what the heat gauge was measuring (during combat). Firing makes it go up, but understanding how much was a problem.

pcordes commented 7 years ago

@Amazinite, I think a better example of an unclear mechanic is Anti-Missile systems. At first I thought the Anti-Missile rating was a stand-alone number measuring the overall strength of an AMS turret, so the Hai turrets were lighter and much better than human. Ok makes sense, the Hai have some good tech.

But it's actually a per-shot number, so the higher rate of fire on human turrets make them better than Hai, especially for killing lots of light missiles.


Also, I expected that a hit on a missile did Anti-Missile damage per shot, so a Hai turret (16) shooting a torpedo (20) would take two shots, with the second having a lot of overkill. vs. a Hai tracker (16), it would be one-shot one-kill; it makes sense that Hai AMS turrets are designed to counter Hai weaponry.

But it's not like that at all. Instead, each shot is either a kill or no effect, depending on Random::Int(anti_missile) > Random::Int(missile_strength) (In bool Hardpoint::FireAntiMissile). Projectiles don't have a "health".


This one is a lot harder to figure out or get a feel for, because it can be hard to tell the difference between a missile blowing up on your shield or blowing up when your AMS shoots it down. Even in a fairly controlled situation where you're flying only slightly slower than a stream of missiles, so you're getting hit by only a couple per seconds, it's not easy to see what's going on.

Wrzlprnft commented 7 years ago

Since we are talking quite alot about personal experience, i want to shortly state mine: while the heat numbers were pretty intuitive to me (i did not link them to real physics), i treated heat dissipation more to compare the ships, more as a relation, how good they can handle heat. I was not interested at all how it works in the equation at the beginning.

I do also like the damage per shot, since hit and run tactics as well as a opening volley damage are things of interest to me.

I honestly could live with a toggle, but maybe we can add some tooltiptexts to explain stuff further.

pcordes commented 7 years ago

The damage/heat/energy per-shot can all be inferred (i.e. calculated) from the shots per second, anyway. Showing the shots/second is good, but the other per-shot stuff isn't nearly as relevant.

Are there any weapons with such a slow reload time that per-shot damage matters in a single "jousting" pass, @Wrzlprnft? It seems to me it would only matter if a weapon had a reload time of more than a seconds or two, so you could get more than a second's worth of sustained damage in a one-second pass. I guess if you just barely get two shots off at the start/end of a 1 second pass, you are effectively getting a whole second worth of damage after your target is no longer in your crosshairs. The slowest gun I've encountered in my game is the Ion cannon (1 / sec). Everything else is at least 3 shots / sec.

Maybe there are missiles like this, but I don't tend to use them. (It definitely makes sense to always show show shots/sec for ammo-using weapons, since I assume different weapons can drain their magazine in different times. Probably showing per-shot damage is useful, too, for ammo weapons)

I just checked, and torpedo at 0.5 / sec and heavy rocket at 0.3 / sec are serious business.

Alkallid commented 7 years ago

I think you got the missile speeds wrong.

pcordes commented 7 years ago

I think you got the missile speeds wrong.

Based on what, @Alkallid? I just double-checked 0.9.2 and git master, and the rates of fire are 0.5 and 0.3 in both.

Alkallid commented 7 years ago

Never mind; I misunderstood. I thought you meant it fired once every .5/.3 seconds, not the amount of missiles every .5/.3 seconds.

Musaran2 commented 6 years ago

who would much rather just see top speed.

That would be fine when flying stock ships.

But who does that ? The point of having hundreds of outfits is to play barbie doll and refit the hell out of it.

The current (v0.9.6) stat display has seriously confusing and lacking parts, for reasons already said here. Take a step back, look at it with a fresh eye, and you should come up with something both more complete and more intuitive.

Amazinite commented 6 years ago

you should come up with something both more complete and more intuitive.

Why don't you? Where is it lacking and confusing? You say "for reasons already said here," but this issue is almost a year old, so which reasons are you talking about specifically?