Crafting in Co-op Campaign

the.nihilist

Semiprofessional Idler
Jul 1, 2018
73
144
435
36
Germany
Hey guys!
Just jumping on quickly (it's the holidays over here, so I should be eating my weight in Turkey right now).
Thanks for the feedback so far, it's giving us a good idea of which direction to head.

It's clear that building complex machines and working out the intricacies of the system is a big part of what Crafting means to you. As I mentioned earlier in this thread, it's not likely that we will be able to commit the time and resource into fully implementing this in MP, but i'll look into exactly how unrealistic that is in the New Year - just to make sure.

We have a potential solution for being able to actually Craft blocks in MP (i.e...simply turning resources into blocks) that will be simple to implement. But yeah, more info in the New Year once we've had some time to look into it.
Would it be possible that the new code base is used in single player later (in the means of being a new refactored foundation for the more complex system)? Maybe this is a chance to start on rewriting the code and step by step get the crafting system rebuild?

I think a good start would make a Scrapper and then slowly Fabricators, Conveyors etc. could be added back in. This approach would give all those people hope that only see a horribly broken crafting system at the moment. :cool:
 

D3matt

Well-Known Member
Apr 28, 2017
32
13
415
27
This is a bit of an old thread but I have to echo what others have said, the crafting system is a large part of why I enjoy the game and not having it in co-op makes it feel very empty. I like the base building and logistics aspect, being able to design a process and feed it resources. It's like a mix between Factorio and Robocraft. Without the crafting it's just not the same.
 
  • Like
Reactions: RC-3197

Amtheminer

Well-Known Member
Mar 4, 2020
53
46
51
It would be better to iron out all the current bugs and glitches related to crafting in singleplayer first before adding it to multiplayer as to made it easier and less troublesome to fix any bugs or glitches that might arise after introducing crafting into multiplayer/co-op.
 

GinjaNinja135

Well-Known Member
Jun 10, 2020
1
2
46
You should definitely implement all aspects of crafting and anything else that isn't in multiplayer and if some people don't want this in their multiplayer game you can simply give them the option to disable it
 

桂桃~

Well-Known Member
Nov 21, 2017
89
186
440
20
I would add refineries, mobile furnace generators, SCUs, scrappers, autominers and silos and simply disable the calling functions where necessary.

Then implement a new inventory tab for crafting components, and add a new manufacturing block that receives resource chunks/components and sends them to the inventory. Component factories and fabricators would be able to directly access the inventory and craft blocks, though will be given a crafting time to emulate the delay from resources moving around the factories in single player. Crafting time varies depending on what's being crafted. More advanced components and higher grade blocks take longer to produce.

Refineries, Scrappers and Silos on the other hand would stay the same. They just won't need the call AI features. This would make collection bases more focused around sending an appropriate proportion of refined and unrefined blocks to the inventory, and would likely heavily implement the 3 way conveyors and filters to enable/disable sending refined/unrefined chunks to inventory, as well as to delivery cannons.

However, simply implementing this sort of system would make fabrication bases way too simple. In single player, fabrication bases are large but fragile objects that need to be well defended, and larger bases tend to be more productive than smaller ones. Thus, I'd propose making the component factory and fabricator blocks consume fuel and energy to function and function better. A pacemaker would decide the speed of factories when producing blocks and components. That way, fabrication bases still are fragile and volatile and must be well defended, and later bases would also get larger.

More specifically on variable speeds, I envision the pacemakers being able to set factories to 4 separate speeds, the first being the cheapest in terms of energy consumption. It would take ~20 seconds to craft a GSO 1 block and ~5 minutes to craft high end HE weaponry or something. Each progressive level of speed halves the production time and triples the energy drain, with the last two levels also consuming fuel. Instead of working on a strict timer though, perhaps using energy and fuel to fill up a 'progress bar' would work better, so that when energy/fuel run out, factories start chugging slowly at inefficient consumption levels rather than have their timer seemingly slowed down.

This crafting proposal essentially simplifies the unique single player crafting, while adding complexities artificially. It would definitely take a lot of work but would mostly restore single player crafting functionality. It would amount to likely adding multiplayer variants of all manufacturing blocks, allowing the inventory to accept resource chunks and components and implementing a new block. On the upside, I don't think this would produce as much lag, so perhaps having the option to use this manufacturing style over the current one in singleplayer modes may be beneficial to players with lower end potatoes. It would however, sort of burn the bridge of implementing single player crafting in multiplayer for good.
 
Last edited:
  • Like
Reactions: WastedRhino

JosephStallone

Active Member
Jul 9, 2020
2
0
39
I would add refineries, mobile furnace generators, SCUs, scrappers, autominers and silos and simply disable the calling functions where necessary.

Then implement a new inventory tab for crafting components, and add a new manufacturing block that receives resource chunks/components and sends them to the inventory. Component factories and fabricators would be able to directly access the inventory and craft blocks, though will be given a crafting time to emulate the delay from resources moving around the factories in single player. Crafting time varies depending on what's being crafted. More advanced components and higher grade blocks take longer to produce.

Refineries, Scrappers and Silos on the other hand would stay the same. They just won't need the call AI features. This would make collection bases more focused around sending an appropriate proportion of refined and unrefined blocks to the inventory, and would likely heavily implement the 3 way conveyors and filters to enable/disable sending refined/unrefined chunks to inventory, as well as to delivery cannons.

However, simply implementing this sort of system would make fabrication bases way too simple. In single player, fabrication bases are large but fragile objects that need to be well defended, and larger bases tend to be more productive than smaller ones. Thus, I'd propose making the component factory and fabricator blocks consume fuel and energy to function and function better. A pacemaker would decide the speed of factories when producing blocks and components. That way, fabrication bases still are fragile and volatile and must be well defended, and later bases would also get larger.

More specifically on variable speeds, I envision the pacemakers being able to set factories to 4 separate speeds, the first being the cheapest in terms of energy consumption. It would take ~20 seconds to craft a GSO 1 block and ~5 minutes to craft high end HE weaponry or something. Each progressive level of speed halves the production time and triples the energy drain, with the last two levels also consuming fuel. Instead of working on a strict timer though, perhaps using energy and fuel to fill up a 'progress bar' would work better, so that when energy/fuel run out, factories start chugging slowly at inefficient consumption levels rather than have their timer seemingly slowed down.

This crafting proposal essentially simplifies the unique single player crafting, while adding complexities artificially. It would definitely take a lot of work but would mostly restore single player crafting functionality. It would amount to likely adding multiplayer variants of all manufacturing blocks, allowing the inventory to accept resource chunks and components and implementing a new block. On the upside, I don't think this would produce as much lag, so perhaps having the option to use this manufacturing style over the current one in singleplayer modes may be beneficial to players with lower end potatoes. It would however, sort of burn the bridge of implementing single player crafting in multiplayer for good.
Agreed! Implementing a new inventory tab and other process is well defined. You clarified a few issues and provided useful insights
 

sharmoni

Well-Known Member
Oct 23, 2019
10
15
210
I started playing after you no longer needed to craft to get blocks, so I only built a crafting base for the challenge, not as part of playing campaign.

But I consider conveyors, filters, and mobile furnaces crucial to a good fighting tech build; and SCU, autominer, refinery, and shipper crucial to making enough money to level up quickly. Until those are availble I wouldn't bother playing CO-Op Campaign as it would be too much of a grind.

When I played Co-Op Creative with my brother to show him my designs I was only able to load my simplest techs (about 10%) so that took most of the fun out of it.

Additionaly I finally started using Reticule Research blocks now that they are in multiplayer and built a two-player controlled tank, but I can't use that in Co-Op because those blocks aren't available.
 
  • Like
Reactions: RC-3197

Adalast

Well-Known Member
Jun 1, 2020
1
1
105
Honestly, I just got my best friend into playing it with me Co-op and he was actually, for probably the first time ever, was looking forward to the crafting system in a game and getting to figure it all out. He wanted to have fun building harvesters and giant mobile bases which made everything we needed. We were both very disappointed when we found out that ALL 'crafting' blocks have been removed from co-op modes, even the power generation ones and shredders.

The selling mechanic is janky and hard to deal with large quantities of blocks that can accumulate very quickly like GSO singles. One of 2 changes would make things manageable to start.
  1. Implement a right click to sell mechanic in the inventory, maybe with ctrl- or shift- to increment how many you are selling (ctrl- for 10 and shift- for 100 maybe)
  2. Reintroduce the scrappers, belts, refineries, and silos so a scrapping/refinery base can be built which would allow us to at least have the fun of ripping apart the excess blocks and selling off the refined ingredients for money. It won't involve any AI and at least adds some dynamics to the process.
I definitely would prefer 2, but 1 should be implemented as trying to drop 500 single blocks to make $$14 each in that tiny circle is just janky and does not work. It takes forever, the rewards are minimal, and to not accumulate that many becomes a chore every time you go to a kiosk.

As far as how to implement full crafting for co-op, I understand that the AI-desync issue between clients and hosts are the complexity here, and I see it happening with gathered resources. It happens all the time in my LAN co-op game where my friend who is running as a client has a bunch of items on his thimbles that have desynced from my host and become null entities.
  1. I think a "digital silo" would be great. Something that can hold a certain number of items, but keep them as inventories inside the part. If everything is running as a JSON like I have seen said on some of the posts here, it should be relatively trivial to add a list to a JSON that keeps track of all of it, and also it only needs to be kept up locally as the host or other clients don't need to know what is in the 'digital storage' to render them. Limit it, make it so items are slow to be pulled out, put the dump as an all or nothing and have it just dump them out as raw resources onto the ground to be picked up by thimbles/collectors. This would allow resources to be better maintained and moved around. Also, make it delete resources if it is taken off a tech. I was waffling on this for a moment as it could also be a great way to move resources to a factory, but would prove too powerful and cause balance issues.
  2. With the 'digital silo', you could leave all of the processing for the AI driven stuff host side and run the crafting process as a procedurally generated animation on the client sides. The silo data is stored host side in this case, new items can be added to it, but crafters can only pull from it. So the normal silos that are in now become a fast temporary storage which just feeds into slow 'digital silos', then the fabricators pull from the slower 'digital silos' to make things, but only if the requisite materials are in them and it only pulls exactly what is needed. Everything after that is locked down and you can't stop the process.
Just my two cents. I could probably come up with more, but this is a lot to read already.
 
  • Like
Reactions: Zonko