OK, I think I've done it.
Please note:
Not all of the following may appear to make sense. Beyond considering the size that things should be there were also factors such as how they should appear and under what circumstances would they be seen. Some things may even appear contrary but it is with concern for fun over realism that a certain amount of
smoke and mirrors have been employed.
To play this in a way that makes the most of all of the adjustments,
you will need one of the oxps that I expect to release very soon. The first will have just enough tweaks to enjoy the new scales (e.g. bigger stations and freighters) while the second will be designed to 'improve' gameplay in other ways, such as greater ship visibility and reduced masslock duration, all effected by use of scaling.
So this post contains the
hard work if you like, of changes to the source code. Testing was far from exhaustive and so I reserve the right to change values or even strategies later. The main advantage of an expanded range of scale is, to my mind, that things can be hidden in space. Black Monk stations not visible from the witch point, Coriolis stations that can't be found easily without the use of the compass, Planets that don't loom enormously in the rear view as you approach a star and fighters that aren't half the size of the freighter they escort.
This then, is the latest of several incarnations of this experiment, each one of which was playable but also less well tuned than this version IMHO. There are further tweaks I have emplyed for my own game (once again enabled by tinkering with scale) but many things are a matter of taste and so I present most but not everything.
I hope some enjoy it as much as I do.
OOPlanetEntity.m
line 120 - make planets bigger
Code: Select all
collision_radius = radius_km * 100.0;
lines 196, 200 & 204 - adjust rotational velocity
Code: Select all
_rotationalVelocity = [dict oo_floatForKey:@"rotational_velocity" defaultValue:0.01f * randf() / 10];
Code: Select all
_rotationalVelocity = [planetInfo oo_floatForKey:@"rotation_speed" defaultValue:0.005f * randf() / 10];
Code: Select all
_atmosphereRotationalVelocity = [dict oo_floatForKey:@"atmosphere_rotational_velocity" defaultValue:0.01f * randf() / 10];
OOStellarBody.h
line 52 - adjust reach of atmosphere
line 53 - prevent planet size from looking silly on f7
Code: Select all
#define PLANET_MINIATURE_FACTOR 0.000185
Universe.m
line 117 - adjust encounter rate for increased traffic
line 894 - increase WP to planet distance
Code: Select all
planet_zpos *= [planetDict oo_floatForKey:@"planet_distance_multiplier" defaultValue:15];
line 1153 - bring station proportionally closer to planet
Code: Select all
stationPos = HPvector_subtract(stationPos, vectorToHPVector(vector_multiply_scalar(vf, 1.25 * planet_radius)));
Entity.h
line 47 - make things visible from greater distances
Code: Select all
#define ABSOLUTE_NO_DRAW_DISTANCE2 (25000.0 * 25000.0 * NO_DRAW_DISTANCE_FACTOR * NO_DRAW_DISTANCE_FACTOR)
lines 51 & 52 - reduce scanner to 20km
Code: Select all
#define SCANNER_MAX_RANGE2 400000000.0
HeadUpDisplay.h
line 42 - define scanner scale
ShipEntity.m
line 7742 - reduce docking traffic at station
Code: Select all
if (sd2 < SCANNER_MAX_RANGE2 * 2.0f)
ShipEntity.h
line 80 - adjust turret shot speed against faster ships (only necessary for the recommended version but here it is...)
PlayerEntity.h
lines 306, 307 & 309 - increase torus speeds to compensate greater distances
Code: Select all
#define MIN_HYPERSPEED_FACTOR 128.0
Code: Select all
#define MAX_HYPERSPEED_FACTOR 4096.0
PlayerEntity.m
line 3019 - increase deceration from torus drive speeds
Code: Select all
float deceleration = (speed_delta * delta_t * HYPERSPEED_FACTOR * 64);
line 3300 - adjust masslock radius for planets & stars
Code: Select all
double factor = ([stellar isSun]) ? 1.44 : 1.35;
HeadUpDisplay.m
line 3686 - reduce reported distances from STE
Code: Select all
NSString* infoline = [NSString stringWithFormat:@"%0.3f km", range / 5];
planetinfo.plist
find and replace all instances of "sun radius =" (to enable bigger suns) with:
And I think that's it.
Much copy and pasting there so hopefully it all made it here unscathed.
Necessary OXPs to follow...
EDIT:
Two shader adjustments to include.
oolite-default-atmosphere.fragment
line 59 - restore appearance of atmosphere
Code: Select all
float cosThreshold = -1.333333e-6 * atmRadius / 10 + 0.17333333;
oolite-default-shader.fragment
line 422b (additional line) - exposure adjustment courtesy another_commander