Rebalance - third go

bszlrd
Posts: 1084
Joined: Mon Jul 01, 2013 3:25 pm
Location: Budapest HU

Re: Rebalance - third go

Post by bszlrd »

I thought about doing a mock-up video about how this could look/work.

Maybe there could be tiers of hyperdrives/upgrades that would allow the player to aim for planets above a certain mass. The better the module, the smaller target you can go for. Maybe accuracy could decrease with distance too. Like you can only aim for gas giants from a system 10 ly away, but you can aim for an Earth sized planet from a system 3 ly away.
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Rebalance - third go

Post by FluffyFreak »

I was thinking of having it as a multi-stage thing, with a range of module and sensors to improve your accuracy/reliability.

The way I'd imagined it you would jump into a star system as we currently do, to one of it's stars, then pick a smaller in-system world to try and jump to.

We can put limitations on the technology like:
  • Cannot jump past/through another world/star in the path.
  • World size / type affects ability to calculate the jump.
  • Make it take time to calculate a jump (we should have that for regular jumps too)
  • etc
impaktor
Posts: 1008
Joined: Fri Dec 20, 2013 9:54 am
Location: Tellus
Contact:

Re: Rebalance - third go

Post by impaktor »

joonicks wrote:for starter ship Id like to see something with, ~10t cargo, class 1 drive, 8-12ly range, atmospheric shielding, basic weapon
My thinking exactly.
bobtheterrible wrote:aspects of trading and ship cost/depreciation adjustable in menu optiosn
It wouldn't be too difficult to adjust how large price differences should be between planets of different types. The best thing would be to find a good balance so it wasn't needed.
nozmajner wrote:Also if there's no clear and single straight line of progression for ship stats, then we could facilate some decision making when it comes to planning on your next ship purchase.
When it comes to ships in general, ideally, the player would progress through ever bigger and better ships, but I'd like to point out that this is not done linearly which one might think, that is to say, not with equal steps in capacity increase for the next ship. What I mean by this, is I don't think the player would progress through ship cargo capacity (in the intervals) like so:
  • - ship 1: 1-10t
    - ship 2: 10-20t
    - ship 3: 20-30t
    - ship 4: 30-40t
but rather, the player would actually, in practice, increase his new ship's capacity with equal steps on a logarithmic scale, so it's more likly the player will want a ship (in the intervals):
  • - ship 1: 1-10t
    - ship 2: 10-100t
    - ship 3: 100-1000t
    - ship 4: 1000-10000t
So for the first and second ship both methods of thinking about "player ship progression" yield about the same result, but not for the player's third or fourth ship. Also, just like in real life, money increases exponentially, since once you have money you can make that work for you, i.e. by trading in more expensive products giving higher absolute return on investment, so ship prices would follow the same pattern, as would profit from trade.
joonicks wrote:as for pioneer, I think it should not take me more than 2 hours of relaxed playing to step up in ship.
I have another timescale in mind here. I think after 2 h of gameplay, pioneer should still be fun and new, you should still have new exciting planets to explore, try out scooping fuel from a gas giant, thrilling missions to accept, and with the money earned I think that should go into upgrading the ship equipment perhaps. Only after significantly more playing should the player start to feel the strong desire to buy a new and vastly better ship. At least that is my view on this. (I'm not saying the current way is good)
demolitions wrote:On a planet, some goods were not buyable, since they were import-only
I agree that price should be linked to available stock. I have some big plans here, but not something that will be done soon. But I would like to see (e.g. on the wiki), a list of all things that should influence a market and how i.e. communism, democracy, mining world, etc. I've created the wiki page Commodity_Prices for this aim. There are many ideas discussed on market in the dev forum that could be transferred to that wiki page, like:
Rethinking the planets
Life in Pioneer
Unorthodox orbital configurations.
Rethinking the UI
But I need all ideas collected in one place (thus the wiki page).
Volume & Mass
I think we all agree here, and my only concern is that we think through what information the player needs to have (and how it is displayed) when buying stuff, for instance. Is there some way to notify the player that he is currently too heavy when about to land on a planet?
FluffyFreak wrote:...that allows you to jump from planet to planet.
from Lagrange point to Lagrange point! :)
I wonder if this potential "spin device" only works for small ship masses? Then pirates could jump ahead of bulkships, and intercept them easier.
bobtheterrible
Posts: 148
Joined: Sat Jan 24, 2015 8:03 pm

Re: Rebalance - third go

Post by bobtheterrible »

