Can someone knowledgeable explain why DRM functions would be called on every zombie kill? I guess I don't have a good understanding on how these DRM checks are implemented in games in general.
Can someone knowledgeable explain why DRM functions would be called on every zombie kill? I guess I don't have a good understanding on how these DRM checks are implemented in games in general.
Here they put some in the zombie kill routine, but I don't think there is anything special about zombie kills. It could have been anything: picked up ammo, loading a map, pass a certain event, on a timer, during a save, all of the above, etc...
I don't have a deep knowledge about the technology involved but from what I've seen modern DRM like Denuvo are based on virtual machines and are very flexible, allowing all sorts of checks at many points. Done well, there is little overhead, but some overzealous publishers do frequent lengthy checks, killing performance.
For the DRM to hold up the checks need to be frequent, hard to pin down and in practice that means in performance critical, complex code that can behave in unexpected ways.
Since when do publishers have access to source code to do those checks themselves? Developers do that. And yes, I am aware that in this particular case, for RE:Village, the developer and publisher are the same.
It has the same slowndowns it used to have on PSX, but somehow, worse, the game runs quite poorly during combat, stuttering when there is any new sprite on the screen.
I think they lost the source code, and made an emulator just f or this game, to allow them to shove the new "remastered" assets in (the remastered assets are just AI-processed backgrounds... quite poorly sometimes even, for example in one screen something that is clearly some grass near a fountain on PS1 became a green smudge on PC).
And that does not only apply to games, certain parts of MS office do not have source available anymore so MS has done binary patches to fix bugs, pixar almost lost part of a movie but an employee happened to have a offsite copy at their home.
Doing a full build from scratch of a game is a complicated thing. The build systems at a game studios are quite extensive.
Even if you were given access to the version control repositories for a game I think it would probably take you quite a long time to be able to successfully export and build everything from scratch.
Not that I'm in the know, but it seems likely that publishers can get code into the binary one way or the other.
And crackers, until they don't get to that point in game, they have no idea that what's ahead is legit game code or just another Denuvo trap to trigger something (game crash, patch previous cracked portion of game, corrupt saves, etc etc - the possibilities to fuck with the cracker are limited only by imagination). That's why cracking takes time when it comes to Denuvo, because is a tedious step-by-step dissembling boring job.
I can imagine disaster if someone inlines the wrong function here. Definitely something that shouldn’t make it out the door, but amazing the difference 6 letters could make.
I think this is pretty smart.
tehbeard (another comment in this thread) makes a point that maybe not attaching the DRM calls to the clock makes it easier to hide them, since a cracker would probably be looking for a time-based trigger.
By way of illustrating this point: C++ has std::chrono::system_clock, std::chrono::steady_clock, and std::clock, all of which give different guarantees on how the clock behaves.
Arguably, without EMPRESS, the crack would have taken a lot longer.
Doom Eternal & Metro Exodus – https://www.gamesindustry.biz/articles/2020-05-29-denuvo-sec...
Monster Hunter World – https://www.vg247.com/2021/06/03/monster-hunter-world-denuvo...
Mass Effect Legendary Edition – https://www.nme.com/news/gaming-news/mass-effect-legendary-e...
Nier Automata – https://www.nme.com/news/gaming-news/nier-automata-update-re...
Taken literally, that's all of ~60 additional copies sold!
2. People who want to play the game immediately and can’t wait, but will download it for free if they can
3. People who want to play it but are happy to wait for a sale
4. People who will never buy the game, but will play a cracked version
Group 2 is pretty huge, and includes age groups who care a lot about cosmetic items online (teenagers-20s)
meaningful online service is the only thing that drives me to buy AAA games now and days, and most don't even have that.
Steam is a great thing for anti-piracy; 99% of the time it works without any friction and is faster/safer than piracy.
On the other hand I've only played the original Call of Duty and BF1942, and have neither paid for nor pirated any of the sequels of either. Frankly most AAA games actually really suck.
The only game I pirated in the last 10 or so years was Metro Exodus because it was removed from the Steam store just before launch.
I waited until I could buy it for ridiculously dirt cheap on sale (literally a tiny fraction of full asking price) because their actions at launch destroyed my willingness to pay full price. Had they done things differently, they easily could have had me as a happy full price purchaser.