System Populator Memory

An area for discussing new ideas and additions to Oolite.

Moderators: winston, another_commander

User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4830
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: System Populator Memory

Post by phkb »

Thanks everyone for your comments and thoughts. I can see this might be a tougher nut to crack than I first imagined. I get the "player is insignificant in the universe" thing. But I don't think that means the player has no significance at all. Even in the core game, the player is well known enough to be contacted by a certain member of the Navy.
ffutures wrote:
This really only works if you stay in a very small area.
Yes, that was what I was thinking. If you spend enough time in a system, making it your "home" so to speak, then you would potentially start to see a change. If you're a courier constantly on the move, this OXP would do nothing.

A little bit of full disclosure here. Part of the reason for this thread came about because I am working on a mission pack to utilize the Bulletin Board system I set loose recently. One of the missions is a pirate hunt mission. Now, if you stay in the system, you can run that mission any number of times because a new one will be randomly regenerated after you complete the previous one. Obviously I can put restrictions in so that it will only offer 1 pirate hunt mission per destination system per month. But in the end it's just a way to make more money. Do mission, get bonus credits. I was wondering about ways of making the significance of the mission more related to the environment, rather than the player. Complete enough of these missions and you'll make the system a better place in some way (fewer pirates, better market prices, that sort of thing). It's something to aim for when credits are no longer a driving force in the game. Actually, I still have plans for another mission pack, revolving around the slave trade, that wouldn't offer many credits, but the impact would be on the numbers of slaves for sale in each system, and the price of those slaves, with the ultimate goal being to eradicate the slave trade entirely. But that's another OXP.

Now, in my mind I envisaged the ratio being something like 100 pirates = 1% change to spawning rate. That is, you'll have to complete a lot of them to make a noticeable difference.
Day wrote:
if the algo looks for balance changes introduced by other actors, then the whole system evolves by itself, which is GOOD.
My thoughts were to make the players actions indicative of everything else in the system, thereby limiting the calculation to just what the player does. It means less code, although it would probably mean it's more player-centric. However, the one part of the system that is still player-centric is the galaxy itself. The only part of the galaxy that "exists", with NPC's at work doing their thing, is the one the player is in. So it wouldn't be completely on it's own!

Anyway, this has been a very helpful discussion. Thanks again to everyone whose chipped in.
User avatar
cim
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 4072
Joined: Fri Nov 11, 2011 6:19 pm

Re: System Populator Memory

Post by cim »

phkb wrote:
Thanks everyone for your comments and thoughts. I can see this might be a tougher nut to crack than I first imagined. I get the "player is insignificant in the universe" thing. But I don't think that means the player has no significance at all.
I think it's worth noting that "insignificant" isn't necessarily the same as "unnoticed". Having any sort of permanent or substantial effect on anything is going to be virtually impossible, but doing something which makes the local daily news for a day or two before being forgotten is probably possible.

