Page 1 of 1

Store progress on incomplete research projects

Posted: Tue Mar 01, 2016 7:20 am
by roy7
Had it happen tonight on a public server running things like marathon/Bobs/hardcrafting that someone changed the research off of a partially complete tech that had used up a lot of blue science packs, to something else. It's frustrating since it took one of our regulars hours to craft all of that blue science, with our server settings. In vanilla maybe it isn't a big deal, but I really wish research projects would remember their partially researched progress so when you resume the tech later, you pick up where you left off. All you'd need to do is just store a progress % for each tech in the list?

Thanks.

Re: Store progress on incomplete research projects

Posted: Tue Mar 01, 2016 7:34 am
by Koub
Added a link to your suggestion in the meta topic about research queuing / progression / visualization / ... :).
viewtopic.php?f=80&t=14645

Re: Store progress on incomplete research projects

Posted: Tue Mar 01, 2016 5:14 pm
by ssilk
Hm. We had discussed that 1 year ago (or so): If you abort a research, there is no reason, why your progress should be stored. Where should it be stored? You just cannot continue.

It's part of the game to think about what to research next.

That was the result for single player. For multiplayer I see of course, that this is kind of unfair. Maybe some kind of voting system, so that nobody can accidentally change it?

Re: Store progress on incomplete research projects

Posted: Tue Mar 01, 2016 11:04 pm
by Koub
When you think of it, there is no legitimate reason why the amount of research ... researched should be forgotten simply when you decide to switch to something else.

If I (IRL) start doing something, and am interrupted by something more important, I switch to the most important thing, and can get back to my work where I had left it. That's how I have anywhere between 5 and 10 mails started in the evening when I want to leave work, and I spend hours completing them and sending them.

Coding wise, it would not be a complete overhaul. Just storing for each research how much has been researched would do the trick.

Re: Store progress on incomplete research projects

Posted: Wed Mar 02, 2016 12:09 am
by ssilk
When I think to research I think to some kind of chemical lab. And then I think to cooking. So when you cook, Coub, can you just stop cooking where you are (you put your cake into the oven) and make a steak and then continue with the cake? :)

Well I think it's an interesting question, cause the change is coding-wise really simple. But I think that is not the point. The change is an important gameplay-element. It falls by the way into the same category that you currently cannot prioritize the crafting (often requested: stop current crafting and do crafting from the end of the queue instead or so).

And there is of course a lot of such suggestions: search.php?keywords=research&terms=all& ... mit=Search

Re: Store progress on incomplete research projects

Posted: Fri Mar 04, 2016 4:13 pm
by Nighty
Hi guys,

@ssilk: I don't think you can compare cooking and researching in this case, because of plausible reasons (cake will getting black [lost] :D, knowledge hasn't such a short 'time of getting lost'). But I agree it's important for the gameplay and changes to another research should be punished^^ (maybe minus point for each time elapsed 'til restart, of course greater '0'?).

Re: Store progress on incomplete research projects

Posted: Sat Mar 05, 2016 11:04 am
by ssilk
That looks like an idea I can live with. :) But more sophisticated...

Maybe the loss is exponential: It makes sense to research "small things" in between. But for the main paths of research you need to care before you click, otherwise you may loose all.
And it is a new game-element: If you do so, you need to have a perfectly balanced factory. Otherwise - if your research stops cause you don't have enough red potion for example - this is your problem. :)

The game needs to be changed a bit, especially we need some kind of research queue and a bit of research-queue management.

Re: Store progress on incomplete research projects

Posted: Wed May 04, 2016 2:39 am
by Lanphrost
Hello! This topic is of special interest to me.
Both sides have valid points to the validity of how research can be handled. There is no 'should', because it is a game and at the whim and mercy of the creators and programmers and engine it's built on.

With that said, I am strongly for the idea of having research stored.

Logical reason: As said before, you don't forget what you've learned just because you take a moment to learn something else. Research /can/ be like cooking. You test with specific ingredients to find the right flavor. Maybe you make a few mistakes along the way, ruin a few (hundred) batches. But unless you are inept or adept, you are recording your findings somewhere. Ingredients, cook times, what combination made what flavor. These notes are quintessential to cooking. It is how and why we have recipes. Recipes being the finished work of research.

