There's no such thing as too big

Thinking about improving the Artwork in Vega Strike, or making your own Mod? Submit your question and ideas in this forum.

Moderator: pyramid

lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

safemode wrote: Role of new Commerce Center:
Yeah, using a demands list is what I've been thinking about. But it's more tricky than you think:

By limiting the range, it becomes impossible to fulfill demands for which there are no sources within the range. Same is for surpluses.

You need to consider the cargo that is supposed to arrive in determining the demands. You need a way to deal with cargo supposed to arrive not actually arriving.

All cargo transfers would have to go via the commerce center. The commerce center becomes a single point of failure and creates a bottleneck. There would have to be a commerce center in every system. They would have to create and to maintain a monopoly in the services they provide. That appears to be very difficult in a universe that is plagued by frequent power shifts and is in a state of anarchy.

Every base and planet would (want to) have its own ships instead of relying on the mercy of a commerce center.

Every base and planet would have a great interest in communication its own information about what it wants to buy and what to sell. How do the commerce centers force all these places not to do that?

You also need to consider the available money and the prices at which a place is willing to buy or sell something. If a place doesn't have the money to buy everything it needs, it can't buy it.

Some places might not want to trade with some others, like when their factions are enemies to each other.


So I think I won't make aggregated lists ... Every place would decide what it wants to buy and to sell at what price on its own. It would make this information public, by inserting a request into a general list. The requests in that list would be communicated throughout the universe --- they would have a timestamp and communicating them would take appropriately long. They also might need a time to live because a place may become willing to buy for a higher price or to sell for less over time and thus place a new request.

Every place and every unit can look at the list, but only those requests that have reached it would be visible to it. The place/unit then decides which request(s) it wants to act upon. In case of a place, it could send a ship to buy/sell something; in case of a unit, it could fly there on it's own.

The trader might arrive too late and the place won't buy his cargo, or not sell to him because the request has already been fulfilled. Or he might find that the prices have changed to his advantage or disadvantage.

While approaching a place, requests from closer to that place become more recent, and a trader might decide to act upon another request instead.

The list of requests would be available during flight. It's no more than communicating some data, and that isn't so difficult that it would require to be docked somewhere.


In case of a freighter, that freighter would process the available requests for itself and try to make an optimized route. It could be as simple as considering only requests from one system at a time, comparing that to what's available in the current system, to what the freighter already has in the cargo hold and to what it could get in systems on the way, then to calculate how much profit a given route would yield within a certain period of time and compare that to the profits of other possible routes. That would be an ongoing process.

Ships owned by places would pretty much only do what the place owning them tells them to do, like "buy this type cargo for the best price, but don't go further than X systems", etc.. They would use the list of requests to find a place to buy from.


Information about prices other than related to demands/supplies could go into the same list, or a separate list, and be communicated the same way the request list is.

The role of commerce centers could be that they own a lot of ships, process the requests and prices and make profits by eventually keeping things on stock and by having their ships working for other places.

Communication may be interrupted --- blocked altogether, or requests can get lost. Commerce centers may have established more reliable communication to commerce centers in other systems, and cooperating gives them an advantage.
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

jackS wrote:

Code: Select all

\win32\bin\mesher.exe -dims clydesdale.bfxm
Processing clydesdale.bfxm...
clydesdale.bfxm -30.9034        -67.4916        -114.166        30.9034 59.4977 144.484

Code: Select all

lee@cat:~/Games/vs/vegastrike$ ./mesher -dims /home/lee/Models/vs/ball.bfxm
Error: wrong mode string
lee@cat:~/Games/vs/vegastrike$ 
and, from units.csv, the scaling factor for the Clydesdale is 9.44
That only works when you take the current scaling factor as a given ...
I'd be curious to see what mesher thinks the coordinate span of your test sphere is.
Hehe, me too :)
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
jackS
Minister of Information
Minister of Information
Posts: 1895
Joined: Fri Jan 31, 2003 9:40 pm
Location: The land of tenure (and diaper changes)

Post by jackS »

Sounds like the bfxm for your sphere model may be either corrupted or malformed.
How did you generate the bfxm in question? Can you post the file?
Also, I'm not entirely sure if what I'm inferring you to mean by
lee wrote:That only works when you take the current scaling factor as a given ...
is the same as what you're intending to imply, so additional clarification on that point could be useful.

This is a bit tangential, so my apologies to the main discourse of this thread.
lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

jackS wrote:Sounds like the bfxm for your sphere model may be either corrupted or malformed.
It might be --- the ship looks ok in wings3d, but it's broken in VS. It's not finished yet, and looking at it is somewhat boring. You are supposed to be able to fly into it ... I played around with textures but left them uncompressed as pngs in 4096x4096 for the testing.
How did you generate the bfxm in question?
I made a model in wings3d, exported it as obj and used mesher to convert it:

Code: Select all

./mesher /home/lee/Models/vs/ball.obj /home/lee/Models/vs/ball.bfxm obc
Can you post the file?
Sure --- but attachments are blocked in this subforum. Hmm ...
Also, I'm not entirely sure if what I'm inferring you to mean by
lee wrote:That only works when you take the current scaling factor as a given ...
is the same as what you're intending to imply, so additional clarification on that point could be useful.
What I mean is that how big a ship is, is unknown --- unless the designer (or someone else supposed to decide it) definitely says how big it is: How big it appears in the game depends on the size of the model and the scaling factor as much as on the apparent size of other objects because you can't see anything else than relative sizes.