(Of course, given the usual hyperspace transit times, that means it'll have become yesterday's fish wrappings by the time you've left the system and come back again)
phkb wrote:
Even in the core game, the player is well known enough to be contacted by a certain member of the Navy.
I read the first contact as them contacting everyone with a high combat rating in the appropriate charts - surviving to get 256 kills is rare enough - and the player being the first one foolhardy enough to try but skilled enough to succeed.

The second contact is then them using someone who they know is willing to take on really dangerous jobs for unadvertised pay but might last long enough to be worthwhile as the decoy in a package delivery run.
User avatar
Norby
---- E L I T E ----
---- E L I T E ----
Posts: 2577
Joined: Mon May 20, 2013 9:53 pm
Location: Budapest, Hungary (Mainly Agricultural Democracy, TL10)
Contact:

Re: System Populator Memory

Post by Norby »

Something which worth to remember when arrive back into a system is "mates". If you help out a ship in combat then could be a chance to be very thankful and promise that he will remember you, in this case you could buy him better weapons, shields, etc. and then he could continue the started work in balancing after you leave the system. Sometimes he could jump into a nearby system but if he is not a courier then probably will not go too far, at least not without writing an email for his friends including you.

So if you recruit enough buddies in a small part of a galaxy then the cumulative effect could be permanent in reducing pirates, or even increasing it if you are one also.

Another question is what will happen if a system reach an endpoint like very few to zero offenders due to hundreds of hunters or no clean ships due to one thousand pirates. These could be marked on the map to flag the extra danger or safety. In this way the player can almost "liberate" the galaxy if he choose this to a long-term goal, but new offenders still can galjump into from the previous galaxy (until there is any unsafe system there).
User avatar
Disembodied
Jedi Spam Assassin
Jedi Spam Assassin
Posts: 6885
Joined: Thu Jul 12, 2007 10:54 pm
Location: Carter's Snort

Re: System Populator Memory

Post by Disembodied »

Norby wrote:
Another question is what will happen if a system reach an endpoint like very few to zero offenders due to hundreds of hunters or no clean ships due to one thousand pirates. These could be marked on the map to flag the extra danger or safety. In this way the player can almost "liberate" the galaxy if he choose this to a long-term goal, but new offenders still can galjump into from the previous galaxy (until there is any unsafe system there).
If the pirates run out then those hunters will start to go hungry. Some might turn to trading, but with so many other ships able to move around without fear, the profit margins are going to be slim. And they're good at combat ... they might be tempted - forced, even - to do a little piracy on the side. After all, it's their hard work that's made the spaceways safe. It's only fair that those merchants make some sort of thank-you gift from time to time!
User avatar
spara
---- E L I T E ----
---- E L I T E ----
Posts: 2691
Joined: Wed Aug 15, 2012 4:19 am
Location: Finland

Re: System Populator Memory

Post by spara »

Disembodied wrote:
Norby wrote:
Another question is what will happen if a system reach an endpoint like very few to zero offenders due to hundreds of hunters or no clean ships due to one thousand pirates. These could be marked on the map to flag the extra danger or safety. In this way the player can almost "liberate" the galaxy if he choose this to a long-term goal, but new offenders still can galjump into from the previous galaxy (until there is any unsafe system there).
If the pirates run out then those hunters will start to go hungry. Some might turn to trading, but with so many other ships able to move around without fear, the profit margins are going to be slim. And they're good at combat ... they might be tempted - forced, even - to do a little piracy on the side. After all, it's their hard work that's made the spaceways safe. It's only fair that those merchants make some sort of thank-you gift from time to time!
Could this be interpreted so that the final result of pirate/hunter/trader ratio is always the same per system? Then this circulation is already elegantly implemented, we're just not aware of it? :mrgreen:
User avatar
Disembodied
Jedi Spam Assassin
Jedi Spam Assassin
Posts: 6885
Joined: Thu Jul 12, 2007 10:54 pm
Location: Carter's Snort

Re: System Populator Memory

Post by Disembodied »

spara wrote:
Could this be interpreted so that the final result of pirate/hunter/trader ratio is always the same per system? Then this circulation is already elegantly implemented, we're just not aware of it? :mrgreen:
Probably! Piracy is a result of the underlying economic and political circumstances of the planets and their populations across the Co-operative. Killing pirates is dealing with the symptoms, not the disease ...
User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16081
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Re: System Populator Memory

Post by Cody »

Disembodied wrote:
And they're good at combat ... they might be tempted - forced, even - to do a little piracy on the side.
Gamekeepers turned poachers, contrabandistas turned couriers - the wheel turns!
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
ralph_hh
---- E L I T E ----
---- E L I T E ----
Posts: 297
Joined: Tue Nov 11, 2014 12:42 pm
Location: Germany

Re: System Populator Memory

Post by ralph_hh »

The economy / contract system of Oolite is based on the principle that the players impact is insignificant.

A planet that offloads some of its over-production in food and all you can buy is a few tons, not enough to fill a tiny spaceship? Explanation here in this forum was: your part is fairly small. That amount is all, you are given, the big deals are done by companies with huge fleets. Same should be true for transport contracts. Imagine space travel is possible and affordable, why are there so very few passengers?

Problem: you cant' fill the Oonivers economy realistically. Not with 10000 passenger contracts, not with 10000 tons of goods available. It would unbalance the game to the very boring side. As well you can't populate the Ooniverse with thousands of ships to reflect the situation accordingly.

So Oolite does its best to act as if there is something big going on, but you just dont't see it. In reality, if you fly through vast empty space, you will also not meet a very lot of other ships.

Introducing the idea that the player can influence the system, eliminate the pirates - and maybe also the traders... Well, just imagine. Should not the price for just anything go through the roof? Good, services, contracts? If I'm the king of that systems sky, the last surviving pilot, I'd demand at least a million credits for a lift to the next system, another million to bring back some food that the last contract said, this system needed badly.
Fritz
---- E L I T E ----
---- E L I T E ----
Posts: 591
Joined: Sun Jul 12, 2015 2:30 pm
Location: Bavaria, Germany
Contact:

Re: System Populator Memory

Post by Fritz »

Just some thoughts and numbers, because I was thinking about related things. Memorizing destroyed rock hermits is one thing, but I also thought about the total number of ships, and giving the player more possibilities to gain a realistic reputation, or to actually change something in the Ooniverse. I limited my thinking mostly to freighters, because I like them :), but of course it could refer to other ships too.

