47 comments

[ 3.2 ms ] story [ 59.8 ms ] thread
(comment deleted)
I am going to need to see this replicated before I can believe.
Seems to be a PocketPC port of Doom, with no source given or even a snippet of the relevant code/variable name/etc. shown at all.
Not a comment on the post, but I sure wish Jira would load even half as quickly as this site.
We recently moved to Linear and couldn’t be happier, can recommend!
2038 is going to be a fun year.
Fixing that is my retirement plan.
You have 13 years to upgrade to 64-bit ints or switch to a long long for time_t. Lots of embedded stuff or unsupported closed-source stuff is going to need special attention or to be replaced.

I know the OpenFirmware in my old SunServer 600MP had the issue. Unfortunately I don’t have to worry about that.

The easy way to e-Nostradamus predictions:

"See this crash?

I predicted it years ago.

Don't ask me how, I couldn't tell you."

p.s. I had an old iPaq that I wouldn't have trusted to run for longer than a day and stay stable, kudos for that at the very minimum.

I had an iPaq for a while and I don't remember seeing OS/hardware crashes.
About a year ago I was looking at Crash Bandicoot timer systems and I found that Crash 3 has a constantly incrementing int32. It only resets if you die.

Left for 2.26 years, it will overflow.

When it does finally overflow, we get "minus" time and the game breaks in funny ways. I did a video about it: https://youtu.be/f7ZzoyVLu58

Is it common to default to a signed integer for tracking a timer? I realize being unsigned it would still overflow but at least you'd get twice the time, no?
Some C programmers take the view that unsigneds have too many disadvantages: undefined behaviour for overflows, and weird type promotion rules. So, they try and avoid uints.
The true Time Twister unlocked
Literally unplayable, someone should fix that.

Doom is actually such a good game, I always go back to it every few years. The 2016 reboot is also pretty fun, but the later two in the series didn’t do it for me.

Fun fact: Doom is now a Microsoft property, along with Quake, StarCraft, WarCraft, Overwatch, all of the adventure games from Infocom and Sierra, and of course Halo. Microsoft pretty much owns most of PC gaming. Which is what they've wanted since 1996 or so.
2016 remains one the greatest single player FPS games I've played (Titan Fall 2 is the other)
Same. Something about the metroidvania design with the home hub of the later ones didn’t give the same feeling. It should be run, kill, find secrets, end, next level.
> find secrets

I'll be honest, I don't like this part. I'm a rabid collector. If the game gives a metric to an item, I must have all of the items. I end up killing the flow by scouring the level looking for secrets. This is entirely my fault of course

I'm under the impression that since Doom Eternal (the first after Doom 2016), the gameplay has considerably shifted to an "interconnected arenas" style, and with more sophisticated combat mechanics. Many games have started adopting this design, for example, Shadow Warrior 3.

I also dislike this trend. As a sibling comment noted, boomer shooters are generally closer to the old-school Doom gameplay, although some are adopting the newer design too.

Has this ever come up in a TAS of custom levels?
Just be glad you knew what the bug was before you started. After 2.5 years... "Shit, I forgot to enable debug logging"
This headline gave me a heart attack... I misread the site's name as Lenovo, and as I'm responsible for a whole lot of their servers running for years in a critical role... heart attack.

Maybe I need my morning coffee. :)

It's good it didn't took a billion years to overflow. That would have been quite a long wait.
Notably, DOOM crashed before Windows CE.
Was this specific to the PDA port or the core doom code?

@ID_AA_Carmack Are you going to write a patch to fix this?

Looks like top security high damage CVE to me!
Literally unplayable.
This is a level of testing that exceeds what the testers I know commit to. I myself was annoyed the five or so times yesterday we had to sit and wait to check the error handling after a 30 second timeout in the system I work on.
Does that hardware traps overflows or something?

  I had read an article about how DOOMs engine works and noticed how a variable for tracking the demo kept being incremented even after the next demo started. This variable was compared with a second one storing its previous value

Doesn't sound like something that would crash, I wonder what was the actual crash
Props again to the id team. No doubt something like that engineered by most folks today would have died long before the 2 year mark due to memory fragmentation if not outright leaks.
Quick! John Carmack needs to be brought into this immediately.
In games I worked on I use time to pan textures for animated FX.

After a few hours precision errors accumulate and the texture become stretched and noisy, but since explosions are generally short-lived its never a problem.

Yet this keep bothering me..

I love the post, but your blurry text is hurting my eyes. Looks like it's intentionally blurry but I can't figure out why. This can't be a holdover from older systems, they had razor-sharp text rendering on CRTs.
Its not supposed to be blurry, you may have a configuration error in your browsers font renderers pixel order (like using BGR on an RGB screen), Id recommend testing with font smoothing turned off and seeing if it persists.