Tue, 01 May 2018

Inventory and Cost of Transportation

pre-alpha 1818 devlog

Another two weeks without one or more ‘big features’ that I can write about. Maybe this is something I have to get used to until I can concentrate on content updates primarily. It might very well be only small and incremental updates from here on out for quite some time (with the exception of a map generation and rendering update not too far in the future); none of them 100% polished until much later. So without further ado and going into a long-ish list of general bug fixes and minor changes (especially in regards to the UI), here are the bigger changes in this release:

Redesign of the Storage System

While rewriting the logic for the seaport I had to realize that the existing way of handling item-storage in a business unit was very limited and had to go. It used to be a set number of ‘slots’ per building (2 - 6, depending on the building) to store an equal amount (i.e. 25 m³) of a product. So one building could, for example, store up to 25 m³ of rice and up to 25 m³ of diamonds. Makes sense..? Considering a production process that might require certain raw materials at a ratio of 2:1 (by volume), the old storage system becomes a problem: it was impossible to store 50 m³ of one material and 25 m³ of the other. Now imagine ratios much higher than 2:1 and you can see how limiting the old system became.

So for this release I have split local storage into two components: storage capacity and inventory, which should be rather self-explanatory, but here you go nonetheless:

Storage capacity is the total amount of products of a certain storage type a business unit can hold. There are four types which should cover all storage needs:

  • (Dry) Bulk
  • General Storage (the catch-all of storage types)
  • Liquids and Gas
  • Frozen Goods

Each building has a certain combination and volume of storage types available (which may be altered through upgrading the building).

The actual contents are stored in the building’s new Inventory system: storing not only the product (including its qualities) and its current stock, but it is also responsible for buying and selling wares up to a user-definable amount (up to 100% of the available storage) on the local market. Thus it is now possible to have arbitrary ratios of products in a business unit’s storage. Of course it is still possible to halt sales/purchases temporarily as well as limiting them to your own company, as before.

Seaport 1.0

Similar to the redesign of the storage system the import functionality of the seaport got a major overhaul. Since it is directly linked to the local storage of the seaport (in fact, it was the reason for the storage redesign) I have added functionality to set a limit (relative to the total capacity for a storage type) for the import. However, since chartering a ship to deliver goods costs a certain base amount you would not want to ask for delivery of 1 barrel of crude oil every day, instead you can set a trigger (number of wares in storage), at which a ship will be chartered to import the requested cargo.

Commodity Exchange, Ticker, Transport Cost

To aid making informed decisions about price-finding or which things to produce at all I have added an order book to the commodity exchange layout. In addition to the volume and price of the selected product it also displays the seller/buyer. To save space on the layout and prepare for improvements of the stock market I have added a ticker symbol to companies.

But more importantly: transport cost plays an important role in Margin Magnate. So when adding a new product to the inventory of a business unit, a list of buy/sell orders including the cost of transportation for the selected product are displayed, since it is a deciding factor if something can be produced cost effective or not. (i.e. you might notice someone buying beds for 200.00, however being far away from the buyer the transport cost might run up to 50.00 or more. So if you cannot produce your beds locally at 150.00 you will not be able to sell them to the aforementioned buyer with a profit.)

Enable Javascript to see comments