This is a bit tangential, so my apologies to the main discourse of this thread.
Hm, maybe we should start a new thread for this ... Ship sizes become something to think about when it comes to mind how long it must take to fill them with cargo. And how do you get a ship the size of a Clydesdale to move? It's got an engine on the back, but wouldn't the enormous thrust it produces crush the hull? (That's why I made a sphere, they'd probably hold up better ...)


PS: I found some place to upload:

http://www.datafilehost.com/download-17f054eb.html
http://www.datafilehost.com/download-5e986259.html
http://www.datafilehost.com/download-3ce3c5af.html
http://www.datafilehost.com/download-6f148b12.html
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

lee wrote:
safemode wrote: Role of new Commerce Center:
Yeah, using a demands list is what I've been thinking about. But it's more tricky than you think:

By limiting the range, it becomes impossible to fulfill demands for which there are no sources within the range. Same is for surpluses.
Privateers can still make multi-system distance trades, the information is still dumped to dynamic news when prices fall or rise over a thresh-hold (local supply and demand can't deal)
You need to consider the cargo that is supposed to arrive in determining the demands. You need a way to deal with cargo supposed to arrive not actually arriving.
demand is dictated by need + time not having it. Since the source of the goods is never known before it actually gets there, you have no "supposed to" variable to look at. In space you can't depend on something being there until it gets there, and there may be more than one guy trying to make the trade, price is dictated on a first come first serve, not by some contract.

All cargo transfers would have to go via the commerce center. The commerce center becomes a single point of failure and creates a bottleneck. There would have to be a commerce center in every system. They would have to create and to maintain a monopoly in the services they provide. That appears to be very difficult in a universe that is plagued by frequent power shifts and is in a state of anarchy.
The merchant guild is largely neutral, older than most factions, highly organized and has the funds and means to defend and build their centers. They could be considered as stable places where business can be conducted outside of the chaos of space.
Every base and planet would (want to) have its own ships instead of relying on the mercy of a commerce center.

Every base and planet would have a great interest in communication its own information about what it wants to buy and what to sell. How do the commerce centers force all these places not to do that?
Everyone wants to cut out the middleman everywhere, but they all dont have the time to deal with everything the middleman does, hence the middleman still has plenty of positions throughout the workforce. In this case, the middleman is the merchant guild, which makes deals and such with all the various factions, thus each faction is more likely to do business with it without violence or thievery than base to base. It may sound like it's giving up a lot of freedom, but there are great advantages in dealing with the commerce center.

also, bases dont have ships they own. Not currently. The idea that the commerce center would have some is a new idea, and is limited in function and number.
You also need to consider the available money and the prices at which a place is willing to buy or sell something. If a place doesn't have the money to buy everything it needs, it can't buy it.
not being able to sell something in order to buy what you need, is a failed economy. It's our job to make sure things are coded and setup for that not to happen. The game doesn't have the time to deal with broken economies, we're not trying to micromanage some type of sim city game on a massive scale. All of the economies will be setup to be functional, such that they teeter between high and low demand, high and low supply, but never deadlock with high demand but no means to quell it.
Some places might not want to trade with some others, like when their factions are enemies to each other.
Hence the commerce center.
So I think I won't make aggregated lists ... Every place would decide what it wants to buy and to sell at what price on its own. It would make this information public, by inserting a request into a general list. The requests in that list would be communicated throughout the universe --- they would have a timestamp and communicating them would take appropriately long. They also might need a time to live because a place may become willing to buy for a higher price or to sell for less over time and thus place a new request.
This is dynamic news, only it's done when the situations become such a priority that it makes the news.
Every place and every unit can look at the list, but only those requests that have reached it would be visible to it. The place/unit then decides which request(s) it wants to act upon. In case of a place, it could send a ship to buy/sell something; in case of a unit, it could fly there on it's own.
You want > 12000 units, then you want each one pushing requests into a list that each one reads and parses comparing what is demanded with what it has and determining how far it would have to travel to make the trade and what price is set to see if it is profitable to do so depending on risk involved.

yea that wont take long to process. Do you plan on a turn based game? cuz by then the framerate will probably feel like it. Now granted, all but maybe 4-8 systems dont have to worry about physical simulation, but there are still more than enough units to make that list large and the amount of processing each unit has to do on it each time it reads it is fairly large.
The trader might arrive too late and the place won't buy his cargo, or not sell to him because the request has already been fulfilled. Or he might find that the prices have changed to his advantage or disadvantage.
indeed, such is the perils of space travel of interstellar distances. By the time someone some distance away reads the news, it may have been taken up by someone closer, if that person far away takes up the mission, they are cut off from news updates as they travel and wont find out till they get there. That's part of the risk. Now they have to find a new buyer for their cargo cuz they made a mistake.
While approaching a place, requests from closer to that place become more recent, and a trader might decide to act upon another request instead.

The list of requests would be available during flight. It's no more than communicating some data, and that isn't so difficult that it would require to be docked somewhere.
By the time you got close enough to communicate directly, you'd not be worse off just docking and finding out you got beaten there by some other trader. No need to load up the game with hundreds of units making requests and checking requests.

You're looking at the fact that there is no news during flight thus a trader can get screwed if they had been in-transit when situations changed as a bad thing. I see it as a feature.

we want things to work perpetually, but that doesn't mean it has to make every merchant's life peachy keen. Some people are gonna lose.
In case of a freighter, that freighter would process the available requests for itself and try to make an optimized route. It could be as simple as considering only requests from one system at a time, comparing that to what's available in the current system, to what the freighter already has in the cargo hold and to what it could get in systems on the way, then to calculate how much profit a given route would yield within a certain period of time and compare that to the profits of other possible routes. That would be an ongoing process.
A freighter would be dealing with quantities of goods that are large enough such that if any other trader was making trades while the freighter was en-route, it wouldn't matter. Either the freighter is controlled by an NPC, or the commerce center of a given system. NPC's would act like any other privateer. Commerce Center Freighters dont care about making the "most" profit, they deal in mass quantities and a mass number of transactions. They only care that they make _some_ profit. If a privateer beats it to a base with their own freighter and plans on bypassing the commerce center, the merchant guild looks unfavorably on them.

Basically, i dont want to think about making such large organizations with such vast funds, knit pick on meaningless differences in some prices of a single trade. So long as the net amount of money is positive, why would it care? It is dealing in numbers. Commerce Centers are the walmarts of the universe. Yea, sometimes they do things really cheap (much cheaper than they could get away with), but they're doing it so many damn times more than anyone else can do, that it doesn't matter. They are still the richest in the universe.

But even more importantly, i'm thinking on a practical standpoint from the point of view of looking at how much processing has to go on during physics frame per unit.

You want a single list with at least 6 members (timestamp, ttl, good, amount, price, unit). You'd then have to look up at least the location of the unit and it's faction relation.
You then want basically every unit to write to this list and read from it.
This scales horribly. Horribly even if we scan it and do nothing, it's even worse if we're diving into the members of each element in the list.

Even if we make this happen on an interval, the list can get large enough such that a single traversal can take way too long.

My lists are highly limited, (i'm talking a dozen or so elements at the most being looked at at any one time). My lists are local to bases, meaning it doesn't care about how many units are in the game, and adding systems to the game doesn't significantly impact the scaling of the lists either. You'd have to increase the number of bases in a system and that's unlikely to happen.

Unit processing of trading needs to be kept stupid. We can't take every variable that real merchants use into consideration. We have to dumb down the process to an extremely limited set of variables that can scale well and doesn't require much time. NPC's want to make profit, but we need a short cutoff point of how hard it looks for the "highest" profit, and at that point, it just goes with whatever it has. As long as it's net income is positive, things will continue to work in the game. Having this cutoff point be short is integral. This is why my commerce centers stop at 1 system distance, despite the obvious situation where some systems wont be adjacent to any that have what they need. This is also why we set a decent thresh-hold for when demand gets really high or supply gets really high/low for such a base to add a dynamic news item. Thus if after a given amount of time supply or demand is not met, we allow NPC's across the universe to take advantage of the "extreme" profit situation. It may take some time, but someone will take care of it.

The idea that we can make every trader a wall street shark is impractical. All we care about is that everyone has the ability to remain profitable to some level. Some traders in rare situations may lose money. Just as long as our bell curve is healthy, we are fine with that.


Finally, we technically have no means for interstellar communication. We rely on ships physically transporting news from one system to the next, and the idea of news within a system is still a bit shady, but we ignore the physical limitations of the speed of information within a system. The idea of information being only available at the base has a little to do with "speed of information" and a little to do with the merchant guild controlling how this information gets distributed. They're neutral, but they're not about to let themselves get phased out of existance. They try to control economic information as much as possible, with the occasional dynamic news blurb being the rare data that they can't quell completely.

One could probably imagine a means for looking up info on bases within your own faction, bypassing the merchant guild. but such trading likely wont be nearly as profitable.
Ed Sweetman endorses this message.
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

Pick a list of variables you think is necessary for the economy from the merchant's point of view.

Describe how the merchant to base interaction occurs using those variables.

Then how the variables are received/set such that the merchant can use them.

Then we can go from there. Keep in mind, my above method involves only dealing with the commerce center, i'm not changing how trade occurs by NPC's or the player from how they happen now at all.
Ed Sweetman endorses this message.
lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

safemode wrote:
lee wrote: By limiting the range, it becomes impossible to fulfill demands for which there are no sources within the range. Same is for surpluses.
Privateers can still make multi-system distance trades, the information is still dumped to dynamic news when prices fall or rise over a thresh-hold (local supply and demand can't deal)
Oh, ok, I was thinking the news are for the player and not considered by NPCs.
You need to consider the cargo that is supposed to arrive in determining the demands.
demand is dictated by need + time not having it. Since the source of the goods is never known before it actually gets there, you have no "supposed to" variable to look at.
Yep, I got confused. The requests you use are not static and don't pile up, so the only thing to go by is what is actually there.
The merchant guild is largely neutral, older than most factions, highly organized and has the funds and means to defend and build their centers. They could be considered as stable places where business can be conducted outside of the chaos of space.
Well, everyone would hate them because everyone would depend way too much on them. For a relatively short time, they might become pretty powerful, but not for long.
It may sound like it's giving up a lot of freedom, but there are great advantages in dealing with the commerce center.
Sure there are, but that doesn't mean that they would be so extremely powerful. They could offer very useful services, but they wouldn't be the only ones for most of them.
also, bases dont have ships they own. Not currently. The idea that the commerce center would have some is a new idea, and is limited in function and number.
They should have ships, as much as they need and can afford.
not being able to sell something in order to buy what you need, is a failed economy.
You can't sell what you don't have.
Some places might not want to trade with some others, like when their factions are enemies to each other.
Hence the commerce center.
The commerce center doesn't change the origin or destination of the cargo. The seller/buyer might have requirements about the destination/origin of the cargo.
This is dynamic news, only it's done when the situations become such a priority that it makes the news.
Not really, the news are just news. They are not so easy to integrate into a trading computer/interface that helps the player to make decisions.
You want > 12000 units, then you want each one pushing requests into a list that each one reads and parses comparing what is demanded with what it has and determining how far it would have to travel to make the trade and what price is set to see if it is profitable to do so depending on risk involved.
Yes, and I'm even going further: You'll have to keep track of the cargo so that the weapons I manufacture are not being sold to my enemies --- and to be able to tell if a paracontainer needs to be repacked.
Do you plan on a turn based game?
I'm just awfully tired of all the poor economy and AI simulations that are only pretending things to make players believe that they simulate an economy or play by the same rules the player does. They are no fun anymore once you find out that they are skipping too many things or even cheat to make it easier for the programmers.

The FPS display in VS is jumping between 125 and 250; top is confused about CPU load (between 24 and 105% while flying on autopilot, but min 50% idle on both cores at the same time) and the graphics card is outdated. Of those frames, I can see 50 at best, probably less.

No, don't make it slower. But make an awesome economy simulation that does actually simulate and not just pretends to.
The list of requests would be available during flight.
By the time you got close enough to communicate directly, you'd not be worse off just docking and finding out you got beaten there by some other trader.
If I can see the list while flying, I can make decisions while flying and don't need to waste a lot of time docking at every station in every system to find out their prices and to compare them.
You're looking at the fact that there is no news during flight thus a trader can get screwed if they had been in-transit when situations changed as a bad thing. I see it as a feature.
It's not only news. Actually, I never read the news. It's the prices of the places in the current system I want to see while flying, and it would be the list of requests I would want to see. I see it as annoying, not as a feature, that I can't see the prices --- and as something that hopefully will be implemented soon. People fly around in spaceships, but they are unable to communicate cargo lists? That doesn't make much sense.

Besides, it is something you can give the players to do while flying. If they can read news, make an analysis of the market, develop their trading strategies and give orders to the other ships and stations they own, they won't be bored during flight anymore.
A freighter would be dealing with quantities of goods that are large enough such that if any other trader was making trades while the freighter was en-route, it wouldn't matter.
Huh?
Either the freighter is controlled by an NPC, or the commerce center of a given system.
What about the player?
If a privateer beats it to a base with their own freighter and plans on bypassing the commerce center, the merchant guild looks unfavorably on them.
If they'd do that, I'd start shooting down all the commerce centers and their ships I can find once I could afford the fleet I'd need for that --- either that, or take away their business so that they run out of money and have to abandon their stations.
Basically, i dont want to think about making such large organizations with such vast funds, knit pick on meaningless differences in some prices of a single trade. So long as the net amount of money is positive, why would it care?
Why would it not? Their purpose is to make profits, and as you describe them, they would be the most powerful organization in the universe which means that they could do whatever they want.

You don't want to pay their prices? Ok, you don't get your cargo and you're out of business. You want more for what you have to sell? Well, you can either sell it for the price they dictate or go out of business. You have been elected president of your faction? Too bad that they don't like you and that there's nothing you could do against your faction being denied all trade. You need to repair your ship? No chance, the merchant guild looks unfavorably on you so that no ship dealer would sell you parts or repairs because he'd be out of business immediately if he did. You don't want to work for them? Ok, but see to it that your family can hide from them on some uninhabitable gas giant and hope that they will never be found.

They would care: To maximize their profits and to keep their power. They are not at all like your friendly walmart --- walmart has competitors, but they don't.
Commerce Centers are the walmarts of the universe. Yea, sometimes they do things really cheap (much cheaper than they could get away with), but they're doing it so many damn times more than anyone else can do, that it doesn't matter. They are still the richest in the universe.
You don't become the richest in the universe by giving away things for free when you don't have to. And they don't have to. They are greedy bastards.

Not that commerce centers weren't useful: If you want to use paracontainers, it's likely that not every place is able to handle them. Not many could do that. Each of the detachable paracontainers of an Ox is too large to be squeezed into the docking bay of a mining base, and mining bases don't exactly have the capacity to handle the 221000 containers an Ox carries. They'd charge you for their service, and they'd charge a lot. But that doesn't mean that there weren't as many other places to handle such freighters that are not owned by the merchant guild as there are places owned by them.

If you had to run a faction, could you allow another "sort-of faction" to be in total control of the economy of all factions? You couldn't. Soon there were no factions but the merchant guild.

Maybe the merchant guild _would_ be a faction. They could hold a tight grip on a couple unlucky systems and participate in the trade in others, but that's it.
We have to dumb down the process to an extremely limited set of variables that can scale well and doesn't require much time.
And the result is just another stupid and boring simulation that pretends rather than that it simulates.
All we care about is that everyone has the ability to remain profitable to some level.
What do you need a "simulation" for then? Trade is already profitable for the player, and it doesn't matter for NPCs.
Finally, we technically have no means for interstellar communication.
Sure you have, just place satellites at each end of each wormhole, have them record communications and transmit recorded communications and then change places. It would take time, but it's better than nothing or relying on ships to eventually fly through a wormhole. Maybe you can even transmit through the wormhole ...
We rely on ships physically transporting news from one system to the next, and the idea of news within a system is still a bit shady, but we ignore the physical limitations of the speed of information within a system.
If prices change like every 10 or 15 minutes, intra-system speed should be sufficient. Even with delays, it's way better than nothing. Your ships computer would watch the prices and start showing you the development once the first update has been received. You could still be off, but that makes it more interesting.
The idea of information being only available at the base has a little to do with "speed of information" and a little to do with the merchant guild controlling how this information gets distributed. They're neutral, but they're not about to let themselves get phased out of existance.
Obviously, they are a dangerous enemy. They control all information and tell people what to think and to do.

That doesn't sound like a universe that's fun to visit. It might be fun if there was a plot you could play that leads to the extinction of the evil merchant guild, or better, the extinction of the evil merchant guild could be a possible goal to achieve for the player.
One could probably imagine a means for looking up info on bases within your own faction, bypassing the merchant guild. but such trading likely wont be nearly as profitable.
Maybe it's a good idea to set up production and consumption before designing ways to trade. It would allow to figure out how much cargo needs to be moved; and that would make it easier to think about ways how to move that cargo.
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

You're trying to micromanage an economy when the game is not about micromanaging an economy. You can't build a fleet because the game is not about building empires. The idea that you have nasdaq in your ship is insane. The idea that you can simultaneously simulate an economy a-la sim city, simulate politics a la civilization, and simulate realtime physics and graphics like wing commander on a scale that _none_ of those games deal with and expect the player to function in that kind of information overload is equally insane.

The goal is to make every aspect of the game useful to any 1 player. Be them a privateer, a mercenary, a pirate, a faction suckup. If people are having to ignore great portions of the game or are even "able" to ignore great portions of the game in order to have fun, then the game isn't coded right. Micromanaging economics is going to do 1 of two things. Either people get involved with it and completely put the rest of the game to the wayside, because they dont have time to deal with it, or they completely ignore all the aspects of the micromanaged economy and just buy low and sell high whatever and wherever they can like people do now.

It's really not that we dont want to do more work and that's why we dont simulate every minute detail of physics and economy and such. The underlying purpose of writing anything is to use as little resources as possible to achieve the goal intended. Right now we have two different goals for what the economy represents in the game. You want to micromanage on the unit level. I want the economy to be as realistic as needed to make it usable to both the player and the campaign, but beyond that, i really dont care if certain liberties have to be taken to make it as such. We have to bend reality to make things functional in the game.

So, the question is, how few variables and constructs can we have to provide an economy that is dynamic, responsive, and functionally integral to the workings of the various factions in the universe. How little can we get away with to make things enjoyable to the player as well as integral to strategy?

Now we are far from saturating the system cpu on most people's systems, nobody will argue that. What we do have an issue with is a lack of parallelization, and we have discrete time limits for certain operations that have to be done serially regarding graphics and sound. Now i've thrown around previously that certain aspects of simulating Faction AI's and economics could probably be done in parallel without much in the way of locking and thus have a _far_ better ability to use any available resources at our disposal, but that doesn't mitigate the fact that just because we can use the resources, doesn't mean we should if we can accomplish our goals without having to.


Basically, completely forget about the mechanics of the economy at the individual level. Forget about what goes on with goods once they get off the ship. Forget how many people need to be employed or how many robots would there need to be and what their energy usage would be and how much volume would their living quarters take up and how would they be compensated and how much would their living expenses be and how all that crap is done. we're not concerned with that, players aren't concerned with that when they're dodging pirates and the military. You need to get away from micro-economics and start thinking about macro-economics and functioning more along that scale. Sure, we have individuals trading goods in tiny quantities and some doing vast amounts of goods. Dont let that confuse you into thinking that there needs to be micro-economics involved. it isn't necessary to make the model work.
Ed Sweetman endorses this message.
shadow_slicer
Merchant
Merchant
Posts: 47
Joined: Sat Jul 28, 2007 4:00 am

Post by shadow_slicer »

I think that lee brought an important point:

When commerce centers are owned by a neutral party trading is not dependent on faction relations, creating several problems:
1) Blockades will no longer work. How can a faction blockade a system? The commerce center and its ships are neutral. It would be a political disaster to destroy commerce ships. In the engine we would need to special case their destruction, and enable the creation of replacements.
2) Trade relations between warring factions are the same as those of factions at peace. Since the commerce infrastructure is neutral, it does not notice such things.

Really I'm not sure why the commerce center needs to be neutral. I think it should belong to the faction that currently owns the system. Then the management of trading could fall under the Faction AI. The Faction AI can assign some of its freighters to handle the intra- and inter-system trading as previously described. It could consult the surplus/shortages list and assign ships to transport goods such that it tends to buy within its faction, try to avoid buying from factions it finds unfavorable and ignore systems owned by factions they're at war with.

[Edit] Another problem -- if the price difference between the bases and commerce center is small, why would the player ever WANT to go to a planet. At the commerce center they could sell goods that are demanded at several different bases at near the price desired at the bases -- all without going from base to base.

[Edit2] There needn't be a commerce center in every system. There could simply be a designated "commerce base" which is basically a normal base which also functions as the warehouse for the system.
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

shadow_slicer wrote:I think that lee brought an important point:

When commerce centers are owned by a neutral party trading is not dependent on faction relations, creating several problems:
1) Blockades will no longer work. How can a faction blockade a system? The commerce center and its ships are neutral. It would be a political disaster to destroy commerce ships. In the engine we would need to special case their destruction, and enable the creation of replacements.
2) Trade relations between warring factions are the same as those of factions at peace. Since the commerce infrastructure is neutral, it does not notice such things.
Blockades dont exist, so not having blockades function isn't a loss of a feature, just a loss of a feature i wanted to see happen. Trade relations aren't the same, because the commerce centers are extremely limited in to who they interact with. A lot of trade will still have to be done by 3rd parties other than the merchant guild's commerce centers.