When cooking, if you throw out all of your notes, all of your accumulated knowledge, and all of your half-finished recipes because you decided to make a quiche, you might be doing something wrong.

Now we bring the topic back to research: The labs. These labs are apparently very advanced pieces of technology to be producing blueprints for other advanced technology. The machine autonomously deciphers what you need from your surroundings to produce the materials and tools to create your factories. But for those advanced pieces of technology to undergo a memory wipe with no backup system, because you decided halfway through learning to make a car that you want to make a tank, means that this advanced technology appears to have some advanced flaws.

I can suggest a number of things for this situation, the simplest being that the progress on research be saved individually per research project. Most other options may become overly complicated or less than helpful, requiring buildings/items/other research or as stated above a system of decay which would only serve to induce panic on someone who finds another avenue of research crucially important due to changing circumstances (early game hives popping up too close to a base, for example).

Re: Store progress on incomplete research projects

Posted: Wed May 04, 2016 7:57 am
by bobingabout
I don't know why they can't just add another variable to the game.forces[].technology[] listings of say .progress, that stores the progress made in that research.

Re: Store progress on incomplete research projects

Posted: Wed May 04, 2016 8:06 pm
by roy7
bobingabout wrote:I don't know why they can't just add another variable to the game.forces[].technology[] listings of say .progress, that stores the progress made in that research.
There's no technical issue to prevent it, it's a question if they feel losing progress is an important aspect of gameplay. Currently they prefer to have partial research lost as part of the game design. It'd be nice if a mod could change it somehow though.

Re: Store progress on incomplete research projects

Posted: Fri May 06, 2016 8:09 am
by bobingabout
roy7 wrote:It'd be nice if a mod could change it somehow though.
In theory it is possible.
We have access to game.forces[].current_research and game.forces[].research_progress, both being Read and Write.
So what you could do is create a variable in global to store a list of researches that are incomplete, and their progress.
The main issue is that when you change your research, the progress is instantly lost, so every tick you'll need to check what the current researching technology is, and store it's progress value.

Then when it changes, the value is already stored.

You also have access to the event on_research_started.
So, when this event is triggered, you could do a check to see if the newly activated research is already in your list of incomplete technologies, and if it is, restore it's progress.

You also have the event on_research_finished, so you can clean up the list you've been keeping as they're knocked over. (Only really important in situations where you can research the same technology more than once, which would be an artificial scenario created by a mod. if you don't clear it first, then next time you research the same technology, this mod would see that you have a 99.999...% progress on it already, and the research would complete on the very next tick. It should also add a clean up script to remove deleted technologies from the incomplete research list if mod configuration changes)

In theory, this would be a very easy to do mod, I mean, there's no GUI or anything visible to the player at all, it just silently updates a value in the background, and restores a stored variable on research change if one is stored.

Re: Store progress on incomplete research projects

Posted: Fri May 06, 2016 9:49 pm
by bobingabout
I Had a go at it.

viewtopic.php?f=51&t=14612

A bit more complicated than I thought, but still, I did it.

Re: Store progress on incomplete research projects

Posted: Sun May 08, 2016 1:15 am
by bobingabout
Okay, uploaded a fix.

Re: Store progress on incomplete research projects

Posted: Sun May 08, 2016 9:06 am
by Neotix
To be honest, researching in Factorio is the most simple/boring/meaningless thing in the entire game. There is no strategy (maybe at start when someone don't know tech tree), no puzzle, nothing for gameplay.
Losing research progress is only losing resources and time (resources are time). So when you lose progress you lose time and losing time in game is bad for that how player feel (if he feel bad in game then game design is bad).

It have some meaning for hardcore maps with little resources and big alien bases where every piece of resource count. But its only small % of overall gameplays. Most people play on semi standard setups.

So for now saving research progress improve game feeling.

P.S.
What I would like is to bring some strategy into research. Make it part of puzzle where player choose the techs to adapt to the conditions on the map.
If he have low crude oil depots then he maybe don't need advanced oil processes, maybe he need develop techs that don't need so much oil or use different resources. Or maybe he want techs to make oil processes more efficient etc. Many paths to choose, many possibilities.