Test: Loadingscreentimes
8 years ago
Germany

Hey there everybody,

as you all know there are different loading times according to the speed of the hardware a player uses. Especially in a graphics heavy game like alien that might kick in a little. Since we are conducting speedruns it might be a goal for the future to time runs without loading times. This would give a more accurate picture.

Editing out Loadingtimes:

  • setup I've just conducted a test downloading PsychoHypnotic's WR of 2:44:56.29 from youtube and comparing the loading times to my latest run of about 3:06:18 (also because I find it difficult so far to dl files from twitch.tv). Of course I died two times, went the wrong way and had to return and my game crashed one time: these 5 loadingtimes are in a separate calculation. There are 29 loading times in total.

  • accuracy Livesplit times to 0.01 seconds (the timer says) while in an editing software with a record it was 30fps for Psycho's run and 25fps from my run (I set it down in obs to gain performance).

For Psycho's run Livesplit says 2:44:56.29 ; in my editing program it says exactly 2:44:56 and 9 frames = 2:44:56.3 . So it's about 0.01 seconds off. I think that is a negligible inaccuracy.

I sorrily messed up timing in the end for about 1 second because I stopped just a little too early and added a second afterwards, but it's still only about a second off over the course of over 3 hours; so it can be estimated that it's the same accuracy. In the editing the time is 3:06:18 and 3 frames = 3:06:18:12.

Now in 30fps the accuracy is about 0.03333 seconds and in 25fps it's 0.04 seconds which is ok I think. The major problem of course is that the frames might not hit the exact entry and exit (29loadings¤2) of the loading times. That means: In absolute worst case scenarios the time might be 1.9333 seconds off (added or subtracted) in 30 fps (29 loadings¤2¤0.0333) and 2.32 seconds in 25fps (29loadings¤2¤0.04). So that's not at all accurate.

  • entry and exit of timing For lack of a better solution I took the saving cassette to try and cut the runs. It doesn't always appear. Sometimes it starts before fade in to the game, sometimes it starts when the game already is fading in. Better hint would be the loading circle which in Psychos run was blocked by his webcam image.

  • results Psycho's run (2:44:56.29) had without loading times a total time of 2:41:09 and 12 frames = 2:41:09.4 Loading times (29) add up to 00:03:46 and 27 frames = 00:03:46.9

My run (3:06:18) had without loading times a total time of 2:59:25 and 15 frames = 2:59:25.6 Loading times in total (34) add up to 00:06:52 and 13 frames = 00:06:52:52 Loading times without loads for fails (29) add up to 00:06:14 and 14 frames = 00:06:14.56

Best solution would still be an Autosplitter executed by the runner's system. I think a good way to get accurate results would result from an alignment to the sound cues. There always is sound in the game, even if it's just fading in. There is almost no sound in loading screens. I don't know about the loading circle. This might also work, but it would get performance heavy since its dependent on graphical scans.

I hope this little test was informative. I really enjoy the game and want it to be big. It doesn't really matter that much to me who is the person that's best. But the best run is best executed. That's what I wanna know about it.

Maybe you've got some thoughts about it. It's just an idea and might be helpful in the future.

Greetings qd

Ps.: Here are the loading times as highlight on twitch.tv

French Southern Territories

Ask politely CryZe or Fatalis, they are cool and sexy programmers, they might help you.

Florida, USA

Might is a strong word. I would start looking at the autosplitter website that they take care of. Last time I asked for help, I was kind of ignored until finally redirected to their website, which is not for the feint of heart.

Autosplitter Project Website: https://github.com/LiveSplit/LiveSplit.ScriptableAutoSplit

Sweden

My thoughts on OP about autosplitter for AI will be over several posts.

I. Is it worth it?

I set this topic provocative intentionally. Bec sure, everyone in the community will say that a autosplitter is "worth it". But the fact is its kind of difficult to compare a game like AI with say Half Life or other games with giant communities and where the game engines themselves are open or even have support for sending out commands for autosplit functionality, this is not the case for Alien Isolation.

Also, the lack of a autosplitter for AI is not because no one has asked for one. The discussion came up pretty early in the speedrunning days when Psychohypnotic started to get some competition and the runners recorded times started getting closer to eachother.

But this leads back to "is it worth it?" and with that I really mean, can we find someone with the skillz to make a real autosplitter for AI that thinks its worth it? I think its doubtful for many reasons: Small community, no commercial SR interest, no support in engine or from creative assembly, no one has came forward so far etc.

Its kind of catch-22 because a real autosplitter has the potential to expand the SR community, but on the other hand any interest for pulling resources into making one wont happen until the community is larger.

In the current environment it might just be better to continue with manual splits and hope that luck will strike upon us and someone out of the blue turns up with a working autosplit solution. But there is really no way to plan for this or start some kind of movement.

Sure , if you know someone that could help with this, ask. But remember to thread gently because often coders in demand will bite your head off (for many justified reasons).

United States

Does your total loading time account for reloads due to death?

Sweden

My thoughts on OP about autosplitter for AI will be over several posts.

II. Prototype, Results and Conclusions so far.

Prototype: Coming into Alien Isolation SR was the first contact with any gaming SpeedRunning ever for me. I had no clue how autosplitters worked (and still mostly dont) just that they existed. Out of that I turned to image recognition software to try and make one for AI. My choice fell upon Sikuli (SikuliX) because it is open source and wouldnt require people to buy additional software. Sikuli can be found here http://www.sikuli.org/

Sikuli is a java based program wich reads scripts to perform the tasks you set it up to do. On the positive sides of Sikuli is it doesnt require much cpu to work despite popular belief. You set the script to look in certain parts of the screen so it doesnt monitor the entire screen unless you want that. The program has a certain error management built in so the specific image its looking for doesnt have to be pixel perfect.