...Is there some way to notify the player that he is currently too heavy when about to land on a planet?
Could this not be done in two ways? Something in the hud against the planet name flashing "go on a diet" or, as you are loading up goods before you set off, systems/planets in the galaxy map change colour if your ship weight exceeds its ability to maintain a safe rate of decent?
impaktor
Posts: 1008
Joined: Fri Dec 20, 2013 9:54 am
Location: Tellus
Contact:

Re: Rebalance - third go

Post by impaktor »

Introduction
First, be ware that the information content in this post is very high, so please be prepared to spend more time on this post than on an average post. Lord knows it took many hours over the past week writing the code, generating the data, and compiling the plots for this, but I hope this will unravel what pioneer actually does in a big way. (Maybe put this on the wiki?)

Investigating mission rewards
How to read the plots: - Each panel in the following 3-panel plots are based on spawning 10000 missions of each module. They each show the probability* of the module to yield a mission with reward according to x-axis. I have not investigated if the due date for the mission module is possible, thus the higher rewards might require a very fast pilot.
1. *(left y-axis: normalized to unit area, right y-axis: actual count, sums up to 10000 for each panel)
2. (London was the starting position during spawning, this matters only in what systems (stations) goes into its "nearbysystems" ("nearbystations") tables, since those will not be the same (but similar enough) if starting from somewhere else.)

  • A-panels: The total distribution of the missions generated by the mission module. For many modules this is actually two distributions added on top of each other, where one dominates, thus the need to look at each separate in a B and C panel.
  • B-C-panels: All our mission modules (except Assassin) can in turn be split in two sub classes, i.e. local or non-local for DeliverPackage and CargoRun, or for Taxi mission: single or group transport. Panels B-C show them individually, by only allowing either kind to be generated. Thus the data in (B+C)/2 is (qualitatively) same as in panel A, (times some additional constant if they're not equally weighted, as is the case for Taxi)

Image
DeliverPackage - 50% are local deliveries, giving around 50-200 credits. The other half are non-local, and give around 1000 credits, up to 3000 for exceptionally rare missions (possibly with too short deadline).


Image
CargoRun - 50% are local deliveries with a very big spike at < 100 credits, which might be too little.


Image
Taxi - Each flavour has different risk and urgency, there's also a 30% chance of a "group taxi mission", where there's between 2-10 passengers. Split them up in their different kinds.


Image
Assasssin - Not much to say here. The reward only depends on the 4 different "danger" classes, as is seen by the 4 "steps" in the plot. The deadline for this mission is a bit special, as demonstrated in #2861.


Image
Expected/wanted? - I naturally had some idea of what these plots aught to look like before I started, which the plot below tries to show. Local missions are in full lines, and the interstellar in dashed lines, (colours selected with the colorblind in mind). NOTE: since we are dealing with numbers on vastly different scales, I'm using a logarithmic scaled x-axes for rewards (in A & C).
  • panel A: What I imagined it would/aught to look like, on a log scale. (curves normalized to have unit max).
  • panel B: Identical to A, but on linear scale. Just here to motivate the scaling in A.
  • panel C: Our actual current distribution, (normalized to have unit max), i.e the A-panels of all our previous plots. Note the giant probability peak for local package and cargo runs < 100 credits.


Trade
Here I investigate the profit (for a 10t cargo capacity ship) on all possible trade routes in a 30 ly sphere, (centred on London). Thus for N inhabited systems in the sphere, there are N^2 trade routes (actually, we don't trade with ourselves, so it's really N(N-1)), where for each we check the most profitable trade possible (x-axis in plot). Thus we can think of it like drawing a line from each system to all others in that sphere.

By "profitable" I mean we buy the commodity that will give the highest absolute return on investment, not relative. I.e. buying hydrogen for $1 and selling for $3 gives, with 10t cargo capacity, an absolute profit of $20 (pretty bad), and a relative return on investment of 200% (spectacular). Buying battle weapons for $600 and selling for $610 would (again assuming 10t cargo hold), give an absolute profit of $100, but relative only 1.6%. Thus we will here always assume the player has the necessary funds to invest to fill his 10t cargo hold with any commodity, something that will be true (especially for a small ship) after some initial playing.


Image
Plot I've split up trades into legal (full lines) and illegal (dashed lines), as defined in the exporting system, this says nothing of the status of the commodity in the importing system. Absolute profit is in black lines, and relative profit is plotted against the top x-axis shown in yellow/brown lines. The relative return isn't sky high, but this will only limit the player when starting out with little money. Once player is constrained by the limited cargo space rather than the limited funds to invest with, this should not matter. So trading is good once you have a bit of money* to throw around.
*("a bit of money" = 3000 credits for legal trades with 10t cargo ship)

E.g. the plot shows that for trading 10t, most trade routes yield max 100 credits profit per run. Some few can give 300 credits for "a perfect trade", and on very special occasions up to 600.

The table below shows how many times each (legal export) commodity was selected as the most profitable trade for all the trading routes:

Code: Select all

| Count | Commodity            |
|-------+----------------------|
|   493 | Precious metals      |
|   385 | Consumer goods       |
|   316 | Computers            |
|   210 | Battle weapons       |
|   139 | Hand weapons         |
|   110 | Robots               |
|    46 | Military fuel        |
|    22 | Animal Meat          |
|    19 | Industrial machinery |
|    14 | Mining machinery     |
|    13 | Medicines            |
|    11 | Plastics             |
|     9 | Farm machinery       |
|     8 | Air processors       |
|     5 | Fruit and Veg        |
|     4 | Narcotics            |
|     1 | Textiles             |
|     1 | Live Animals         |

Epilogue
Code for generating data and plots (depends on gnuplot + python & numpy) is available in my branch impaktor:balance_rewards. it does require a recompile as I activated the lua io-module to be able to write data to disk from lua, which pioneer doesn't normally allow.

Furthermore, I was going to do plots of "reward as function of <danger, distance, due-date>" for all modules, but time is running short, and I suspect there's already too much information in this post than what people will have time/energy to absorb. Either way, I believe the approach I've here taken is the "road to travel" if rebalancing the economics.
clausimu
Posts: 111
Joined: Tue Jan 06, 2015 8:31 pm

Re: Rebalance - third go

Post by clausimu »

Hats off for spending a lot of time to demonstrate the rewards distribution of the current missions & trade! Nothing like hard data with significant n to really understand the system.

It's late and I won't babble without really studying the data and its implications - I'm just excited to see this kind of approach to balancing economics in pioneer. If nothing else it got me even more excited about this game.
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Rebalance - third go

Post by FluffyFreak »

That's a LOT of data!

Ok, so my initial look makes me think that DeliverPackage, CargoRun & Taxi are all really miserly in terms of payback and could do with an large increase, perhaps a whole 10x increase so that the game is easier to get into at the beginning.

My reasoning there is that they're the jobs you are going to be able to pickup at the start of the game and yet they won't play as big a role later on in the game because even a large group taxi ride won't be as much as a large trade should be.

As for the trading, it's hard to tell but I'd have expected a bit more than 3000 credits for a good trade :/ although that is only 10t of cargo so maybe it's just that I have a 100t cargo hold in mind.

All good data, is there a way to get this into the repository so others can change values and then re-plot it themselves?
DraQ
Posts: 149
Joined: Sun Mar 23, 2014 10:02 pm

Re: Rebalance - third go

Post by DraQ »

I think thrusts should be as low as possible without breaking evasive maneuvers.
It helps both gameplay (as none of the combatants can build up a lot of velocity before the other reacts) and realism.
9-10G for an empty speedy ship sounds nice.

Delta-v nerf can be decoupled from gameplay pacing by introducing more time compression step, so it's a non-tradeoff . Pioneer needs those badly anyway, given that currently it uses the same setup as Frontier which had 2-3x higher accelerations and ludicrous delta-v's.
Tanks being too small realistically speaking could be dealt with by introducing "gears". Standard reaction drive could have travel and maneuvring gears - VASIMR style - the former would produce pitiful thrust but very high specific impulse and high delta-v by limiting propellant flow but accelerating what little propellant it would use to to massive velocities, the latter would maximize propellant flow producing good thrust, but lowering specific impulse. This could also allow delta-v to be a factor in combat, while also staying realistic (the general principle is not limited to VASIMR). Maybe make ship automatically deploy/stow large external radiators when shifting gears.
One thing that is also desperately needed is propellant management - we should be able to set propellant budget for one leg of a journey autopilot would respect instead of always happily burning away almost all the remaining delta-v budget. Ability to use different volatiles as propellant is also worth considering.

In-system jumps are good and perfectly logical idea, but we *need* inaccuracy.
It's needed because of lore (precise hyperdrive would make a nasty weapon, and make piracy pretty much impossible) and gameplay (keeps player planning for various alternatives, gives ample room for danger and feeling of scale, plus the largest existing stars are somewhere below 10AU in diameter and we don't want players to emerge inside of those.)
Also we can't really have inaccuracy that decreases with decreasing distance as it would allow ultra-precise short range jumps.
It would be a good idea for jump to shut down all non-vital equipment and require maintaining stable orientation for a period of time - immersion and balancing measure.