As I've mentioned somewhere, I made some company liveries for freighters, and the OXP also names freighters, using company naming schemes. Doing this, I created individual NPC ships, because most naming schemes I use can only create a limited number of names. Because of this, a player will encounter some of these ships more than once, and in different systems, even in different galaxies.

Because of this I thought about how many companies with a given fleet size (number of ships with unique names) would be necessary to fill the Ooniverse. Calculating with a very rough (and probably to low) estimate of an average of five big freighters (Python, Boa, Boa 2, Anaconda) in each of the 2048 systems and the same number in witch space, I found that there should be more than 20000 freighters around. If 50% of these are operated by big companies, there would have to be 10 very large companies, each operating around 1000 freighters, or 100 smaller companies, each operating around 100 freighters. That's nothing an OXP could realistically simulate, so I'm just ignoring the problem.

The total number of ships existing in each system seems to be in the order of magnitude of 100. Again, we have to add some ships in witch space and docked at stations, let's say 25%. So we have around 250000 ships flying around in the Ooniverse, not counting Thargoids. I don't know how many of these ships are pirates, but let's say 10% = 25000. An Elite pilot has killed at least 6400 ships, but this includes non-pirates like assassins, harmless offenders, and Thargoids. Even if no new pirates replace the killed ones, one pilot wouldn't change the Ooniverse too much, considering that it takes many years of game time to kill thousands of pirates!

(On the other hand, simulating 10000 individual freighters, or even 250000 individual ships and their fates wouldn't be impossible with a modern computer; of course the save files would have to be replaced by a real database. But would it make the game really better? I don't think so.)

Phkb only wants to change one system. If an anarchy system contains, let's say, 50 pirates, these could be killed during one game day, the player actually would make a difference! I found that it is possible to significantly reduce the number of pirates if I fly from witchpoint to main station and back several times, because new pirates don't seem to jump in as often as traders. But after saving the game and launching again, it is a big difference if I quit and restart the game or if I launch again without quitting. In the first case, the system is like new (full of pirates again), in the second case, it is still rather empty.

For me, this is the main problem with the current saving system, or "memory", and it doesn't only apply to pirates but also, for example, to ships waiting around a station. I can dock with 50 ships lurking around or waiting in the queue, but if I relaunch 15 game minutes later, they are gone. Before this is fixed, any more details, like an impact on economy, or increased numbers of traders, wouldn't make much sense.

It isn't even necessary to store every single ship in the system (that would be around 100), it would be enough to store the different groups and their locations to give the right impression. This would reduce the number of save file entries to around 20 or 30. Considering that the markets are stored and even the comms log, this wouldn't inflate the save files significantly.
"You wouldn't kill me just for a few credits, would you?" – "No, I'll do it just for the fun!"
ocz
Deadly
Deadly
Posts: 175
Joined: Tue Nov 10, 2015 1:59 pm

Re: System Populator Memory

Post by ocz »