The only issue i see here is how to deal with a neutral party in a time of war. Obviously you can't let them do business with both you and your enemy, and obviously you can't piss them off or they wont do business with you. If the commerce centers have faction relations, then we have to take into account a relation status thresh-hold in order to make trades

One could say that the commerce centers are what is neutral, but all ships belong to factions. Like stepping into a commerce center is like stepping into a safe-zone. Kinda a-la babylon 5. But all trading of goods is done by third parties, so if any ships are destroyed or blockaded from their destinations, the commerce center doesn't care, it's got it's money already.
[Edit] Another problem -- if the price difference between the bases and commerce center is small, why would the player ever WANT to go to a planet. At the commerce center they could sell goods that are demanded at several different bases at near the price desired at the bases -- all without going from base to base.
Indeed, for goods where the difference in price is small between the planet/base and the commerce center, they wouldn't want to. That's the point. The only reason to travel from one base to another (far away) base would be for higher profit margins. no problem with that.

[Edit2] There needn't be a commerce center in every system. There could simply be a designated "commerce base" which is basically a normal base which also functions as the warehouse for the system.
You could have varying sizes of commerce bases that reflect the size and population of a system. That's to be expected. Some systems may have no commerce bases at all, these would be like fringe systems where fending for yourself is key. We'd probably limit these systems to a single minor base or so that is mostly self sufficient, to minimize cries for goods.
Ed Sweetman endorses this message.
shadow_slicer
Merchant
Merchant
Posts: 47
Joined: Sat Jul 28, 2007 4:00 am

