▲ | jonhohle 5 days ago | ||||||||||||||||
I think many games were that way. SotN definitely has a global timer. On a native 32-bit system it makes sense, especially when the life of a game was a few months to a few years on the retail shelf. No player is going to leave their system running for 2.27 years so what’s the point of even tesing it? Who knew at the time they were creating games that would be disassembled, deconstructed, reverse engineered. Do any of us think about that regarding any program we write? | |||||||||||||||||
▲ | Gamemaster1379 5 days ago | parent | next [-] | ||||||||||||||||
Can be more than timers too. There's a funny one in Paper Mario where a block technically can be hit so many times it'll reset and award items again. Hit enough times it'll eventually crash. Of course it'd take around 30 years for the first rollover and 400 or so for the crash. https://n64squid.com/paper-mario-reward-block-glitch/ | |||||||||||||||||
▲ | rybosome 4 days ago | parent | prev | next [-] | ||||||||||||||||
It’s a totally reasonable choice in that context. I wonder if any sense this is criticism (or actual criticism) is based on implementers of SaaS who have it so deeply ingrained that “haha what if the users of this software did this really extreme thing” is more like “oh shit what if the users of this software did this really extreme thing”. When I worked on Google cloud storage, I once shipped a feature that briefly broke single-shot uploads of more than 2gb. I didn’t consider this use case because it was so absurd - anything larger than 2mb is recommended to go through a resumable/retryable flow, not a one-shot that either sends it all correctly the first time or fails. Client libraries enforced this, but not the APIs! It was an easy fix with that knowledge, but the lesson remained to me that whatever extreme behaviors you allow in your API will be found, so you have to be very paranoid about what you allow if you don’t want to support it indefinitely (which we tried to do, it was hard). Anyway in this case that level of paranoia would make no sense. The programmers of this age made amazing, highly coreographed programs that ran exactly as intended on the right hardware and timing. | |||||||||||||||||
▲ | technion 5 days ago | parent | prev | next [-] | ||||||||||||||||
Let's say youre pedantic with code. Ive been trying to be lately - clippy has an ovefflow lint for rust i try to use. Error: game running for two years, rebooting so you cant cheese a timer. Does this make the bug any better handled? Bugs like this annoy me because they arent easily answered. | |||||||||||||||||
| |||||||||||||||||
▲ | jraph 5 days ago | parent | prev | next [-] | ||||||||||||||||
Isn't this common in the computer game scene? Shouldn't you asume your game will be disassembled, deconstructed, reverse engineered? Although for old games released before internet was widespread in the general population, it might have not been this obvious. | |||||||||||||||||
| |||||||||||||||||
▲ | lentil_soup 5 days ago | parent | prev | next [-] | ||||||||||||||||
they're still made like this. Just now I made a frame counter that just increments every frame on a int64. It would eventually wrap around but doubt anyone will still be around to see it happen :| | |||||||||||||||||
▲ | account42 4 days ago | parent | prev [-] | ||||||||||||||||
For some games the timer is stored is save files so it doesn't even have to be continuous play time. 2 years is still longer than anyone is expected to spend on a game. |