Repopulation of the system after restoring a gamestate, how it is handeld currently, is indeed a problem, as it breaks the illusion. The best way to counter this is to store every shipgroup (as Fritz says), but also very ship + additional informations about them, as OXPs like random ship names do create these information. This isn't as important, as one can assume they just got away or jumped out, if you don't find specific ships anymore. Yet it would still be good, if you find at least some of them, if you launch again and go looking for them. (Also information about 100 ships are a nightmare to debug, but don't really make the savegame really mentional big.)

The methods used to modify the populator described in this threat, can be used to better this situation. This OXP has the potential, to at least not overpopulate the system after loading a gamestate. On the otherhand an independent OXP compatible to this one doing this, would do, too.
User avatar
cbr
---- E L I T E ----
---- E L I T E ----
Posts: 1422
Joined: Thu Aug 27, 2015 4:24 pm

Re: System Populator Memory

Post by cbr »

Perhaps instead of storing information about ships, only have a few number variables per system, let oolite add or remove the number of ships.

per system variables could be

system lave

a = 10 ( big freighters )
b = 50 ( small freighters )
c = 5 ( pirates )
d = 1 ( hunters )

and so on
oxp's can change a,b,c,d to accommodate seasonal changes
Fritz
---- E L I T E ----
---- E L I T E ----
Posts: 591
Joined: Sun Jul 12, 2015 2:30 pm
Location: Bavaria, Germany
Contact:

Re: System Populator Memory

Post by Fritz »

I didn't suggest storing individual ships because it only makes sense with a naming OXP installed - otherwise you wouldn't recognise the ships anyhow. But I did have situations where a certain ship attacked me and managed to get away, and I would have tried to find it again after docking and making repairs.

Storing only the ships that have interacted with the player would be a compromise. The data would have to include ship type, name, missiles left, fuel left, and cargo. And we would have to think about ship types that can have random weapons or liveries.
"You wouldn't kill me just for a few credits, would you?" – "No, I'll do it just for the fun!"
User avatar
spara
---- E L I T E ----
---- E L I T E ----
Posts: 2691
Joined: Wed Aug 15, 2012 4:19 am
Location: Finland

Re: System Populator Memory

Post by spara »

Just to clarify, Fritz. You're talking about restoring the state of the system after save/load, right? I mean, if you just dock and launch, the system should pretty much stay the same. Give or take a few ships jumping in and out.
User avatar
Smivs
Retired Assassin
Retired Assassin
Posts: 8408
Joined: Tue Feb 09, 2010 11:31 am
Location: Lost in space
Contact:

Re: System Populator Memory

Post by Smivs »

Fritz wrote:
Storing only the ships that have interacted with the player would be a compromise. The data would have to include ship type, name, missiles left, fuel left, and cargo. And we would have to think about ship types that can have random weapons or liveries.
Which would be a massive task in itself although it is the minimum that would make sense in these terms.
ocz wrote:
Repopulation of the system after restoring a gamestate, how it is handeld currently, is indeed a problem, as it breaks the illusion.
Personally, I don't see this as a problem, because when I save in a sense my Commander is taking a well-earned break - taking a shower and a good night's sleep and maybe a day or two of shore-leave on the station. When I launch I wouldn't expect the traffic around the station, or anywhere in-system to be the same as when I docked - indeed it would seem silly if it was.
If you dock and relaunch (maybe a quick 'pit stop' to empty the hold or top-up fuel) the system traffic persists so in the rare event of wanting to deal with something but need to dock first for some reason just relaunch, and save later.
Commander Smivs, the friendliest Gourd this side of Riedquat.
User avatar
spara
---- E L I T E ----
---- E L I T E ----
Posts: 2691
Joined: Wed Aug 15, 2012 4:19 am
Location: Finland

Re: System Populator Memory

Post by spara »

Smivs wrote:
ocz wrote:
Repopulation of the system after restoring a gamestate, how it is handeld currently, is indeed a problem, as it breaks the illusion.
Personally, I don't see this as a problem, because when I save in a sense my Commander is taking a well-earned break - taking a shower and a good night's sleep and maybe a day or two of shore-leave on the station
I love this thought :D . Just wind the clock forward for 12 hours on save/load and presto, immersion breaking save state problems are history :mrgreen: .
Post Reply