Post by shadow_slicer »

But there a couple of things I don't understand:

1) Why should the commerce centers be neutral?
Is it easier to implement? Is it required by some feature? Is it part of the vegastrike universe? I don't understand what benefit is gained by making them neutral, and it causes a couple of complications that would be avoided otherwise.

2) Why are commerce centers needed in most systems? What I was saying before was take one of the planets or bases that are already in the system and designate it the system trading post. Say take the commerce center (if available) or the most livable/largest/most productive base. Of course, if the commerce centers must be completely neutral, this probably won't work. Otherwise this could help solve the 'traveling from commerce center to commerce center' problem, and reduce the uniformity of the universe.

Oh, and one suggestion: You can use a simple 1-system away surplus/shortage model like you propose for full universe-wide trade. Let each commerce center/trading post/whatever try to maintain a certain supply of each good in storage by reporting a shortage to its neighbors when its current supply is less than what it wants to keep. Then let them also advertise these supplies as part of their surplus. Then your algorithm should naturally move goods around the universe as needed*.

*Well, there are some implementations that would work better than others. It wouldn't work at all if trades in each system was synchronized and each system ordered just enough to fill its stockpile (unless the stockpile was larger than the possible demand from its neighbors in one step). Ideally systems would look at what the ordered in the previous step and increase it if their stockpile is too low/ decrease it if their stockpile is too high.
lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