Deploying landing gear should also shut down shields.

As for working for the next upgrade, I think it should be dependent on how much meaningfully diverse gameplay can we squeeze in between upgrades which is dependent on content and systems - anything more amounts to grinding, both of which currently suck so I don't think it's a good question right now.
What I do think is a good question is whether player should be barred from particular careers at start and I say no. Big and expensive trader hulls should be compensated by small, light and expensive pieces of equipment that only really serve a purpose on small, nippy ships. Ideally player should be able to buy and equip a ship suitable for starting their carrier of choice without having lifted off even once - so a barebones light freighter, a fighter and some cheap combat equipment and so on. Straightforward progression should definitely go.
Of course, there should be difference between ideal pace and the actual pace - I think player that isn't really good should be sinking all their profits in merely keeping their ship space-worthy - which can be interesting in itself - recoverable failures and near failures are much more memorable than long streaks of everything going according to the plan - basically if the player can justifiably start to feel bored by what they are doing now, they should be able to afford some upgrade shortly that should in turn open up some new options or at least have some novelty value.

Now, trading. Bulk trading should only be profitable when trading in, well, bulk. Smuggling shouldn't be possible at truly massive scales and doing it in bulk should increase probability of detection (including after the fact detection) and large slow freighters shouldn't be very good at running from the law. Some degree of dynamic economy and events should help making trading more interesting, but being a space trucker never really appealed to me.
We do need to switch from "is a" economy to "has a" economy - instead of defining economy on per-system level we should define it on the level of individual planets or even stations. Of course if a system has, for example, no habitable planets and no hydroponics then it will need to import food.

