dauphin wrote:I assume one of the big caveats for the performance increase on the belts is that, in order to render, you still have to calculate the absolute position of each item on the belt?
That required some pre-sorting effort to keep it O(N) instead of O(N^2), but yeah - it makes me itching at times. one of reasons transport lines will be limited to like 100 tiles because off-screen items still have to be iterated to render what's after them.
Cyberboss_JHCB wrote:Will underground belts still be any faster than regular belts, even if it's just miniscule?
No.
keyboardhack wrote:At this point is it still true that bots are better for performance than belts in 0.15?
Hope not. I don't want performance issues to be governing how factories look.
Optera wrote:Will the changes in belt mechanic break the unintended splitter feature know as magic splitters?
No. Splitters logics remains as it was.
Tankh wrote:I'm guessing you also tested this for items going from a slow belt to fast belt. It's probably treated like a separate belt section.
Yes. Speed is one of criterias for possibility of merge. Another one is belt being deactivated through circuit network.
Zeblote wrote:There's a bug in your first gif

That's an interesting case, investigating. That first gif was filmed with belts unmerged (one belt - one sequence, like in good old times). So far looks like I screwed up logics of inter-sequence connection item distances which showed up nowhere but at FFF... I will check it, fix it and give this bug your name!

Thanks for pointing that out.
SaintFlow wrote:You guys know that people are looking forward to it quite a lot and I guess many of those looking forward expected at least some information in this fff today.
This is never easy for us as well to postpomne releasing 0.15 for next week all over again for several weeks in a row. We are just damn perfectionists
hoho wrote:Hm, so if I gather this correctly, if I have two parallel lines moving stuff around and I use a single splitter as a "poor man belt balancer", it'll cause relatively big slowdown compared to not having that splitter? Or will it not really be any more expensive than just a regular belt section mergeing point?
Not really more expensive than just a regular belt section merging point.
GuiltyBystander wrote:Will this new code allow inserters to create fully compressed line without the undeground belt tricks?
A lot of logics regarding belt movement and compression was rewritten from the scratch. Evil people like
Zeblote already start finding bugs in it

I saw some magical numbers in that code that were removed, algorithm is generic now and "fair". I can't say if that nasty trick will work for underground belts or not, what I can say - it will either work for both or work for none.
Gotbread wrote:Because you are only moving around state IDs (integers) which represent a rather large area (i used 12 x 12 cells for 12 iterations) you gain an enormous speedup.
Content-addressable hash is something that would hardly work for Factorio

Unless we are in age of 1024-bit computers that treat current 64-bit era as CGA graphics.
Lilly wrote:Instead of storing the distance between items, you can store for each item the time/tick when it will reach the end of the segment (if it won't block or be removed).
That reminds me of what kovarex initially proposed and we had ton of arguments about it thereafter. The biggest problem - you also have to predict the time when that last item reaches end of the belt and the belt gets into blocked state. While happening relatively not that often, this is still an issue. My original idea was to keep bidirectional list of bidirectional lists of packed items - working solution, but a hell for cache locality. and a hell to code without mistakes. Later I realized that all operations happen only at head, tail
or pre-tail only - which was compacted into cache-friendly list-free form that was described in FFF.
psychomuffin wrote:Again, it's just nice knowing. Even if you have to change it later. No one here wants you to rush.
Expected feb-march, but may shift, but unlikely. Releasing new version of Factorio is like showing your most favourite movie to your best friend. You want everything to be perfect.
Marconos wrote:Curious if the multi-threaded work amounted to anything or did that basically have to be scrapped?
That work was 90% getting knowledge of codebase and 10% doing actual multithreading keyboard-typing. Codebase is just that perfectly clean. If you know codebase, you can do it in a week in Factorio.