Defining a new economic system for future versions
-
- Developer
- Posts: 2150
- Joined: Mon Apr 23, 2007 1:17 am
- Location: Pennsylvania
- Contact:
also what is not agreed upon is the transmission of the economy from one base to the next. I believe you guys want to use some kind of non-simulated behind the scenes method for trade, allowing the simulated units to partake in trade but in a very superficial way. Effecting the economy would be done indirectly only.
I want to make interation with the economy direct, using real ship trades and a multiplier to simulate many ships having made the trade after the real ship. This effectively makes each trade vessel represent many. Allowing the few (5000) simulated ships in the game to maintain a bustling economy across many systems and factions.
I dont see the economy as a seperate process from the gameplay, but a direct effect of the gameplay.
I want to make interation with the economy direct, using real ship trades and a multiplier to simulate many ships having made the trade after the real ship. This effectively makes each trade vessel represent many. Allowing the few (5000) simulated ships in the game to maintain a bustling economy across many systems and factions.
I dont see the economy as a seperate process from the gameplay, but a direct effect of the gameplay.
Ed Sweetman endorses this message.
-
- Merchant
- Posts: 47
- Joined: Sat Jul 28, 2007 4:00 am
@safemode:
That seems like the most reasonable way to do it. And if we're basing the static economy off of this model, I don't think we'd lose that much by using a simpler method for the dynamic stuff.so your proposal is simply a method to generate starting prices. Once those prices are set, we'd use a dynamically and undefined method of supply and demand to dictate the changes in price
I think I was the only real proponent of using a non-gameplay method for the dynamic economy. You and chuck_starchaser are both proposing to send the cargo in ships, and adjust the price based on whether a base has too much or too little, and for how long. If I understand correctly, chuck_starchaser wants the trade routes to be a random selection from a list of routes that was statically calculated, you want to dynamically create them based on a table of bases that report needs or excesses. I'm not sure which method would be best, but I am concerned that it might be difficult to choose the static paths in chuck_starchaser's method so that the dynamic economy would be stable.also what is not agreed upon is the transmission of the economy from one base to the next. I believe you guys want to use some kind of non-simulated behind the scenes method for trade, allowing the simulated units to partake in trade but in a very superficial way. Effecting the economy would be done indirectly only.
-
- Developer
- Posts: 2150
- Joined: Mon Apr 23, 2007 1:17 am
- Location: Pennsylvania
- Contact:
doing the node analysis and setting the start price before actually beginnning a new game is fine. I got no problem with that. Have dyn universe call the economy setup function prior to dropping the player off at the docking bay in atlantis.
That can be done regardless of how the economy is during runtime.
That can be done regardless of how the economy is during runtime.
Ed Sweetman endorses this message.
-
- Trader
- Posts: 22
- Joined: Mon Feb 18, 2008 2:11 am
- Location: Eastern WA, USA
The only remaining question is the matter of time. Consumption and Production (hereafter C/P) are measured in units per period of time. Is there a way of currently measuring the passage of time (continuous throughout the entire gameplay) in Vega Strike?
The biggest difference of these two models, safemode and shadow_slicer, is discrete compared to continuous. The shadow_slicer model is very macro-economic while safemode is micro-economic. They're just two ways of looking at the same puzzle. Safemode's model uses discrete chunks of goods being transported. I (IMHO) prefer safemode's model for gameplay as it feels more real. The shadow_slicer model (as discussed already) is good for setting up the universe and setting the beginning prices.
The only issue I have with safemode's model is the use of the multiplier (yet). I can understand its use between planets (as the planets are really big), but among the bases I don't think it is necessary (I have to see it in action first to be really sure about it).
Setting up the actual C/P of each base / planet is quite easy. A simple mean / standard deviation for C/P of each commodity can be set for each type of base and faction owner. (I don't think confed bases / planets will have a great want for salted thok, however Aeran bases...). From the mean / SD, a z-score can be created by random number, plugged into the formula, and the actual C/P can be set for each commodity for each base. Using these random numbers (and the mean / SD) will create a random universe, within sane / believable limits. Once these numbers are created (in the dynamic universe creation) then the nodal analysis can be run setting up the prices for these commodities.
For some commodities there is a want, but not a production need. A mining base may need water, mining equipment, and food, but not need such things as liquor (but depending on who you ask...) or entertainment. The needs are requirements to produce goods, and if they aren't met, then only the production capacity is based on the amount of goods on hand / available. This is limited to less that the maximum, which is set out in the universe creation.
The AI trading (as safemode stated) is not based on prices, but on observed have / want (need will fit under want here). As far as I know, money is not simulated for the AI ships, so it doesn't matter what the prices are for the goods. Because of this, only the player has the ability to take advantage of a difference in the prices of goods, known as arbitrage.
Prices of goods are set with the nodal method in creation and are a function (afterward during gameplay as well) of have (which includes production), want (which includes consumption), distance, number of enemy (to the owner of the system, not the player) ships in system (a way to influence the blockade status). These numbers are only useful to the player (again, the AI ships will ignore prices)
Generating the stats for a new system is very similar to what is already being done. When a system is being simulated (player jumps in) the prices will need to be actually set. Random number time (but within the limits of what was set out in the beginning of the universe creation. This would be a factor of the previous state, plus number of enemy ships (a cheater's guide to blockade development), and any changes in ownership. Please come up with a more refined method to this.
When a player leaves systems and they are no longer being simulated fully (I know a number of systems around the player are being simulated, but when a system leaves this simulation) I think the state should go back to a base level (to the data of prices should not be saved. When returning to a system the prices (if nothing politically changes in the mean time) should be relatively close to where they were when the player left (a sign of a good model). If things have changed politically, then the prices can be expected to be much different.
Because not every system is modeled, and only a certain number are modeled at any one time then accurate arbitrage over distance (more than 3 or 4 systems away) can not be predicted. It's not impossible, actually very fesable as some places the prices will always be higher than others (water in wet vs arid planets) but will be unpredictable. As a side note, arbitrage in the real world is very unpredictable as true arbitrage states (in currencies and stock prices) only last for a few seconds at most before the prices change again and the opportunity is gone.
The only real way to see if blockades will work is to implement the system and see if that is what happens. If it doesn't work right, then a bit of tweaking of the model is needed.
One detail that is in reality that I would leave out of the game is changes in production of planets or bases. This relates to a growing universe, where eventually, productivity and amounts of goods needed will increase. To keep things simple, set up the dynamic economy first in .6, then in say .7, aim for a changing production. This relates to some goods (capital), such as mining / factory equipment and research, which if increased will supposedly increase the amount of production of a base / planet. I suggest leaving out the changing of C/P stats until .7 Right now, for .6 this equipment will be a need for production (as the old stuff breaks down eventually) but at a smaller consumption rate than raw materials (like noble gases) for production.
How may cargo missions fit into this model? Well in the real world there are futures contracts (the sale of a commodity at a certain price at a certain time no matter the current price or the price at the sale). The cargo missions could reflect a similar idea. The player buys a contract (cheap, really) to purchase (or sell) goods at a certain price at a certain location. If the contract price is higher than the current price at that location, then profit can be made by selling those goods. If the contract price is lower than the current price at that location, then a profit can be made by buying those goods. It may be a bit more complicated than we want for such a game, but an idea nonetheless.
The biggest difference of these two models, safemode and shadow_slicer, is discrete compared to continuous. The shadow_slicer model is very macro-economic while safemode is micro-economic. They're just two ways of looking at the same puzzle. Safemode's model uses discrete chunks of goods being transported. I (IMHO) prefer safemode's model for gameplay as it feels more real. The shadow_slicer model (as discussed already) is good for setting up the universe and setting the beginning prices.
The only issue I have with safemode's model is the use of the multiplier (yet). I can understand its use between planets (as the planets are really big), but among the bases I don't think it is necessary (I have to see it in action first to be really sure about it).
Setting up the actual C/P of each base / planet is quite easy. A simple mean / standard deviation for C/P of each commodity can be set for each type of base and faction owner. (I don't think confed bases / planets will have a great want for salted thok, however Aeran bases...). From the mean / SD, a z-score can be created by random number, plugged into the formula, and the actual C/P can be set for each commodity for each base. Using these random numbers (and the mean / SD) will create a random universe, within sane / believable limits. Once these numbers are created (in the dynamic universe creation) then the nodal analysis can be run setting up the prices for these commodities.
For some commodities there is a want, but not a production need. A mining base may need water, mining equipment, and food, but not need such things as liquor (but depending on who you ask...) or entertainment. The needs are requirements to produce goods, and if they aren't met, then only the production capacity is based on the amount of goods on hand / available. This is limited to less that the maximum, which is set out in the universe creation.
The AI trading (as safemode stated) is not based on prices, but on observed have / want (need will fit under want here). As far as I know, money is not simulated for the AI ships, so it doesn't matter what the prices are for the goods. Because of this, only the player has the ability to take advantage of a difference in the prices of goods, known as arbitrage.
Prices of goods are set with the nodal method in creation and are a function (afterward during gameplay as well) of have (which includes production), want (which includes consumption), distance, number of enemy (to the owner of the system, not the player) ships in system (a way to influence the blockade status). These numbers are only useful to the player (again, the AI ships will ignore prices)
Generating the stats for a new system is very similar to what is already being done. When a system is being simulated (player jumps in) the prices will need to be actually set. Random number time (but within the limits of what was set out in the beginning of the universe creation. This would be a factor of the previous state, plus number of enemy ships (a cheater's guide to blockade development), and any changes in ownership. Please come up with a more refined method to this.
When a player leaves systems and they are no longer being simulated fully (I know a number of systems around the player are being simulated, but when a system leaves this simulation) I think the state should go back to a base level (to the data of prices should not be saved. When returning to a system the prices (if nothing politically changes in the mean time) should be relatively close to where they were when the player left (a sign of a good model). If things have changed politically, then the prices can be expected to be much different.
Because not every system is modeled, and only a certain number are modeled at any one time then accurate arbitrage over distance (more than 3 or 4 systems away) can not be predicted. It's not impossible, actually very fesable as some places the prices will always be higher than others (water in wet vs arid planets) but will be unpredictable. As a side note, arbitrage in the real world is very unpredictable as true arbitrage states (in currencies and stock prices) only last for a few seconds at most before the prices change again and the opportunity is gone.
The only real way to see if blockades will work is to implement the system and see if that is what happens. If it doesn't work right, then a bit of tweaking of the model is needed.
One detail that is in reality that I would leave out of the game is changes in production of planets or bases. This relates to a growing universe, where eventually, productivity and amounts of goods needed will increase. To keep things simple, set up the dynamic economy first in .6, then in say .7, aim for a changing production. This relates to some goods (capital), such as mining / factory equipment and research, which if increased will supposedly increase the amount of production of a base / planet. I suggest leaving out the changing of C/P stats until .7 Right now, for .6 this equipment will be a need for production (as the old stuff breaks down eventually) but at a smaller consumption rate than raw materials (like noble gases) for production.
How may cargo missions fit into this model? Well in the real world there are futures contracts (the sale of a commodity at a certain price at a certain time no matter the current price or the price at the sale). The cargo missions could reflect a similar idea. The player buys a contract (cheap, really) to purchase (or sell) goods at a certain price at a certain location. If the contract price is higher than the current price at that location, then profit can be made by selling those goods. If the contract price is lower than the current price at that location, then a profit can be made by buying those goods. It may be a bit more complicated than we want for such a game, but an idea nonetheless.
I don't suffer from insanity, I enjoy every minute of it.
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Reading a flat table that ***hardly ever changes*** AND ***only the one for the planet they are stationed at*** is fine, IMO, and precisely what I propose. But what you propose is that a ship at base A is looking at the table of base B. THAT is what cannot work in finite time, because for a ship at base A to find out where to go by actually looking at the demand in other bases implies looking at tables of many other bases, possibly as many as hundreds, within fuel range.safemode wrote:I really dont understand why you insist that AI players will take too much cpu time to read a flat table with a simple layout to find out which bases are wanting something and which aren't. Price doesnt' matter. We determine where to go based on heirarchy and need. AI players always trade for a profit simply by always buying what is in surplus and selling to bases that are in need. They dont care about how much profit. They care fore-most about the heirarchy of their faction getting supplied. This keeps the economy stable and alive. Rather than hardcoded or stagnated.
With the system I proposed, a ship arrives at base A and only needs to look at base A's table to decide where to go.
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Developer
- Posts: 2150
- Joined: Mon Apr 23, 2007 1:17 am
- Location: Pennsylvania
- Contact:
no, what i said was that there is one table for all bases we currently simulate. One shared table. It is updated every time something is traded and that trade changes that local base's state for that or other items.chuck_starchaser wrote:Reading a flat table that ***hardly ever changes*** AND ***only the one for the planet they are stationed at*** is fine, IMO, and precisely what I propose. But what you propose is that a ship at base A is looking at the table of base B. THAT is what cannot work in finite time, because for a ship at base A to find out where to go by actually looking at the demand in other bases implies looking at tables of many other bases, possibly as many as hundreds, within fuel range.safemode wrote:I really dont understand why you insist that AI players will take too much cpu time to read a flat table with a simple layout to find out which bases are wanting something and which aren't. Price doesnt' matter. We determine where to go based on heirarchy and need. AI players always trade for a profit simply by always buying what is in surplus and selling to bases that are in need. They dont care about how much profit. They care fore-most about the heirarchy of their faction getting supplied. This keeps the economy stable and alive. Rather than hardcoded or stagnated.
With the system I proposed, a ship arrives at base A and only needs to look at base A's table to decide where to go.
So the ship at base A is looking at the table at base A (which is the same table as any base).
It then doesn't look at random bases within range. It only looks at the bases within it's faction and it goes in heirarchal order.
It finds the highest base's need, then looks if any bases have that need within non-enemy factions. If none have what the base needs, it goes down to the next base in it's heirarchy. Looks for what it needs and so on, until it finds a match.
Plain and simple. the table looks like this
ITEM | HAVE | WANT
Iron | sdobject | sdobject
sdobject is a struct with the basename string and a pointer back to a local var in the base of it's need/have value. The need and have value starts at 1 and goes up representing the level of supply or demand.
Every N seconds the next docking with a base updates the table by traversing the table and incrementing _THE_LAST_ sdobject in each item have/want spot. This is extremely quick, no slower than 2 for loops that do nothing but add 1 to an int for the number of items we trade.
This ensures bases that aren't being traded with dont get stuck never being traded with. Since their need will become greater than more popular bases.
When a need changes, (from supply to demand or neutral), we pop our sdobject.
Ed Sweetman endorses this message.
-
- Developer
- Posts: 2150
- Joined: Mon Apr 23, 2007 1:17 am
- Location: Pennsylvania
- Contact:
ITEM | Have | Want
iron | sdobject, sdobject | sdobject, sdobject, sdobject
grain | sdobject, sdobject | sdobject
what we'd do is loop through the wants, trying to match against our faction's list of bases. This creates a sorted list of wants bases starting with the highest order in our own faction, then going to friendly bases
We then look at our sorted list and look at the first base, and we loop through the Have's bases. We look to see if any base not an enemy has what it wants. If not, we move to the next base in our sorted list.
We do this until we get a match.
This table doesn't contain every base in the faction, or every base in the simulated systems. It only contains the bases that are in need of something in order to produce what that base produces, or a base has too much of something that it doesn't use.
Updates are constant time. All we do is delete or insert our base's sdobject in a state change or increment our local want/need variable. No traversing of the list is required.
Every N seconds, the items are looped through twice, the last sdobject is incremented. This is done on the next trade .
this keeps the date updated to the frame, no lag, no seperate process.
edti: keep in mind. My idea is in reference to a fully functional and directly interactive supply and demand economic system where bases consume goods and produce them and ships are considered a good.
iron | sdobject, sdobject | sdobject, sdobject, sdobject
grain | sdobject, sdobject | sdobject
what we'd do is loop through the wants, trying to match against our faction's list of bases. This creates a sorted list of wants bases starting with the highest order in our own faction, then going to friendly bases
We then look at our sorted list and look at the first base, and we loop through the Have's bases. We look to see if any base not an enemy has what it wants. If not, we move to the next base in our sorted list.
We do this until we get a match.
This table doesn't contain every base in the faction, or every base in the simulated systems. It only contains the bases that are in need of something in order to produce what that base produces, or a base has too much of something that it doesn't use.
Updates are constant time. All we do is delete or insert our base's sdobject in a state change or increment our local want/need variable. No traversing of the list is required.
Every N seconds, the items are looped through twice, the last sdobject is incremented. This is done on the next trade .
this keeps the date updated to the frame, no lag, no seperate process.
edti: keep in mind. My idea is in reference to a fully functional and directly interactive supply and demand economic system where bases consume goods and produce them and ships are considered a good.
Ed Sweetman endorses this message.
-
- Merchant
- Posts: 47
- Joined: Sat Jul 28, 2007 4:00 am
Do you think we could tie this list of wants to the dynamic news?
I think it would be neat if when a base's 'want' crosses a certain threshold we could see stories like 'Starvation imminent in Pender's Star' or 'Factories in in Industrial planet B have shutdown today putting millions on unpaid leave. The reason -- a shortage of iron ore'. And if the 'have' crosses a threshold we could see news stories like "Atlantis fisheries report record catches this year..." and "Manufacturing Center Alpha announces it's end of the sidereal year clearance sale. Everything must go!"
I think it would be neat if when a base's 'want' crosses a certain threshold we could see stories like 'Starvation imminent in Pender's Star' or 'Factories in in Industrial planet B have shutdown today putting millions on unpaid leave. The reason -- a shortage of iron ore'. And if the 'have' crosses a threshold we could see news stories like "Atlantis fisheries report record catches this year..." and "Manufacturing Center Alpha announces it's end of the sidereal year clearance sale. Everything must go!"
-
- Developer
- Posts: 2150
- Joined: Mon Apr 23, 2007 1:17 am
- Location: Pennsylvania
- Contact:
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Safemode, that seems to me like a lot of processing.
True, it's only done when a merchant ship docks; not at every frame; BUT, what happens if 100 merchant ships dock at many bases at the same time?
You make things sound exceedingly simple to compute, but I don't see it that way.
1) First of all, I was thinking of tables as C arrays, fixed size, that contain indexes, binary. Your tables are apparently text that has to be parsed and decoded and converted to binary representations on the fly... Plus, it seems you have variable length fields...
2) You say that each ship would only deal with bases of its own faction in hierarchical order. Why not bases of all friendly factions? And what kind of hierarchical order is this? Ordered by what criteria?
3) So, now, each time a ship docks you have to parse through this gargantuous, unified table, selecting bases of the ship's own faction, AND doing graph searches for shortest path to measure jump distance to each base... Or, were you thinking of "compiling" the table to some faster, STL-based, binary contents format on boot?
I think the method I proposed: A per-base table (C array) of a fixed size, 3 columns and 20 rows (on 64-byte alignment), needing no conditional evaluations (just a roll of the dice), needing no graph searches (since, by definition, all bases in the table are within short travel distance), and being binary from the start, would be a million times faster than what you are suggesting.
Instead of having to be limited, due to performance considerations, to a few systems (or a single system), my method would allow you to simulate shipping across a much larger area, which would create and maintain a history of economic dynamics in any system the player arrives at by the time the player does so. Just my 2c.
True, it's only done when a merchant ship docks; not at every frame; BUT, what happens if 100 merchant ships dock at many bases at the same time?
You make things sound exceedingly simple to compute, but I don't see it that way.
1) First of all, I was thinking of tables as C arrays, fixed size, that contain indexes, binary. Your tables are apparently text that has to be parsed and decoded and converted to binary representations on the fly... Plus, it seems you have variable length fields...
2) You say that each ship would only deal with bases of its own faction in hierarchical order. Why not bases of all friendly factions? And what kind of hierarchical order is this? Ordered by what criteria?
3) So, now, each time a ship docks you have to parse through this gargantuous, unified table, selecting bases of the ship's own faction, AND doing graph searches for shortest path to measure jump distance to each base... Or, were you thinking of "compiling" the table to some faster, STL-based, binary contents format on boot?
I think the method I proposed: A per-base table (C array) of a fixed size, 3 columns and 20 rows (on 64-byte alignment), needing no conditional evaluations (just a roll of the dice), needing no graph searches (since, by definition, all bases in the table are within short travel distance), and being binary from the start, would be a million times faster than what you are suggesting.
Instead of having to be limited, due to performance considerations, to a few systems (or a single system), my method would allow you to simulate shipping across a much larger area, which would create and maintain a history of economic dynamics in any system the player arrives at by the time the player does so. Just my 2c.
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Merchant
- Posts: 47
- Joined: Sat Jul 28, 2007 4:00 am
@chuck_starchaser:
The problem with your method, and indeed a problem with safemode's method is that is has no guarantee of price stability (requirement #3). If would be practically impossible to set the list of random routes such that all possible simulated subsets of the universe would create stable prices.
In safemode's method, if the subset can be made stable, it would automatically occur. Though it is very unlikely that the subset stable. So what we need is a method to send cargo in and out of the subset. I'm not how to detect when to do this other than extreme supply shortages/excesses, but I'm convinced this will be necessary.
The problem with your method, and indeed a problem with safemode's method is that is has no guarantee of price stability (requirement #3). If would be practically impossible to set the list of random routes such that all possible simulated subsets of the universe would create stable prices.
In safemode's method, if the subset can be made stable, it would automatically occur. Though it is very unlikely that the subset stable. So what we need is a method to send cargo in and out of the subset. I'm not how to detect when to do this other than extreme supply shortages/excesses, but I'm convinced this will be necessary.
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Well, that's why I was saying earlier, better just forget about simulating an economy. It's just not a realistic goal. You can just fake price fluctuations based on events; and let prices of items go down when a ship arrives with a cargo of them; or go up when a big ship buys a lot of stuff and leaves; that should be enough to create an illusion of a simulated economy. Going the whole 9 yards in simulating the economy complicates the programming 10-fold for very little return in terms of player value. If this was a strategy game, I'd agree; but it isn't.
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Hunter
- Posts: 95
- Joined: Sun Nov 18, 2007 1:19 pm
An approach for initial prices balancing could be - create the universe and then let it run for a while at big speed before the game starts. The initial prices could even be all the same (equal 100 or random). So the universe would balance itself and would not require another algorithm for initial price balancing and even amounts balancing.
-
- Hunter
- Posts: 95
- Joined: Sun Nov 18, 2007 1:19 pm
Well i was playing X2:The threat tonight. This is exactly how its implemented in that game. I can say that I am not happy with the economic system they have there.chuck_starchaser wrote:Well, that's why I was saying earlier, better just forget about simulating an economy. It's just not a realistic goal. You can just fake price fluctuations based on events; and let prices of items go down when a ship arrives with a cargo of them; or go up when a big ship buys a lot of stuff and leaves; that should be enough to create an illusion of a simulated economy. Going the whole 9 yards in simulating the economy complicates the programming 10-fold for very little return in terms of player value. If this was a strategy game, I'd agree; but it isn't.
The profit opportunities are very limited there. The prices are falling with time, and growing with demand, but never seem to outgrow some (hardcoded?) boundaries for some reason.
The biggest limitation I see is that you are not able to sell at a location that does not accept you goods (or where you bought them), so if your cargo bay is full of silicon wafers - good luck searching for that factory that accepts them. Maybe there could be a workaround by adding buy price/sell price.
Of course I am not sure a more dynamic system would satisfy me. I just would like a system that:
1)you would know is not cheating you
2)would allow for extreme profits of an opportunity
3)you can have impact on, and this impact could be seen trough out the system/faction/galaxy
-
- Elite
- Posts: 8014
- Joined: Fri Sep 05, 2003 4:03 am
- Location: Montreal
- Contact:
Gottcha. Not sure what to say to that. Perhaps you're right and the difference between fake and real simulation would be perceivable as "shallowness". On the other hand, perhaps a few tweaks and extras could make a fake quite believable. Perhaps a real simulation of the global economy at the factions level could modulate some of the numbers used in the price formulas used for bases. Perhaps siege data could be tweaked to have much stronger impact than trades.Breakable wrote:Well i was playing X2:The threat tonight. This is exactly how its implemented in that game. I can say that I am not happy with the economic system they have there.
The profit opportunities are very limited there. The prices are falling with time, and growing with demand, but never seem to outgrow some (hardcoded?) boundaries for some reason.
But having great profit opportunities shortens the game. Pretty soon you have the best ship money can buy, and then what?Of course I am not sure a more dynamic system would satisfy me. I just would like a system that:
1)you would know is not cheating you
2)would allow for extreme profits of an opportunity
Frankly, I don't think the player should have too much impact at all, unless you have something like a Clydesdale; and then your influence should go as far as affecting prices with your huge cargo. You land at a space station with a full load of pets, and as you sell your cargo, the price keeps falling until you're selling at a loss. Other than that, why should a nobody with a small ship affect the universe much?3)you can have impact on, and this impact could be seen trough out the system/faction/galaxy
What I see an impact being justified with is if the player kills (or protects from killing) some important character or public figure or leader. Perhaps effects of public morale should have economic repercussions.
Latest version of Cinemut Opaque
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
Latest version of LaGrande noodleworks (scroll down).
An evolving La Grande How-To...
The non-working, but latest, CineMut test_bike
PU (Privateer: Parallel Universe's Home). WC or Privateer Drayman for you?
WCpedia --The Wing Commander Encyclopedia-- From Angel Deveraux through Belisarius to Zachary Banfeld...
WC Nexus forum, the Moonbase Tycho of WC fans.
-
- Hunter
- Posts: 95
- Joined: Sun Nov 18, 2007 1:19 pm
I think its a good idea to try and see whats possible. If its possible to make a fake simulation enjoyable then it might be good enough. I think this can be checked with other commercial space fighters. Do you know of any other spacefighters that had an enjoyable economic simulation?chuck_starchaser wrote:Gottcha. Not sure what to say to that. Perhaps you're right and the difference between fake and real simulation would be perceivable as "shallowness". On the other hand, perhaps a few tweaks and extras could make a fake quite believable. Perhaps a real simulation of the global economy at the factions level could modulate some of the numbers used in the price formulas used for bases. Perhaps siege data could be tweaked to have much stronger impact than trades.
If not, maybe building a more live simulation would not take much resources? Of course its not possible to simulate 10 million ships with all their physics, AI and interactions, but maybe there is system that can achieve it at some believable level (safemode ).
Of course great profits should come at risk, but then:chuck_starchaser wrote: But having great profit opportunities shortens the game. Pretty soon you have the best ship money can buy, and then what?
Well if i can have impact on the galaxy, I would go doing impact everywhere.
Buy a space station.
Destroy an unlikable faction.
Make your own faction.
Start a galactic war.
Build a solar ring , or even a sphere .
Crush all who oppose me .
I am sure there is no end to an open source game if there is time and dedication to play/work on it. So after all is done - create something more afterwards
chuck_starchaser wrote: What I see an impact being justified with is if the player kills (or protects from killing) some important character or public figure or leader. Perhaps effects of public morale should have economic repercussions.
Well thats also a "would be a very nice feature". Of course it would require additional implementation. But not only characters can be important! Bases, stargates, planets and even ships could be important as well - its all - locations and resources - that are important in a war. Of course if it would implemented like that...
-
- Hunter
- Posts: 69
- Joined: Wed Mar 05, 2008 11:43 pm
X3 reunion has a pretty good dynamic economy.Breakable wrote: I think its a good idea to try and see whats possible. If its possible to make a fake simulation enjoyable then it might be good enough. I think this can be checked with other commercial space fighters. Do you know of any other spacefighters that had an enjoyable economic simulation?
From wikipeda:
"Using credits a player can buy wares from stations. These wares may be used, or flown to another station where they can be sold, ideally for a profit. However, prices vary depending on demand. The less of a ware there is, the higher its price. As such, the X-Universe has a truly dynamic market-driven economy. A player can capitalise on emergent trends, meeting demand to make vast profits; or as easily, can waste money and time on a bad cargo choice. In X³, many NPC ships have the same plan, and the player can easy miss their intended market if another ship arrives first.
As a player builds profits they can buy equipment, weapons, ships, and even their own factories.
Factory stations consume power and resources to produce products, which can then be sold into the X economy. If the product is rare, and the resources are cheap and plentiful, the factory can make profit. If not, it is possible to lose money. By filling a gap in the economy, a player can make solid and consistent profit through a factory. However, X³'s economy is self-adjusting; NPCs are able to build factories and can similarly profit. As such, X³ has the most advanced, realistic, and - arguably - the most competitive economy of all the X games."
-
- Hunter
- Posts: 95
- Joined: Sun Nov 18, 2007 1:19 pm
Did you try the game yourself?vodalian wrote: X3 reunion has a pretty good dynamic economy.
From wikipeda:
"Using credits a player can buy wares from stations. These wares may be used, or flown to another station where they can be sold, ideally for a profit. However, prices vary depending on demand. The less of a ware there is, the higher its price. As such, the X-Universe has a truly dynamic market-driven economy. A player can capitalise on emergent trends, meeting demand to make vast profits; or as easily, can waste money and time on a bad cargo choice. In X³, many NPC ships have the same plan, and the player can easy miss their intended market if another ship arrives first.
As a player builds profits they can buy equipment, weapons, ships, and even their own factories.
Factory stations consume power and resources to produce products, which can then be sold into the X economy. If the product is rare, and the resources are cheap and plentiful, the factory can make profit. If not, it is possible to lose money. By filling a gap in the economy, a player can make solid and consistent profit through a factory. However, X³'s economy is self-adjusting; NPCs are able to build factories and can similarly profit. As such, X³ has the most advanced, realistic, and - arguably - the most competitive economy of all the X games."
Any real differences from X2:
Does it have fixed minimum/maximum prices like X2 does.
Are you able to sell the ware anywhere you want - even if it means a loss for you.
Are the prices for all goods falling by a fixed amount instead of a percentage.
These are of course not very big drawbacks and they could be addressed - I just wonder if the end result is worth it.
PS:Sorry for trolling over this thread, but its just one post/day
I would love to see it in action. Hopefully I will sometime soon.
-
- Hunter
- Posts: 69
- Joined: Wed Mar 05, 2008 11:43 pm
Breakable wrote:Did you try the game yourself?vodalian wrote: X3 reunion has a pretty good dynamic economy.
From wikipeda:
"Using credits a player can buy wares from stations. These wares may be used, or flown to another station where they can be sold, ideally for a profit. However, prices vary depending on demand. The less of a ware there is, the higher its price. As such, the X-Universe has a truly dynamic market-driven economy. A player can capitalise on emergent trends, meeting demand to make vast profits; or as easily, can waste money and time on a bad cargo choice. In X³, many NPC ships have the same plan, and the player can easy miss their intended market if another ship arrives first.
As a player builds profits they can buy equipment, weapons, ships, and even their own factories.
Factory stations consume power and resources to produce products, which can then be sold into the X economy. If the product is rare, and the resources are cheap and plentiful, the factory can make profit. If not, it is possible to lose money. By filling a gap in the economy, a player can make solid and consistent profit through a factory. However, X³'s economy is self-adjusting; NPCs are able to build factories and can similarly profit. As such, X³ has the most advanced, realistic, and - arguably - the most competitive economy of all the X games."
Any real differences from X2:
Does it have fixed minimum/maximum prices like X2 does.
Are you able to sell the ware anywhere you want - even if it means a loss for you.
Are the prices for all goods falling by a fixed amount instead of a percentage.
These are of course not very big drawbacks and they could be addressed - I just wonder if the end result is worth it.
PS:Sorry for trolling over this thread, but its just one post/day
I would love to see it in action. Hopefully I will sometime soon.
Yes, I have owned it for a while. To be honest though, I haven't played too much because there's a few things I don't like about it (mostly the navigation system etc)Did you try the game yourself?
I haven't played X2 personally, but I have heard that some things about the x3 economy are a major step up, at least on the dynamic side.Any real differences from X2:
I believe so, not completely sure though since I haven't played it too much. But I do believe it uses a min/max.Does it have fixed minimum/maximum prices like X2 does.
.Are you able to sell the ware anywhere you want - even if it means a loss for you
yes
If I'm not mistaken, the price is 100% based on how much is in stock, but it works, I haven't heard anything about prices constantly falling. Most stations have items that are produced and items which are consumed, the stations that produces that given item is almost guaranteed to be cheap since it will always have a lot of that particular item in stock, and stations which consume that item will buy it for more because it will always have little of that item. I also believe that stations refuse to sell items which they consume. Besides the consumption rate, the real dynamics is in the fact that there are CPU ships which do the same thing as you. So if one area has too many traders, it will lower profits since there will be less of that item in stock for you to buy, which means higher prices. Another example is if you want to sell your load at a station and you see a trader ship that is also about to dock to sell it's wares, you could potentially kill that ship to ensure lower prices for you.Are the prices for all goods falling by a fixed amount instead of a percentage.
-
- Hunter
- Posts: 95
- Joined: Sun Nov 18, 2007 1:19 pm
This system seems to be reasonably well, but has some drawbacks:vodalian wrote: If I'm not mistaken, the price is 100% based on how much is in stock, but it works, I haven't heard anything about prices constantly falling. Most stations have items that are produced and items which are consumed, the stations that produces that given item is almost guaranteed to be cheap since it will always have a lot of that particular item in stock, and stations which consume that item will buy it for more because it will always have little of that item. I also believe that stations refuse to sell items which they consume. Besides the consumption rate, the real dynamics is in the fact that there are CPU ships which do the same thing as you. So if one area has too many traders, it will lower profits since there will be less of that item in stock for you to buy, which means higher prices. Another example is if you want to sell your load at a station and you see a trader ship that is also about to dock to sell it's wares, you could potentially kill that ship to ensure lower prices for you.
Prices are based on amount in stock only. This imposes the minimum/average/maximum price because at 0% stock its minimum price and at 100% stock its maximum price. Maybe its possible to improve it a little by basing prices on the stock as well as basing the average price on the last purchase time, or throughput of a specific base. This could help to get rid of the minimum/maximum price limits, which i really hate in X2. Some periferic bases/planets that don't trade much would allow for greater profits. But being far away they would require more effort to get to (and more risk as well).
Also adding a sell price/buy price could allow to purchase even the resources that a specific station uses, but at a much higher price.
Of course this system requires that there would be AI trading ships, that are reducing demand and supply for all available bases - this is a big implementation.
Are there any other economic systems you like?
-
- Star Pilot
- Posts: 5
- Joined: Thu Apr 10, 2008 4:14 am
- Contact:
Economy input/example
This seems to be no small task. I figure I'll put my 2 cents in.
One example of a working economy is puzzlepirates.com. Granted, there are limited NPC factors, but it relates.
Allow me to make up variable names to explain.
When you pull into port, you head to the hold to restock.
You are presented with a list of goods which you can sort by $BuyPrice or $SellPrice. Each shop on the island has an offer/price and a $Quantity to buy/sell. A shop can have separate $Buy and $Sell prices/quantities if they are inclined. You can filter the list by consumed here, produced here, or by what you have in your hold. So assuming you are looking to offload your recent pillage, you filter by what's in the hold, and sort by $BuyPrice ('buy' from the shops POV is sell from yours). There might be one shop which badly needs one unit of good X, and is offering a higher price, so you naturally sell your first unit to them. There might be another shop which will eventually need many units, so they offer a low price. You can sell any quantity up to $Quantity to any given shop. As you satisfy $Quantity for $HighestOfferShop, you have to settle for lower and lower prices, or pull up anchor and head to another island.
This addresses the absurdity of buying up OceanicPlanet's entire foodstuff stock and selling the lot to the closest TinySpacePort.
Hmm... Blah, blah, blah, see their wiki
So, a populous planet would have many shops with a wide range of prices, while a space station might have the official shop + a coupla guys in trenchcoats. How you get the planet/station to emulate a multitude of individual consumers/producers is way beyond me. Like I said, PP has no NPCs in the economy [unless you figure in computer controlled ships, which can pillage and be pillaged, but do not otherwise get involved in trade], each shop is human-run.
Anyway, supply and demand, production and consumption. I know it's all been addressed, but this is an example to chew on.
And, yes, I [occasionally] play PP as PoxChicken on the hunter "ocean". I figured it was the easiest way to keep in touch with my sister, and the user base skews significantly more chronologically advanced than I had assumed. Heh.
One example of a working economy is puzzlepirates.com. Granted, there are limited NPC factors, but it relates.
Allow me to make up variable names to explain.
When you pull into port, you head to the hold to restock.
You are presented with a list of goods which you can sort by $BuyPrice or $SellPrice. Each shop on the island has an offer/price and a $Quantity to buy/sell. A shop can have separate $Buy and $Sell prices/quantities if they are inclined. You can filter the list by consumed here, produced here, or by what you have in your hold. So assuming you are looking to offload your recent pillage, you filter by what's in the hold, and sort by $BuyPrice ('buy' from the shops POV is sell from yours). There might be one shop which badly needs one unit of good X, and is offering a higher price, so you naturally sell your first unit to them. There might be another shop which will eventually need many units, so they offer a low price. You can sell any quantity up to $Quantity to any given shop. As you satisfy $Quantity for $HighestOfferShop, you have to settle for lower and lower prices, or pull up anchor and head to another island.
This addresses the absurdity of buying up OceanicPlanet's entire foodstuff stock and selling the lot to the closest TinySpacePort.
Hmm... Blah, blah, blah, see their wiki
So, a populous planet would have many shops with a wide range of prices, while a space station might have the official shop + a coupla guys in trenchcoats. How you get the planet/station to emulate a multitude of individual consumers/producers is way beyond me. Like I said, PP has no NPCs in the economy [unless you figure in computer controlled ships, which can pillage and be pillaged, but do not otherwise get involved in trade], each shop is human-run.
Anyway, supply and demand, production and consumption. I know it's all been addressed, but this is an example to chew on.
And, yes, I [occasionally] play PP as PoxChicken on the hunter "ocean". I figured it was the easiest way to keep in touch with my sister, and the user base skews significantly more chronologically advanced than I had assumed. Heh.
-
- Star Pilot
- Posts: 5
- Joined: Thu Apr 10, 2008 4:14 am
- Contact:
-
- Elite Venturer
- Posts: 718
- Joined: Wed Mar 07, 2007 9:05 pm
- Location: Rimward of Eden
I'm more in favor of implementing a basic supply/demand economy with consumption and production than with multiple NPC's etc. WHile its an interesting idea that could be cool in multiplayer (if we move toward an X-style creation etc. economy) I don't think it would add all that much to single player, as it sounds kind of random as to profit margins.