published on December 09, 2024 in devlog
Michi deep dives into a technical topic: how the storage system works and how companies actually exchange materials.
Michi (molp)
Bear with me, this devlog is a bit technical, but once everything is implemented as we envision, we'll have a nice new tool for upcoming features.
Last week, in devlog #462, I wrote about the user interface of the infrastructure upkeep mechanism. I also showed a few screenshots, but said that these are all using dummy data, as the server side is not implemented yet.
This is because I was still discussing ideas and implementation details with Martin. Right now, entities (companies, corporations, infrastructure) are composed of behaviors. Add a given behavior to an entity and it will gain new functionality. For example the storage behavior: it is added to every company and allows that company to have ship stores, warehouses, fuel stores, etc. It also allows transferring materials and items between these stores following certain rules: the stores need to be at the same location, some stores will only accept a single type of material and so on.
What's not possible with that storage behavior yet, is to transfer materials to stores that belong to another player or entity. Think about it: everytime you transfer materials to someone or something else, it happens outside the storage behavior. For example: When donating materials to the population infrastructure or CoGC upkeep the material is removed from your inventory, added to the respective system, but on the other side there is no real store. It is interaction between storage behaviors. Same wh you trade with other players on the CX, the LMs or via custom contracts: the storage behavior is part of the action, but the movement of the materials is managed outside.
We have had the idea to use the storage behavior and the corresponding user interfaces a few times over the years and finally decided to move into that direction with the infrastructure update. How could that look like? Remember the upkeep contracts from last week's devlog? What if once you closed that contract, a new store would appear in your INV
list, that you can use to store the upkeep materials for the infrastructure? That store wouldn't be your own though, it belongs to the infrastructure. If there is a second player with an upkeep contract, they would see the exact same store. You would be able to use that store like any other store of your company. No need for cumbersome sliders or other mechanisms that we use elsewhere. You just move materials via drag and drop or MTRA
from one store to another.
We call these stores remote stores for now, because they are not part of your own company, but another entity. Remote stores could be used for all kinds of things: For example, a shared corporation warehouse that is only accessible by the corporation members.
As you can imagine, implementing remote stores requires quite a bit of work. Right now I am in the middle of refactoring the existing store types to a generic one. This will make it so much easier for entities to exchange information about the remote stores.
As always: we'd love to hear what you think: join us on Discord or the forums!
Happy trading!