Hello and welcome to StarMade,
Additional to a lot of bug fixes and optimizations, this version is introducing an all new meta-item system, and a new factory system.
Meta Items
A structure for items that have a completely free set of data has been implemented. It was actually one of the most time consuming parts of the update to create an abstract system, where I can just define new types of items with just one class. The hard part was to abstract the system over the network, so the items will not only be consistent with the world (saved, and loaded/unloaded with the universe), and for it to be synched over the network, but also to implement a way that items are only sent on demand, so network overhead for items that a player is not even near of won't happen.
Log books
Log books are the first class of items that have a very simple purpose: You write things in it and anybody else who opens it can read it. No more, and no less. This might be a good tool for RPG servers to get a customized lore across.
Log books will spawn in pirate bases and ruin chests only. They cannot be bought or sold (yet).
There is anew file in the /data/config/ directory that lets admins define the default messages that will randomly be assigned to a spawned logbook.
There is also an admin command "/give_logbook playername" for admins to create it.
Recipes
The second meta item that is introduced in this version is the first one that will have impact on the game play. More about it below.
New Factory System
I was planning for a long time to change the factory/block-crafting system. The root of my thoughts were always: in science-fiction games, recipes will never be completely natural. No matter what you do, the items in a game like that will be as natural as putting wood and iron together to make a pickaxe. And that's also not what this game should be about.
So with the current system it's unbelievably hard to learn and remember recipes. If you still did, I'm very sorry .
Basically the basic system will stay the same.
Here is the short version of how it works now:
In the old system I originally wanted to make way longer production chains instead of having 4 factories doing everything. But that system requires to add a new block type for every single product there is. This is way to much cumbersome. So I "outsourced" what the factory does into the meta-item "recipe"
A recipe is basically just that: It takes some ingredients and outputs a block. Out the recipe and the ingredients into a factory and the factory will make that block if you also put in the ingredients. Since there is only one type of block produced by recipe, you will need to chain-connect factories together to create the desired outcome.
Recipes are pretty much unique and can't be sold. That's why they are a valuable trading asset with other players. The can be found in pirate bases and ruins. And they can also be bought in shops.
Unlike normal blocks recipes don't require credits to be bought. They require 10,000 (value can be changed by admins) block of the block you are creating a recipe for.
The ingredients however are random in amount and type, so there are "good" recipes and "bad" recipes. But this highly depents on the player. If you get a recipe that makes sand into hulls, and you don't have any sand, a player based on a sand planed might be very interested in that.
Higher level parts will prefer manufacturing items as their ingredients, and those are the only type of item-recipes that require minerals/etc to buy instead of the items itself (would be rather hard to gather 10k protein)
Notable optimizations
On one side I managed to make lighting calculations faster.
On the other, saving and loading will now use a new threaded random access algorithm, that will write and read data much faster. So this will hopefully get rid of a lot of sources of lag on servers.
Please be sure to keep backups, since a change in this part of the engine is very delicate.
More bug fixes
- got rid of shutdown hooks: only used in absolute emergency (should never happen, even on crash)
- server errors are now displayed instead of just shutting down
- fixed false modified blueprint triggering when adding blocks afterwards
- fixed "unknown faction" although faction exists
- added check for ghost players
- fixed bug where too many files could be deleted when a structure gets destroyed
- fixed bug that left a invisible version of the mothership if it was removed with docked ships attached
- fixed bug that turned docked ships into ghosts if mothership was removed
- missiles now display and update shield hits correctly on the client
- added notification to re-orientate if rotational system is entered
- mouse check for GUI elements that are not drawn anymore but were flagged as "mouse inside" will now always deactivate the flag on the end of the frame. This should fix the permanent tooltip bug.
- improved performance of wedges and spikes by not drawing faces that aren't visible (next to a solid block), in the same way the normal block algorithm already does
- implemented server option to customize speed of rotating stellar systems (or to switch it off)
- improved segment(chunk) reading performance by buffering the header for segmentRegions
- improved segment(chunk) writing performance by also using buffered headers and switching to java NIO FileChannel MappedByteBuffer for random access
- console&rcon(starNet) commands are now only interpreted as chat broadcast if they start with /chat
- price of blueprint will now include price of all docked structures
- shops now safe against missiles
- blocks of other factions can no longer be activated with docking beam
- shop spawning can now be customized by admins
Also you might find a new surprise waiting at earth planets
A video with tutorial for the new factory system will be out soon.
Thanks for playing StarMade,
- schema
Additional to a lot of bug fixes and optimizations, this version is introducing an all new meta-item system, and a new factory system.
Meta Items
A structure for items that have a completely free set of data has been implemented. It was actually one of the most time consuming parts of the update to create an abstract system, where I can just define new types of items with just one class. The hard part was to abstract the system over the network, so the items will not only be consistent with the world (saved, and loaded/unloaded with the universe), and for it to be synched over the network, but also to implement a way that items are only sent on demand, so network overhead for items that a player is not even near of won't happen.
Log books
Log books are the first class of items that have a very simple purpose: You write things in it and anybody else who opens it can read it. No more, and no less. This might be a good tool for RPG servers to get a customized lore across.
Log books will spawn in pirate bases and ruin chests only. They cannot be bought or sold (yet).
There is anew file in the /data/config/ directory that lets admins define the default messages that will randomly be assigned to a spawned logbook.
There is also an admin command "/give_logbook playername" for admins to create it.
Recipes
The second meta item that is introduced in this version is the first one that will have impact on the game play. More about it below.
New Factory System
I was planning for a long time to change the factory/block-crafting system. The root of my thoughts were always: in science-fiction games, recipes will never be completely natural. No matter what you do, the items in a game like that will be as natural as putting wood and iron together to make a pickaxe. And that's also not what this game should be about.
So with the current system it's unbelievably hard to learn and remember recipes. If you still did, I'm very sorry .
Basically the basic system will stay the same.
Here is the short version of how it works now:
- Only one factory remains (factory input)
- No fixed recipes are bound to that block
- put a recipe in the top left slot
- it does exactly that
In the old system I originally wanted to make way longer production chains instead of having 4 factories doing everything. But that system requires to add a new block type for every single product there is. This is way to much cumbersome. So I "outsourced" what the factory does into the meta-item "recipe"
A recipe is basically just that: It takes some ingredients and outputs a block. Out the recipe and the ingredients into a factory and the factory will make that block if you also put in the ingredients. Since there is only one type of block produced by recipe, you will need to chain-connect factories together to create the desired outcome.
Recipes are pretty much unique and can't be sold. That's why they are a valuable trading asset with other players. The can be found in pirate bases and ruins. And they can also be bought in shops.
Unlike normal blocks recipes don't require credits to be bought. They require 10,000 (value can be changed by admins) block of the block you are creating a recipe for.
The ingredients however are random in amount and type, so there are "good" recipes and "bad" recipes. But this highly depents on the player. If you get a recipe that makes sand into hulls, and you don't have any sand, a player based on a sand planed might be very interested in that.
Higher level parts will prefer manufacturing items as their ingredients, and those are the only type of item-recipes that require minerals/etc to buy instead of the items itself (would be rather hard to gather 10k protein)
Notable optimizations
On one side I managed to make lighting calculations faster.
On the other, saving and loading will now use a new threaded random access algorithm, that will write and read data much faster. So this will hopefully get rid of a lot of sources of lag on servers.
Please be sure to keep backups, since a change in this part of the engine is very delicate.
More bug fixes
- got rid of shutdown hooks: only used in absolute emergency (should never happen, even on crash)
- server errors are now displayed instead of just shutting down
- fixed false modified blueprint triggering when adding blocks afterwards
- fixed "unknown faction" although faction exists
- added check for ghost players
- fixed bug where too many files could be deleted when a structure gets destroyed
- fixed bug that left a invisible version of the mothership if it was removed with docked ships attached
- fixed bug that turned docked ships into ghosts if mothership was removed
- missiles now display and update shield hits correctly on the client
- added notification to re-orientate if rotational system is entered
- mouse check for GUI elements that are not drawn anymore but were flagged as "mouse inside" will now always deactivate the flag on the end of the frame. This should fix the permanent tooltip bug.
- improved performance of wedges and spikes by not drawing faces that aren't visible (next to a solid block), in the same way the normal block algorithm already does
- implemented server option to customize speed of rotating stellar systems (or to switch it off)
- improved segment(chunk) reading performance by buffering the header for segmentRegions
- improved segment(chunk) writing performance by also using buffered headers and switching to java NIO FileChannel MappedByteBuffer for random access
- console&rcon(starNet) commands are now only interpreted as chat broadcast if they start with /chat
- price of blueprint will now include price of all docked structures
- shops now safe against missiles
- blocks of other factions can no longer be activated with docking beam
- shop spawning can now be customized by admins
Also you might find a new surprise waiting at earth planets
A video with tutorial for the new factory system will be out soon.
Thanks for playing StarMade,
- schema