MeteoricGames / pioneer

A game of lonely space adventure
GNU General Public License v3.0
9 stars 3 forks source link

Create and Balance Ship Attributes #39

Closed outridersol closed 10 years ago

outridersol commented 11 years ago

Currently none of the ships have properly adjusted attributes. Need to create and balance ship attributes for current and planned ships.

outridersol commented 11 years ago

OK, I need a bit of input on this one before I proceed. In making adjustments to ship handling, I'd like to tighten up the performance of most of the ships considerably, with much less "drift", especially on the smaller ships.

I can't stand the current handling where even going at 50 m/s most ships handle like an elephant on roller skates :)

Any objections/concerns to proceeding along these lines?

shadmar commented 11 years ago

Not sure what you mean by drift.

outridersol commented 11 years ago

Ah sorry, basically the ships are the spaceship equivalent of this;

http://www.youtube.com/watch?v=C9_K4M2VLxQ&t=0m58s :)

i.e. their maneuvering thrusters give them very weak turning circles. My thinking right now is that, at lower speeds (e.g. below 500m/s) something like a military fighter should have very little "drift", with lower performance ships being progressively worse in handling. Once you get up to light class ships, they'd have more drift to them, while medium class and heavy class ships would have a very large amount.

shadmar commented 10 years ago

Basicly we need to figure out the ships full weight. and from that rebalance everything.

So from the personal skiff, it look like it's 9m long. So 9m long about 2m height ~ 10 tons?

So 10 tons distributed :

capacity = 6, hull_mass = 3, fuel_tank_mass = 1

--forward/reverse thrust = ton*0.9 forward_thrust = 9e5, reverse_thrust = 9e5,

-- ton*0.3 up_thrust = 3e5, down_thrust = 3e5, left_thrust = 3e5, right_thrust = 3e5,

-- up_thrust*10 angular_thrust = 30e5

And for the Medium ship like the explorer this would play out like this :

It looks like 180m long ship, about 1000 ton?

capacity = 400, hull_mass = 200, fuel_tank_mass = 400,

--playing with the above formula it would look like this : forward_thrust = 900e5, reverse_thrust = 900e5, up_thrust = 300e5, down_thrust = 300e5, left_thrust = 300e5, right_thrust = 300e5, angular_thrust = 3000e5,

outridersol commented 10 years ago

Ship Stats

Based on assumed density of 50kgs per cubic metre.

NAME (MASS CALCULATION) MASS FULLY LADEN: HULL MASS: FUEL TANK MASS: CAPACITY:

Passenger Shuttle (6x4x8 metres - 192M3 - 9600kg) MASS FULLY LADEN:10 Tons HULL MASS:3 Tons FUEL TANK MASS:1 Tons CAPACITY:6 Tons

Military Fighter (8x4x10 - 320M3 - 16000kg) MASS FULLY LADEN:16 Tons HULL MASS:5 Tons FUEL TANK MASS:2 Tons CAPACITY:9 Tons

Security Interceptor (4x2x8 - 64M3 - 3200kg) MASS FULLY LADEN:3.2 Tons (double it to 6.4 tons for the sake of being able to fit anything into it) HULL MASS:2 Tons FUEL TANK MASS:1 Tons CAPACITY:3 Tons

Mining Pod (10x6x12 - 720M3 - 36,000kg) MASS FULLY LADEN:36 Tons HULL MASS:11 Tons FUEL TANK MASS: 4 Tons CAPACITY: 21 Tons

Utility Flitter (5x5x7 - 175M3 - 8750kg) MASS FULLY LADEN: 8.75 Tons HULL MASS: 2625 Tons FUEL TANK MASS: 875 Tons CAPACITY: 5250 Tons

Cargo Loader (20x10x20 - 4000M3 - 200,000kg) MASS FULLY LADEN:200 Tons HULL MASS: 60 Tons FUEL TANK MASS: 20 Tons CAPACITY:/

Personal Skiff (4x2x8 - 64M3 - 3200kg) MASS FULLY LADEN: 3.2 Tons (double it to 6.4 tons for the sake of being able to fit anything into it) HULL MASS: 2 Tons FUEL TANK MASS: 1 Tons CAPACITY: 3 Tons

Omni Scout (15x11x20 - 3300M3 - 165,000kg) MASS FULLY LADEN: 165 Tons HULL MASS: 49.5 Tons FUEL TANK MASS: 16.5 Tons CAPACITY: 99 Tons