I'm definitely for switching to limiting volume and tracking both volume and mass, not just for cargo, but also equipment:
  • It makes sense physically.
  • It makes for interesting situations and tradeoffs regarding cargo.
  • It makes for interesting tradeoffs regarding equipment.
My own listing of spaceship types:
  • Courier/interceptor - get small amounts of payload from A to B as fast as possible, while keeping operating costs low:
    • Long Range - maximized delta-v/jump range
    • Short Range - maximized thrust
    • Suborbital - maximized atmospheric performance
  • Lifter - get large amounts of cargo from and into orbit, thrust and capacity
  • Trader - move large amounts of cargo around, basically just capacity and reliability
  • Passenger - move people around, like courier, but also passenger capacity, maybe upper boundary on thrust
  • Combat - kill stuff, a lot of hardpoints, plus...
    • Light - maneuvrability
    • Heavy - capacity and armor
  • Mining - extract valuable minerals from astronomical bodies, capacity and reliability, in case of planetary mining thrust
  • Exploration - take the words "final frontier" seriously, well rounded attributes, enough capacity to fit varied equipment and a lot of sensors plus lots of reliability
  • Recon - courier with a lot of sensors and maneuvrability.
The requirements for, for example an STO courier and interplanetary courier are so different that it makes no sense to list them as single class.
Note that I would do away with modular passenger cabins or at least make them unsuitable for demanding clients. Instead ships should have basic "people capacity" set up accordingly to the number of visible windows on the hull (reducing the cargo capacity and adding some mass) and have anything not occupied by crew available for ferrying passengers. Do note that so far we don't have any resonable way to distinguish between liners and freighters despite having such distinction in game (Malabar and Vatakara).

I also think we should have a lot more hardpoints both defensive and offensive. Sensors above basic equipment should be separate items that take up hardpoints (they need to be mounted to look outside).

I am of opinion that pretty much all ship classes should playable, but there should be restricted equipment. The way I see it, freely accessible ship weapons are basically spaceship equivalent of small arms, designed to defend against pirates (hence the ludicrously close engagement ranges by space standards - pirates need to come close enough to grab their loot and flee), whereas military ships and installations should be carrying both those and heavy ordnance with ranges measured at least in planetary radii, possibly in AU, but those should only be used against threats that outweigh the costs.