safemode wrote:You're trying to micromanage an economy when the game is not about micromanaging an economy.
Not necessarily --- in any case, it's only possible to go so far. But that doesn't mean that factors not really simulated couldn't be considered. For example, you don't have to simulate repackaging paracontainers in detail, but you should consider that they sometimes will have to be repackaged and that it takes time to do that. So you don't simulate it in detail, but you know what's in the paracontainer so that you can decide if it has to be repacked --- if it has to, you don't do more than putting the containers involved on hold for the time that can be assumed repackaging would take.
You can't build a fleet because the game is not about building empires.
You should be able to. What's there to strategy when you can only have one small ship and nothing to do but fly around in it? You can already do that, and once you have explored a couple different ships and different upgrades, it becomes boring.
The goal is to make every aspect of the game useful to any 1 player. Be them a privateer, a mercenary, a pirate, a faction suckup. If people are having to ignore great portions of the game or are even "able" to ignore great portions of the game in order to have fun, then the game isn't coded right.
Different players will always have different interests. That a player can ignore available possibilities isn't a bad thing. It's a good thing because it allows him not only to make use of the possibilities he's interested in but also leaves him other possibilities to explore.
I want the economy to be as realistic as needed to make it usable to both the player and the campaign, but beyond that, i really dont care if certain liberties have to be taken to make it as such. We have to bend reality to make things functional in the game.
It strikes me weird that you are suddenly willing to bend reality to whatever extend needed to inyo improve the gameplay when it comes to something as substantially important as economy while you stick so much to it when it comes to pretty unimportant details like the exact physical requirements involved in the operation of a spec engine.
So, the question is, how few variables and constructs can we have to provide an economy that is dynamic, responsive, and functionally integral to the workings of the various factions in the universe.
What do you need it for? Without the possibility of building an empire, the player won't have any impact on it. He can already trade and make profits.