Military Corvette (21x10x34 - 7140M3 – 357,000kg) MASS FULLY LADEN: 357 Tons HULL MASS:107 Tons FUEL TANK MASS: 35.7 Tons CAPACITY: 214 Tons

Passenger Ferry (14x8x36 - 4032M3 – 201,600kg) MASS FULLY LADEN:202 Tons HULL MASS:60.6 Tons FUEL TANK MASS: 20.2 Tons CAPACITY: 120 Tons

Utility Tender (31x16x48 - 23808M3 - 1,190,400kg) MASS FULLY LADEN: 1190 Tons HULL MASS: 336 Tons FUEL TANK MASS: 112 Tons CAPACITY: 672 Tons

Mining Ship (30x18x49 - 26460M3 - 1,323,000kg) MASS FULLY LADEN: 1323 Tons HULL MASS: 396 Tons FUEL TANK MASS: 132 Tons CAPACITY: 792 Tons

Omni Ranger (39x12x23 - 10764M3 – 538,200kg) MASS FULLY LADEN:538 Tons HULL MASS:162 Tons FUEL TANK MASS: 53.8 Tons CAPACITY: 324 Tons

Omni Explorer (45x34x152 – 232,560M3 – 11,628,000kg) MASS FULLY LADEN:11,630 Tons HULL MASS:3348 Tons FUEL TANK MASS: 1,116 Tons CAPACITY:6696 Tons

Military Destroyer (118x42x255 – 1,263,780M3 – 63,189,000kg) MASS FULLY LADEN:63,190 Tons HULL MASS:18960 Tons FUEL TANK MASS: 6,320 Tons CAPACITY:37920 Tons

Utility Control Vessel (85x36x260 – 795,600M3 – 39,780,000kg) MASS FULLY LADEN:39,780 Tons HULL MASS: 11934 Tons FUEL TANK MASS: 3978 Tons CAPACITY: 23868 Tons

Military Carrier (262x70x755 – 13,846,700M3 – 692,335,000kg) MASS FULLY LADEN:692,000 Tons HULL MASS: 207600 Tons FUEL TANK MASS: 69200 Tons CAPACITY: 415200 Tons

Cargo Megafreighter (30x25x1000 + 244x147x205 + 85x61x85 – 8,543,665M3 – 427,183,250kg) MASS FULLY LADEN:427,180 Tons HULL MASS: 128154 Tons FUEL TANK MASS: 42,718 Tons CAPACITY: 256308 Tons

When I did these the weights did seem ludicrously over the top, but looking at various real world ocean going ship weights, these seem to be about right, and spaceships would likely be much denser than that. Of course most of the ships aren't actually box shaped, so the volumes are probably a bit of an exaggeration, but not by orders of magnitude.

Dragon, Cygnus UTV and HTV cargo spaceships in the real world have densities between 150 and 250 kg per cube metre, so placing density at 50kgs per cube metre is understating things quite a lot already (we could use special future materials as an excuse there.)

Of course maths was never my strong point so I may be making some basic elementary error with the above. The huge weights are the main reason I was thinking about new jump drives, because I don't think the current ones are going to cut it :)

outridersol commented 10 years ago

Messed around with this a bit in-game, and yep, the jump drives are nowhere near powerful enough as far as I can tell.

The most obvious short term solution I've though off is reducing ships to about 10% of their actual weight, but that still causes other problems, argh!

Add to that that the whole max cargo/capacity/equipment system is insane.

shadmar commented 10 years ago

We can easily change the effectiveness of the jump drives and have more of them.

shadmar commented 10 years ago

If we could get a definitive weight list of all ship, we can make jump drives in those ranges (good start on the list above here)

Also we need the ships tuned into what they ought to be, so we can test new jump drives.

outridersol commented 10 years ago

just literally started doing this a minute ago :) Funnily enough I was thinking "we need to know the weight of the jump drives so that we can determine how much of the total weight should be left as capacity". It's a bit of a catch 22 though I suppose.

Basically though I suppose to start with we need a base way of distributing total weight between hull, capacity and fuel.

Based on the above; 60/30/10 capacity/hull/fuel tank ?

shadmar commented 10 years ago

Abouth the catch 22, just decide the weight of the drives, 1,15,100,10000 to start is fine, and we see how it goes. 60/30/10 distribution is proabaly a nice balance, we can just try, and adjust if we're unhappy later :)

