Comment by yetihehe
7 hours ago
About 20 years ago there was a similar problem with demoscene creations. It was hard to capture demos in realtime in all their glory. So one guy created a tool[1] that waited for a frame render and presented proper time to demo so that frames would be paced properly. "All popular ways of getting time into the program are wrapped aswell - timeGetTime, QueryPerformanceCounter, you name it. This is necessary so .kkapture can make the program think it runs at a fixed framerate (whatever you specified)."
It's rather off-topic, but the linked blog is by the guy who made .kkrieger, the tiny first-person shooter (only 96kB) in the early 2000s. Though the website for it is now gone, as .theprodukkt doesn't exist anymore, apparently. Nice to see his other stuff, didn't think to look at the time.
.kkrieger https://news.ycombinator.com/item?id=14409210
I remember kkrieger being impressively small but also requiring insane compute :) it would render at like 0.1 fps on my poor machine. (Aligns with this comment: https://news.ycombinator.com/item?id=14415567)
> "one guy" sir, that's no way to refer to farbrausch
here is their Breakpoint 2007 demo, a 177 Kb executable including 3d assets and textures. https://www.youtube.com/watch?v=wqu_IpkOYBg
I know them since fr08 . But AFAIK kkapture was started and maintained mostly by ryg. And the demo you linked is my favorite from them.
It's still used in the gaming industry but fir the opposite, you can go faster than time.
Some enterprise software also have it, mainly for testing and they have lint tools that check that you never use Date.now()
Ha, I independently set that up for my own coding animations. Not as crazy as faking the whole system time though, that's cool!
Dont forget .gif webcam streams! Just keep sending new frames!
Indeed. The problem with that was that the browser would cache the whole bloody stream and that quickly led to issues. That's why we switched to JPEG, which also greatly improved the image quality over the GIF format, which really wasn't designed for dealing with camera generated images.
Isn't another solution to capture the video signal to the monitor?
What this capturing software also does is it lies to the demo program about the time that passed between the frames, so the demo makers don't even care about running in realtime, because for them, it's like running on a PC that's almost infinitely powerful.