The universe is static anyway: Bases and ships cannot be built. It's not so noticeable because it automatically expands on demand --- but otherwise, it's static. The universe is dormant for the most part; only the very small part where the player happens to be has some NPC ships flying around (which can't even dock anywhere). But all of a sudden, you want to add a dynamic economy.
Dont let that confuse you into thinking that there needs to be micro-economics involved. it isn't necessary to make the model work.
It needs to be decided what the depth of the simulation would need to be. It also needs to be decided how it works. To be able to decide how it works, you first need to think about the details involved so that you know what needs to be considered. From there, you get a better idea about how deep the simulation will need to be and what it would take to make it so. If it can't be made as deep as desirable, you need to make it less deep, but that doesn't mean that you should just discard everything that would take place on a deeper level --- instead, be aware of if and integrate it into your simulation in a more generalized way as best as possible.

You are trying to do it the other way round. It's like you wanted to build a skyscraper starting at the highest floor instead of the lowest because you only want the highest floor. That makes you think you could make the highest floor any way you see fit, ignoring all requirements that may arise from (having to have) all the floors below it. If you are extremely lucky (or extremely fast in building) your skyscraper will (sort of) work for the time it takes for the highest floor to crash on the ground. But that doesn't take long, and you won't even be able to get to the highest floor because there are, of course, no elevators or stairs. --- Having lower floors is required, but they don't need to be fully featured. They might not need windows, but the elevator goes through them --- maybe it doesn't stop on any other floor than the highest. But you want to do it without.

If you, for example, just discard everything that goes deeper than a whole system, you could just fill up freighters, fly them to one place in your system and then just "magically" fill up all the places in that system as needed. You won't even need a freighter, you could just take cargo away from a source and put it at another in no time.

But what for? Why do you need an economy at all?
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

safemode wrote: Blockades dont exist, so not having blockades function isn't a loss of a feature, just a loss of a feature i wanted to see happen.
But you would loose the existing possibility. And what's the countermeasure against shutting down a system by mining all its wormholes? You'd be inside the system with anyone trying to get in being destroyed on entry --- or you'd mine and leave so that nobody knows who dropped the mines.
Trade relations aren't the same, because the commerce centers are extremely limited in to who they interact with. A lot of trade will still have to be done by 3rd parties other than the merchant guild's commerce centers.
A freighter would be dealing with quantities of goods that are large enough such that if any other trader was making trades while the freighter was en-route, it wouldn't matter. Either the freighter is controlled by an NPC, or the commerce center of a given system.
You can't have both.
Indeed, for goods where the difference in price is small between the planet/base and the commerce center, they wouldn't want to. That's the point. The only reason to travel from one base to another (far away) base would be for higher profit margins. no problem with that.
You probably wouldn't know about such opportunities, and would they exist?
We'd probably limit these systems to a single minor base or so that is mostly self sufficient, to minimize cries for goods.
In any case, you'll want to keep the amount of cargo that needs to be moved as low as possible.
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

safemode wrote:Pick a list of variables you think is necessary for the economy from the merchant's point of view.

Describe how the merchant to base interaction occurs using those variables.
Hm, I'm not sure what you mean by "necessary for the economy". Economy needs production, distribution and consumption. The merchant wants to know what's going on with these.

Interacting with a particular base, the merchant wants to know what the base would buy and sell for what prices. If he has knowledge about the economical situation in a region, he might make assumptions about the development of supply and demand and prices. If he interacts with several bases, he can compare their offers to find out how he might make the most profit. He might want to build his own bases and to run a fleet of his own ships and use information about the economy to decide on his strategies for that.
Then how the variables are received/set such that the merchant can use them.
The most basic thing is receiving prices from all the places he can trade with within the system he's currently in, received by means of communication. He might also receive information from places in other systems, but those might be outdated too much to be useful due to limits of the means of communication. However, the merchant would use a database to keep track of all the prices he knows about and analyze the data as needed.
Then we can go from there. Keep in mind, my above method involves only dealing with the commerce center, i'm not changing how trade occurs by NPC's or the player from how they happen now at all.
What difference does it make to the merchant if he's trading with a commerce center or a mining base? He might not be able to directly trade with them if his freighter is too large to be handled by the mining base so that he would have to use his tugs or employ others to move the cargo which increases the price he'd have to pay for the cargo --- but I think problems like that are still a somewhat unsolved issue.

It isn't even know yet about what amounts of cargo we're talking. It's only known that there are ships in the game that could carry huge amounts of cargo if there was a way to handle these amounts within a reasonable amount of time. I can't help thinking that once production and consumption have been designed, it may turn out that the cargo holds of (many) ships are insanely oversized for (almost) all practical purposes.
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

shadow_slicer wrote:But there a couple of things I don't understand:

1) Why should the commerce centers be neutral?
It is required because there needs to be an explanation why trade must be amassed (aggregated) at one place, like a commerce center. Part of that is that it can have advantages on the side of implementation to use aggregation: Moving, for example, 588000 cargo containers can be computed faster when you need only one instruction for it (like "stockpile=+588000;") rather than many instructions like:

Code: Select all

while(container->next) {
  add_container_content_to_base(container, base); // many instructions in that function ...
  container=container->next;
}
I'd prefer to keep the number of containers lower --- a lot of problems wouldn't come up then. If that's possible depends on how production and consumption are implemented. Let's give it some numbers:

If a refinery needs 100 containers of copper and 33 containers zinc and 0.02 containers of fuel per minute to produce 133 containers of brass, you'd have to handle (100+33+0.02+133)*60=15961.2 containers per hour on that base to produce 7980 containers of brass per hour.

If that's a lot or not depends on consumption: How much brass do you need to build a Clydesdale? Maybe 10 containers?

Bad example? Maybe, because you don't much brass but large amounts of other alloys the hull is made of. But how many Clydesdales do you build within a system or four within an hour? That can't be many because building a ship that large takes a long time: a year or two.

It shows that the refinery will have to stop production of brass once it has like 50 containers on stock --- and (somewhat unrealistically) switch production to the alloys the hull is made of. It would also consume food, medical supplies, clothing, entertainment etc., but that's not related to production but to time. You'd just have to ship them a few containers of that every now and then.

Still, what numbers are involved? Is it more like 16k containers/hour or more like 10/hour that are needed at a refinery? For the most of it, it's probably more like 10/hour.
2) Why are commerce centers needed in most systems?
Because you would need places capable of handling the enormous amounts of cargo/containers amassing at a single due to the aggregation you apply. How/where lists of demands/supplies are administered isn't so much a problem.

But as said, we need to know actual numbers first. We probably won't have millions or hundreds of thousands of containers. Maybe tenthousands, more likely only 1000-3000. The lower the total numbers of containers, the less it makes sense to aggregate them.
Otherwise this could help solve the 'traveling from commerce center to commerce center' problem, and reduce the uniformity of the universe.
Does it matter much if you go from trading post to trading post rather than from commerce center to commerce center?
Ideally systems would look at what the ordered in the previous step and increase it if their stockpile is too low/ decrease it if their stockpile is too high.
They would probably have to "learn" at what levels they need to keep their stocks: Compute an average between changes and make that average the new limit. If it's too low, increase the limit; if it's too high, decrease it --- maybe based on the average and the number of changes that have occurred so far.
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
shadow_slicer
Merchant
Merchant
Posts: 47
Joined: Sat Jul 28, 2007 4:00 am