outridersol commented 10 years ago

Cool, I'm going through and doing them by hand now, should hopefully have a rough initial version finished this evening. (But I suppose anything's better than what we've got now :D)

outridersol commented 10 years ago

This is driving me a bit insane, but I think I'm making some kind of elementary error;

I've changed the weights of (almost) all of the ships, but for some reason the game has now decided to freeze on start of new game if any of them have anything other than 0 set for hyperdrive.

Working branch at;

https://github.com/ParagonDevelopmentTeam/pioneer/tree/ship_balance

shadmar commented 10 years ago

ok will check.

shadmar commented 10 years ago

You are not crazy, but max_cargo has to be less or equal to capacity :)

merged this with my drives branch and here are the results:

explorer  : 50-118 ly     11060T
utility_control_vessel : 14-33 ly   39700T
minig carrier : 14-33 ly  39700T
military destr : 14-33 ly  39700T

on to Light ships .. tbc

shadmar commented 10 years ago
omni_ranger  41.7-115       540T  
mil_corvette 63-175         357T
mining_ship  17-47.3        1320T
utiility_tender 20-55.8     1120T
cargo_hauker 20-55.8        1120T
passenger_ferry 112.5-312      200T
shadmar commented 10 years ago

ultra light is able to jump at all or ?

shadmar commented 10 years ago

ok wrong statement. capacity has to be less or equal to max_cargo.. But reducing capacity also reduces max weight, so max_cargo...sob. :( . just set it equal to capacity..

Also passenger ferry seem malplaced in it's class or engine, but the entire Lightclass jump engines seem to powerful.

outridersol commented 10 years ago

yeah my bad, it did confuse me a bit :) I assumed max cargo would have to be less than capacity.

The light class ships do seem imbalanced compared to the rest. Also the passenger ferry is probably underweighted compared to the others because it's almost perfectly rectangular, whereas most of the others aren't so they're probably overweighted. Also it's just small :D

For ultra light, my original thought was not jump at all, but recently I've been more in favour of having them be able to jump short distances.

shadmar commented 10 years ago

Heavy goes like this :

Cargo_mega  9.4 - 18.4  427kT
mil_carrier 5.8 - 11.3  692kT
shadmar commented 10 years ago

What is a short distance ? :) I can pick a few ultralight and see how they go now.

Also heavies should probably jump twice this?

shadmar commented 10 years ago

Ultras example

omni_scout  3.8 - 94        166T
pass_shuttle  40 - 1201     13T
cargo_loader  3  - 78       200T
mining_pod  17-434      36T
personal_skiff  52 -        12T
shadmar commented 10 years ago

My conclusion is : it's not possible with the current weight system to fit drives suitable for all since ships fully loaded weights can go from 10T-200T and all can fit the same drives.

Same goes for Light Class, to much weight variation.. Medium and Heavy are ok..

shadmar commented 10 years ago

Maybe just make weight group drives instead of having 5 drives for each class.?

outridersol commented 10 years ago

Yeah, that's probably the best approach. I suppose just staggering them across the class in proportional weight ans power?

Anyway it'll be awesome just to finally get this done, been meaning to do it for months now!

shadmar commented 10 years ago

Formula to calculate drive_class :

drive_class= sqrt(range_wanted_in_ly*ton/625.0)

example if we wanted omni_scout (357 ton) to go between 10 and 40 ly it would require drive classes like this :

sqrt(10_357/625) = 2.3 ~ 2 sqrt(40_357/625) = 4.78 ~ 5

so how far will it go using min class 2 and 5 :

range = (625*class*class/ton)

625_2_2/357 = 7.0 ly 625_5_5/357 = 43,76 ly

outridersol commented 10 years ago

Clever! I suppose things can be changed and tweaked at a later date in any case, so if this can be used this to give the ships working jump drives that can get them somewhere, then we'll have made a big step forward :)

shadmar commented 10 years ago

ok I think I have a working design for this, I will push the code for it abit later, just need to do some tests.

outridersol commented 10 years ago

Cool :)

shadmar commented 10 years ago

ok pushed.

Also fixed big ships so they don't spawn on ground but always at stations or in transit to one. Take a trip to Gates Spaceport and the big ships should be docking or be docked as busy starport. Heavies also jump in and out of systems now.

outridersol commented 10 years ago

think this one's done :)