Finally, we need a lot more weapons and equipment (to make things interesting), dynamic random events, for example distress signals from NPC ships that might have been attacked or otherwise damaged (or may be pirates trying to fool you - who needs intercepts anymore?) and some equipment should be integral to all ships - in particular I mean hassle saving equipment like autopilot (it's never a good idea to let player gain advantage with the only cost being real life tedium) and equipment allowing recover from otherwise total failure states like escape pod (partial failure states make for far more interesting experience than just "everything exactly as planned" and "dead").

We also need more hierarchically built universe. Instead of just systems consisting of planets that have stations on the surface/in orbit we need sparse economically or astronomically important systems with a soup of backwater systems in between on galaxy scale and tons of small orbiting and surface landmarks like moonlets, towns, infrastructure in between major stuff. Major stuff, OTOH could include things like orbital elevators tethered to artificial orbital rings or massive orbital arcologiesclinging onto captured asteroid counterbalances.

Currently our universe has no structure and it really needs it.
Hell, compare how a system looks like in Pioneer and Space Engine.
impaktor
Posts: 1008
Joined: Fri Dec 20, 2013 9:54 am
Location: Tellus
Contact:

Re: Rebalance - third go

Post by impaktor »

I had another stab at plotting, still showing pretty much the same, I just increased the amount of data for mission modules 10-fold, plot everything useful in the same figure, and changed data collection for trades so now I show profit in credits / tonne (i.e. a ship with 1t cargo hold, so just multiply by ship cargo hold size, e.g. 10, 100,... to see what such a ship would yield) for 6364 systems (i.e. all inhabited systems in 100 ly radius from Sol), leading to 273,611 trade routes analyzed, where I've assumed the trader has "perfect" knowledge of prices in the system he travels to.

Some more fun stats (to be verified by the first pioneer-player reading this): Most profitable trade within 100 Ly from Sol: buy Narcotics (legally) from Olar or Arso and sell to Proxima Centauri: +69.09 credits/t, and if we allow us to also buy from the black market, then Nerve Gas from Exwa to Proxima Centauri or Ross 614: 90.1 credits/t.

Image
  • Panel A What I consider a sane distribution of rewards from each mission module (note: x-logscale). (same as in my previous post)
  • conclusion from A: My intention is to illustrate the progression of income as you get better reputation, maybe you do 10 delivery missions to get good starting reputation, giving 10*$100. At that point you have good reputation to do cargo runs and taxi missions, giving you 10*$1000, etc. Each step progressing about 10-fold increase in income (but also expenses, not show).
  • Panel B The reward distribution form our actual modules (each line based on data from 10,000 samples).
  • conclusion from B: Taxi (1 passenger) and interstellar DeliverPackage have almost the same distribution, and group Taxi can give higher reward that the hardest Assassination missions. There are quite a lot of local deliveries in the $20-$70 range which seem like not much at all. Local CargoRuns give next to nothing compared to interstellar.
  • Panel C Profit probability (or "frequency") per tonne traded good on all trade routes (within 30 ly radius from each of 6300 systems), assuming perfect knowledge of price at destination.
  • conclusion from C: Relative profit (yellow) is strongly correlated with absolute profit (black), so it's enough to just look at one either them. I wonder if the relative profit (note: for a perfect trade!) should maybe be higher? Instead of 10%-40% it aught to be 80%-150%? Profit from a standard trade, where you don't have "perfect" knowledge of the market, could well yield 10%-40%. (There are also some trade routes where all illegal trades non-profitable, thus explaining the dashed lines x < 0).
DeliverPackage, CargoRun & Taxi are all really miserly in terms of payback and could do with an large increase, perhaps a whole 10x increase
I take it you don't agree with my idealized view (panel A)? I'm thinking, if the player starts with 100 credits, then local package deliveries yielding on average 100 credits each will be pretty good: 100% increase after 1 run. and 5 more and you can buy a new hyperdrive (class 1).

My main concern is the balance between trade and the mission modules. Since trading doesn't give you as much as doing an average (interstellar) delivery- or taxi-mission until you have a +100t cargo hold, you're stuck doing missions until you get that ship. To get a Mola Mola (cargo: 80t, price: $199000), player needs about 200 delivery/taxi missions, or 20 assassinations, it seems.
All good data, is there a way to get this into the repository so others can change values and then re-plot it themselves?
The main problem here is that I've enabled the lua io module from the src/ side, something we don't want in vanilla pioneer. This is so I can dump data into files on disk from my testing lua-module. Data for the mission modules could just as well be done in python, it's just the pioneer random engine I'm using, but for trade data I obviously need to run pioneer and dump data into file (from pioneer). I could implement it on the C++ side, to get some trade data but that's really nothing I had planned.
FluffyFreak
Posts: 1343
Joined: Tue Jul 02, 2013 1:49 pm
Location: Beeston, Nottinghamshire, GB
Contact:

Re: Rebalance - third go

Post by FluffyFreak »

Tomorrow I will make time to reply to this dammit, been meaning too for days but then... well shit DAYS have passed!
Post Reply