Post by shadow_slicer »

shadow_slicer wrote:
>But there a couple of things I don't understand:
>
>1) Why should the commerce centers be neutral?

It is required because there needs to be an explanation why trade must be amassed (aggregated) at one place, like a commerce center.
I don't see why that would be needed as an explanation. It seems to me that concentrations of goods for warehousing and distribution will spring up naturally regardless of neutrality. If you look at the distribution systems in use in the real world, they tend to have distribution centers simply because it reduces operational overhead.
>2) Why are commerce centers needed in most systems?

Because you would need places capable of handling the enormous amounts of cargo/containers amassing at a single due to the aggregation you apply.
I agree that they are needed, but I think it would be tacky to put a "commerce center" in all or even most systems just to handle that role. Just let some other planet/base handle it. That way you could see several different base types even if you're just doing inter-system trading.
lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

shadow_slicer wrote: I don't see why that would be needed as an explanation.
If the distribution centers your whole economy (and all economy throughout the universe) depends on are under the control of a particular faction, without the possibility of alternatives for you, you are totally screwed the moment that that faction decides to shut you down. Therefore, the faction controlling the universe must be neutral. That's safemodes idea, not mine. I wouldn't think that a faction controlling the universe like that could be neutral.
It seems to me that concentrations of goods for warehousing and distribution will spring up naturally regardless of neutrality.
Exactly --- but it's not possible to build or replace stations during the game ... That needs to be changed.
I agree that they are needed, but I think it would be tacky to put a "commerce center" in all or even most systems just to handle that role.
Me too --- though it remains yet to be shown that are really needed.
Just let some other planet/base handle it. That way you could see several different base types even if you're just doing inter-system trading.
That won't work for the idea of bulk trading because of the docking and handling capacity required for it. If you would do bulk trading, you wouldn't do it everywhere because that wouldn't make much sense. It's the same as not having a distribution center everywhere but only where it's needed.

Otherwise, it may be reasonable to have other types of places handle a large deal of the trade within a system --- that effect could "naturally" evolve out of the ongoing simulation. Every type of place would have to have a limit to how much docking and cargo movement it can handle. If that is exceeded, other places would take over a part of the trade until all their capacity is exhausted. If that happens, it may be time to build more places, or even a commerce center ...
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
shadow_slicer
Merchant
Merchant
Posts: 47
Joined: Sat Jul 28, 2007 4:00 am

Post by shadow_slicer »

If the distribution centers your whole economy (and all economy throughout the universe) depends on are under the control of a particular faction, without the possibility of alternatives for you, you are totally screwed the moment that that faction decides to shut you down.
This is why the faction controlling trade in a system should be the owner of the system. I don't think we should have a single faction controlling everybody's trade. Just let each faction control the trade in the systems they control. If a system is disputed, then they probably have other things to worry about than trade, so they are effectively blockaded.
That won't work for the idea of bulk trading because of the docking and handling capacity required for it. If you would do bulk trading, you wouldn't do it everywhere because that wouldn't make much sense. It's the same as not having a distribution center everywhere but only where it's needed.
But that's exactly why I'm saying we can just designate a single planet or base as the distribution center for the system. Then all the inter-system trade can pass through that planet/base, and all the stockpiles can be put at that planet/base. I just don't think it would look that great to put commerce centers in every system.
lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

shadow_slicer wrote: This is why the faction controlling trade in a system should be the owner of the system.
Yes --- and that makes me think about what "controlling trade" means. That would depend on who/what controls trade: If it was a merchant guild, it would mean "having the means to do it and to prevent others from doing it". If it was a pirate guild or a corporation or a player, it would mean something else in each case.

If it was a faction, what would that mean? Each faction might have it's own economy and regulations about import and export. They would take toll and taxes, check for contraband and drunken pilots, secure trade routes (if those can exist), have trade agreements with other factions or embargoes. Would they control trade as in "being the only ones having the means to do it"? Probably not, but maybe they would own some of the places that are capable of bulk trading, some freighters, etc.. Maybe some of the factions would control trade like a merchant guild, a pirate guild ...

Who owns all the stations and planets?
If you would do bulk trading, you wouldn't do it everywhere because that wouldn't make much sense. It's the same as not having a distribution center everywhere but only where it's needed.
But that's exactly why I'm saying we can just designate a single planet or base as the distribution center for the system. Then all the inter-system trade can pass through that planet/base, and all the stockpiles can be put at that planet/base.
The good thing is that you need a distribution center in a system only if you need to do bulk trading with that system. If you don't do bulk trading, you can take your cargo directly to the place that needs it.


But the game greatly lacks the infrastructure to implement economy and trade. There are even no units designated as freighters in units.csv.
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
Neskiairti
Confed Special Operative
Confed Special Operative
Posts: 334
Joined: Thu Jan 11, 2007 4:10 am

Post by Neskiairti »

ive not read much of what was said.. but I have to pipe up..

alot of trade stations would be built something like the shipyard and equipment docks in X3.. very long stretching bases with hundreds of docking points..

they got it sorta backwards though :P the trade stations in that game were enclosed things where you flew in.. where in reality, it would be more like the shipyards..

anyhow.. A Central Trade station for a system would be the answer.. able to dock capital ships... as well as small ships.
Post Reply