Sikuli supports extensive scripting (Python, Ruby) and also has a graphical script editor for the coding impared. This is why even someone like me could get a prototype up and running.

My prototype was set up to look for the cassette icon in Alien Isolation as it seemed to mostly coinceed with Mission changes, simply because I wanted something easy for the program to find. I didnt even know if the program would work with a game as its mostly developed to automate regular desktop tasks or read text from pictures. Then when the cassette icon is found the program sends a keyboard key command that LiveSplit registers.

Results: The result was positive and the program works with the script I created, everytime a cassette icon flashes LiveSplit splits.

Conclusions: For a Sikuli based autosplit program to become a reality I would say the following needs to be developed.

  1. Gui and a main Autosplit program: This main program would save configuration for your personal LiveSplit keys and be able to load the individual games autosplit-slaves (the scripts). So in this case the main program would need a Alien Isolation Slave.
  2. Alien Isolation Slave: This would be the script that handles the behaviour for a Alien Isolation Speedrun and triggers on the correct moments as well as dont trigger on others.

In theory Sikuli would work as a autosplitter for AI but I cannot help thinking going down this road eventually leads to other problems.

What we have here is a third program that has to work in conjunction with Alien Isolation and Livesplit. There is no telling how stable such a system is until its tried extensively.

During my inital test I also encounted certain "problems". For example what if the player restarts from a previous save becuse of game over. the image recognition software will see the spinning wheel or cassette icon every time and split again. This might be a minor problem with manual LiveSplit correction.

I also encountered "ghost" problems where the programs mistook one flash of a icon as two separate and split twice instead of once. Also something of the opposite happened when I tried setting up Sikuli to "cut out" load times. Sikuli had a hard time starting the LiveSplit timer again after being paused, but again this could be happening because my inexperience with the scripting language.

Last I would also add the possibillity of overhead and built in delay in how Sikuli works. What is the overhead when the following happens: [START OVERHEAD TIMER] -> Trigger-image is shown on screen by Alien Isolation -> After reading the screen Sikuli recognizes the trigger image -> Sikuli sends the LiveSplit key command -> LiveSplit recieves Split command -> [STOP OVERHEAD TIMER].

Maybe this doesnt matter, the delays would be the same for everyone but its worth considering.

Germany

Hey there,

so first @Infomastr (we've been talking about this in chat):

from my earlier post about my run times: "Loading times in total (34) add up to 00:06:52 and 13 frames = 00:06:52:52 Loading times without loads for fails (29) add up to 00:06:14 and 14 frames = 00:06:14.56 "

There are 5 loads for: restart 1¤, wrong way loading and back = 2¤, 2 deaths = 2¤ = 5 29 total loads for a usual deathless run + 5 = 34

Bandaren got some interesting ideas. He told me, he's gonna do a third post with some more information. I'm not into coding, so things like "overhead", "Gui" and "Slave" don't tell me anything atm. Too many programs involved will probably be too complicated and result in too many break downs I guess. But it is to be tested.

One more thing on how much sense such an autosplitter would make: It's especially about close times. And on the other hand, if you've got bad loading times, your game (as I experienced in my gameplay) will also have moments of little to major hardware lags which result in little delays. There is no possibility to time that out. Of course, if you want to play this game, you've got to have the hardware for it.

Bandaren got a point about our community being small. Everybody can say what they think, and if it would be a goal to pursue. It's never a problem to approach coders or even creative assembly and ask them for help. You never know. It might be easy in the end.

In that respect thx to PackSciences and CritLuck. We should go into that.

Greetings qd

French Southern Territories

Making an Auto Splitter isn't that hard, you just have to find with Cheat Engine the "space" in your memory where the variable for loading is.

United States

You got me curious, so I manually timed out loads from my 2h48m run. They were 5m25s, or 1m40s longer than the WR run.

May not seem like a lot, but losing almost 2 minutes simply to hardware is pretty significant in a game that is getting optimized to the second! Would be amazing if we could figure out how to make that autosplitter a reality.

Wisconsin, USA

If it simply bases off of loads; the 100% category would be a complete mess with an auto-splitter with constantly having to remove a split after -every single- load. This mostly only applies to M16, but M15 has multiple loading zones. It's an inconvenience more than a help at that point.

Honestly I don't see a point for an auto-splitter at this point-in-time due to how small the community is. With load-times starting to be relevant, simply manually time them out right now for the time being.

That is simply my opinion, yours my differ.

Estonia

I'm personally on the side of working hard to get an auto splitter working, or at least to start removing load times from the final time. I know of no other speedrun community that has games with variable load times which count the load times in the final run. Runners have absolutely no control over the length of time spent loading. When we were all in intense competition to get the first sub 3, we got nowhere until I lowered my settings, and got what I thought was just an unusually good run for the 2:58:30, but when Lite was trying to figure out why my m5 was so much faster than his, he noticed the huge load time disparity, which let him and others almost immediately get sub 3. For me, community size is no excuse; if we want to actually compete, unless we mail a computer between one another for the sole purpose of running this game, we REALLY need to eliminate load times from the equation.

United States

Bobbe's load times from his latest deathless run were 5m39s.

Nevada, USA

Thanks for hashing that out twitchy....Wow and considering a slower psychorun and some doors that take a sec I'd round that out to 25 minute difference vs pc's 5 and I'm looking at a 20 minute difference for WR on a optimal PS4 run. 3:05 is pretty much that goal...ohh that's awesome to have a detailed target.

Germany

Hello!

I've been on a wildlife recently again and captured a rare specimen of the loadtime. I've made some pictures:

¤Caution: Viewer discretion advised¤

FYI

Greetings qd