Intermidiate objects with a lifetime
Moderator: ickputzdirwech
Intermidiate objects with a lifetime
Hello,
Right to the point: I think it would be cool if there were a number of materials or intermediates that had a limited lifespan. You would have to produce them and then utilize them within their lifespan or they would go to waste. This would make simply handling and creating this type of object a new challenge as it couldn't be buffered or stored. It would have to be part of a constant production chain.
There could be some technology to improve the stability of it but that would require research and proper packaging and handling of it.
Right to the point: I think it would be cool if there were a number of materials or intermediates that had a limited lifespan. You would have to produce them and then utilize them within their lifespan or they would go to waste. This would make simply handling and creating this type of object a new challenge as it couldn't be buffered or stored. It would have to be part of a constant production chain.
There could be some technology to improve the stability of it but that would require research and proper packaging and handling of it.
Re: Intermidiate objects with a lifetime
Not obvious at the first glance, but I added this to viewtopic.php?f=80&t=21278 Recycling/Disassembling of Waste / Scrap / Trash
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
Re: Intermidiate objects with a lifetime
Not keen on this idea myself, Rimworld has a deterioration factor for items and colonists skills, and whereas it does add something to the game, at least for me it's a system that only adds irritation.
See the daily™ struggles with my Factory! https://www.twitch.tv/repetitivebeats
-
- Filter Inserter
- Posts: 285
- Joined: Thu Jun 09, 2016 5:56 am
- Contact:
Re: Intermidiate objects with a lifetime
Ha, I just though it would be supercool if items and buildings deteriorate over time, but only visually. So you get fresh shiny gears once they are produced, but over time they get rusty. Just imagine an old belt line with rusty plates on it near gun turrets production you haven't used for aeons Or image end of your bus with rusty steel plates that didn't come to any production. Stacks may also get rusty over time and when item is added, that value for stack is updated. One byte for the whole stack is enough. Adding one shiny gear will make the whole stack shiny, but who cares. and the stack itself will get worse over time. All items extracted from the stack get its rustiness level. Same may go for buildings - walls are getting cracky over time (that affects nothing in terms of gameplay), it just gives that you warm feeling that your factory has its own history - reminds you of old ancient glory days like 20 hours back into the game when that wall was constructed Another thing - assembly machines. They may get rusty over time and dusty when standing still for long periods, so you get visual clues on how old some part of factory is and if it's being used frequently. IIRC sort of that was thing was implemented in Startopia.
Re: Intermidiate objects with a lifetime
It would be pretty cool to have things get visibly dirty from pollution.
Re: Intermidiate objects with a lifetime
That does sound neat. That may be alot of work for the art team though, basically doubling/tripling et...Harkonnen604 wrote:Ha, I just though it would be supercool if items and buildings deteriorate over time, but only visually...
I was thinking only some materials would deteriorate over time though. Basically a mechanism to force you to think about efficiency of design so you only produce what you need. Currently, efficiency in factorio is completely uneeded. You don't have to build tight because land is unlimited. You don't have to be efficient because resources are cheap and basically unlimited... so on
Re: Intermidiate objects with a lifetime
Change your map settings, you can have limited worlds and limited resources if you choose to no need to burden the rest of us with your challenge once did a map with nearest oil single oil patch 10k from the starting area past biters. There are extreme challenge modes.ruskul wrote:That does sound neat. That may be alot of work for the art team though, basically doubling/tripling et...Harkonnen604 wrote:Ha, I just though it would be supercool if items and buildings deteriorate over time, but only visually...
I was thinking only some materials would deteriorate over time though. Basically a mechanism to force you to think about efficiency of design so you only produce what you need. Currently, efficiency in factorio is completely uneeded. You don't have to build tight because land is unlimited. You don't have to be efficient because resources are cheap and basically unlimited... so on
My Mod ideas - https://forums.factorio.com/forum/vie ... 49#p107558
Re: Intermidiate objects with a lifetime
Steam is the most logical starting point. You can't really keep a tankful of steam around to use later.
-
- Long Handed Inserter
- Posts: 71
- Joined: Wed May 03, 2017 2:57 pm
- Contact:
Re: Intermidiate objects with a lifetime
You could also use it for unstable chemicals; chemicals that degrade if left out. It would give you an excuse to not leave such things in storage. But on the other hand, I don't see such a mechanic being particularly compelling, since it has such a simple solution: just don't produce any until there's a demand. That's a problem the game can already make you solve, and has lots of simple solutions. (Assemblers even do it automatically to a certain extent.) I'm not saying it would add nothing to the game, but I personally don't think it would be enough to justify the development and performance costs.
Re: Intermidiate objects with a lifetime
IMHO, this belongs to modding, not vanilla.
Koub - Please consider English is not my native language.
Re: Intermidiate objects with a lifetime
(I'm pretty sure I'm paraphrasing myself from 4-5 months ago)Just because you want it doesn't mean it belongs in vanilla, stop killing the fun in everyone else's game to increase your personal challenge level
Yup 25 may 2017
JohnyDL wrote:Don't like it you can mod in a nerf but frankly I don't want to see the base game nerfed because anyone doesn't think it's fair that others are enjoying a game or something is too 'OP' see Youtube Video about buffs and nerfs
My Mod ideas - https://forums.factorio.com/forum/vie ... 49#p107558
- eradicator
- Smart Inserter
- Posts: 5207
- Joined: Tue Jul 12, 2016 9:03 am
- Contact:
Re: Intermidiate objects with a lifetime
This can't be meaningfully implemented. Imagine the following:
You have a base with full automation of all science packs.
Now you want to research a technology that does not require all types of science packs.
So now what happens to the production line for the unused packs? -> It continually produces things only to have them vanish into thin air because they degraded because they're not currently used.
This is just a simple example. The overall effect would be that you would be forced to use perfect ratios of miners to furnaces to assemblers everywhere because even the slightest bit of overproduction would mean things start to vanish. And you'd then also be forced to circuit control your entire factory to match your current item use exactly.
Not using any of those automated chemplants currently? -> better switch off the supply belts to that area or stuff goes poof.
Just came back to base and expected your bots to fill up your inventory? I'm sorry, your stockpiled stuff all became dust long ago.
And if all that doesn't convinces you...the performance cost for such a system would be immense. But i'm sure you don't mind playing at 30UPS.
You have a base with full automation of all science packs.
Now you want to research a technology that does not require all types of science packs.
So now what happens to the production line for the unused packs? -> It continually produces things only to have them vanish into thin air because they degraded because they're not currently used.
This is just a simple example. The overall effect would be that you would be forced to use perfect ratios of miners to furnaces to assemblers everywhere because even the slightest bit of overproduction would mean things start to vanish. And you'd then also be forced to circuit control your entire factory to match your current item use exactly.
Not using any of those automated chemplants currently? -> better switch off the supply belts to that area or stuff goes poof.
Just came back to base and expected your bots to fill up your inventory? I'm sorry, your stockpiled stuff all became dust long ago.
And if all that doesn't convinces you...the performance cost for such a system would be immense. But i'm sure you don't mind playing at 30UPS.
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Re: Intermidiate objects with a lifetime
I don't think it would actually be that big. You could use a priority heap structure, containing all expirable items, with the soonest to expire at the head. Every tick, peek, if it should expire pop, continue to peek until the next item should not expire. According to wikipedia inserting and removing from a priority heap are O(log n).eradicator wrote: And if all that doesn't convinces you...the performance cost for such a system would be immense. But i'm sure you don't mind playing at 30UPS.
- eradicator
- Smart Inserter
- Posts: 5207
- Joined: Tue Jul 12, 2016 9:03 am
- Contact:
Re: Intermidiate objects with a lifetime
You're forgetting to consider the cost of having such a heap in the first place. Items on belts are not even stacks, and even if they were you'd have to have one entry per item-on-belt on that heap. Also a heap isn't even usable there because you're constantly adding entries (freshly crafted items) and removing entries (used up items) and merging entries (items taken from a belt into a chest) - hundrets of times per tick (each inserter+assembler) and from random places in the middle of the "heap". And how would you even want to handle stacked items? Do they degrade all at once? Or one by one? And what if you merge stacks?Patashu wrote:I don't think it would actually be that big. You could use a priority heap structure, containing all expirable items, with the soonest to expire at the head. Every tick, peek, if it should expire pop, continue to peek until the next item should not expire. According to wikipedia inserting and removing from a priority heap are O(log n).eradicator wrote: And if all that doesn't convinces you...the performance cost for such a system would be immense. But i'm sure you don't mind playing at 30UPS.
And besides even if it was O(log n) - which it is clearly not - that's not anywhere near "low performance hit" either with the number of items involved.
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Re: Intermidiate objects with a lifetime
You're right in that O(log n) per insert/removal is O(n log n) per tick where n is the number of items being created/destroyed.
Though if every item in the heap has the same lifetime, and there's no other way to extend or shorten lifetime, you have an easier time - just have a list and add all new objects to the end and pop objects off the start to expire them, then you have O(1) for inserts and removals - and therefore O(n) per tick where n is the number of items being created/destroyed. Not notably any more or less efficient than the act of creating/destroying items already is. If there are objects with different lifetimes, you can have one list per unique lifetime. Plus, this mechanic would only exist when mods add objects with lifetime - so it shouldn't create any concerns for the developers along the lines of 'this makes vanilla less performant, so it should not be added'. Overall, I hope this proves that performance concerns should not be a reason to turn down this idea.
(Also, I have no idea how stacking would work. I guess they just wouldn't stack...?)
Though if every item in the heap has the same lifetime, and there's no other way to extend or shorten lifetime, you have an easier time - just have a list and add all new objects to the end and pop objects off the start to expire them, then you have O(1) for inserts and removals - and therefore O(n) per tick where n is the number of items being created/destroyed. Not notably any more or less efficient than the act of creating/destroying items already is. If there are objects with different lifetimes, you can have one list per unique lifetime. Plus, this mechanic would only exist when mods add objects with lifetime - so it shouldn't create any concerns for the developers along the lines of 'this makes vanilla less performant, so it should not be added'. Overall, I hope this proves that performance concerns should not be a reason to turn down this idea.
(Also, I have no idea how stacking would work. I guess they just wouldn't stack...?)
Re: Intermidiate objects with a lifetime
Nevermind the logistics of making this work: I highly doubt it will ever be done from a pure gameplay perspective: it just wouldn't mix well with the rest of how Factorio works.
That, and the performance implications means this is likely to never happen.
That, and the performance implications means this is likely to never happen.
If you want to get ahold of me I'm almost always on Discord.
Re: Intermidiate objects with a lifetime
[Koub] I'll consider Rseding's answer as a "won"t implement". Topic moved to "Not implemented
Koub - Please consider English is not my native language.