7 Billion Humans

7 Billion Humans

View Stats:
Yaya Aug 24, 2018 @ 5:41pm
Specification of the speed challenge
Hi guys, thanks for the new awesome game!
I have a minor concern: it feels quite hard to fully understand what is the timing model used for the speed challenges.

A specific example is the very simple "Intro to shredding": only executing the four instructions if there is indeed a block to be shred divides the execution time by two, though any character actually instrumental in the solution (shredding everything) now should be slower since it executes an additionnal test.

Hence more generally my question: is it possible to find a description of the model used somewhere, or at least more details about it?

Best,
Yannick
< >
Showing 1-10 of 10 comments
Futae Yamagawa Aug 24, 2018 @ 5:45pm 
I'll be honest... Intro to shredding is the one level with a timing component that I do not like (thus why I'll hint rather bluntly how to clear it).
That being said, it's the only level that I'm aware of that hinges on that kind of behavior.

For most levels you just need to worry about how quickly workers complete the assigned task.
Yaya Aug 24, 2018 @ 5:51pm 
Right, that seems fair enough, but there are still other relevant aspects. Of the top of my head:

Is it correct to assume that one clock tick maps to one second, and that every instructions takes a single tick to execute?
Even complex conditionals?
But what about errors? They seem to take 3 or 4 ticks?
And explicit jumps take a tick, but not implicit such as getting out of a branch?
Futae Yamagawa Aug 24, 2018 @ 6:32pm 
You can do your own testing - which is what programmers in the real world need to do. Things don't always work at nice defined, tabulated speeds.

Or you can ask.

Math is hard - that takes a long time.
Doing things that involves physical action invovles ... well, doing them. That takes some time. Lets call that 'Medium'.
Noticing the world around you is not a free action. Anything that looks at what is on tiles takes a few moments. Lets call that 'Short'.
And if it's none of the above, it usualy occurrs nearly instantly, lets call that 'brief'.
Errors usualy take longer than successful actions, but not all errors are equal.

Jumps frankly confuse me a bit, with respect to their time. Watching them in the debugger suggests to me their duration may be conditional, but that may be a quirk of the debugger and not an actual thing.
Yaya Aug 25, 2018 @ 5:27am 
Well in the real world as you put it we rely on testing only when we have no other choice. When available, we rely on specification.

Thank you for the insights you listed. I still hope to see a clear explanation of the model by the devs.
FroBodine Aug 26, 2018 @ 11:46am 
Great topic. I also just finished the "Intro to Shredding" level, and do not understand how the speed solution with the "If" statement is any quicker than the four direct actions.

I don't know if the developers even respond on this forum, but they should. I hope they can explain this one, please!

[edit] Is it because of the one girl that doesn't have a data block? Without the "If" statement, she eventually comes down and throws herself into the shredder. With the "If", she stays in place. Is this why the "If" statement is quicker? It still doesn't make a lot of sense to me.

[edit edit] It's even more confusing because the four action direct method without the "If" moves faster graphically than the "If" solution. So, I would think the direct method is faster because it completes faster graphically. Very strange.
Last edited by FroBodine; Aug 26, 2018 @ 11:51am
The Renderer Aug 26, 2018 @ 11:51am 
Originally posted by FroBodine:
Great topic. I also just finished the "Intro to Shredding" level, and do not understand how the speed solution with the "If" statement is any quicker than the four direct actions.

I don't know if the developers even respond on this forum, but they should. I hope they can explain this one, please!

Printing (or in this case shouting) an error message takes more time than an if statement. So every time your worker tries to pick up a cube that isn't there he tells you so, which is slower than just skipping over that step using an "if" statement.

Edit: Same applies to the shredder. Being shredded is slower than the "if" check that prevents it.

Originally posted by FroBodine:
[edit edit] It's even more confusing because the four action direct method without the "If" moves faster graphically than the "If" solution. So, I would think the direct method is faster because it completes faster graphically. Very strange.

No, it doesn't complete faster, it just looks more fluid. Take a stopwatch and compare.
Last edited by The Renderer; Aug 26, 2018 @ 11:58am
FroBodine Aug 27, 2018 @ 7:19am 
Gotcha. Thank you very much, Renderer! You have explained it very well!
aah2000 Jul 7, 2020 @ 10:47am 
In my playing the game it was fairly obvious to me that all actions dont take the same amount of time. I didn't do too much testing but different people would be moving at different speeds depending on what they did. Look was not free but it took less time than walk. Picking from where you are standing took less time than picking from an adjacent spot. It made sense the way a human system would make sense.
Dimmy_Anonimo Dec 2, 2022 @ 11:03am 
Originally posted by Futae Yamagawa:
You can do your own testing - which is what programmers in the real world need to do. Things don't always work at nice defined, tabulated speeds.


I recognize this discussion is years old at this time, but I literally have been playing around for over an hour on the intro to shredding level alone and have not been able to figure out what actually takes time and how long. As a brief look into a few things I tried before even searching for the answer. I added an excessive number of step downs before the give to and none of them changed the time at all. Even though during replay it took noticeably longer. So I thought, maybe if it's impossible to move, it doesn't take time, so I instead had them run around in circles. Each circle (up left right down) added only 1 second to the time. Which I think tells me that moving takes 1/4 second. The combination of a pickup and a drop (when successful) adds 3 seconds. An unsuccessful pickup adds 2 seconds. A jump forwards seems to add no time. A give to with nothing in hand takes 2 seconds. An if that everybody reads, but nobody jumps into takes 0 seconds. An if that everyone steps into but they do nothing inside (or if they step forward when there is no room to step forward) adds 0 seconds. An if that one person steps into, includes a pickup, and a give to might add only 1 second, or it might add 2 seconds, but the other give to I added might have jumped from 2 seconds back down to 1 second because it was successful, but only one of the workers was successful here. All the others still tried to give to with nothing in hand... Like, this is an endless rabbit hole of possibilities. Trying to play around with this gives me even less of a mental model of how it works than before. I tried to take notes, but it just turned gross. I tried to make a spreadsheet, but very few of the instructions have the same set of circumstances as other instructions, so each needs its own template basically. It's insane
Last edited by Dimmy_Anonimo; Dec 2, 2022 @ 11:05am
Draz Feb 4, 2023 @ 9:37am 
It feels like some of you are overthinking it. Things take as much time as they do on screen. I was able to complete almost all the speed challenges and I didn't think about the timing of any instructions apart from noticing that errors are slow.

If you do need to, though, you can step through the code to see how long each operation takes if you've got used to the animations or you can play the simulation at half speed and use a stopwatch (just tested that because of this thread).
< >
Showing 1-10 of 10 comments
Per page: 1530 50