Hacker News new | ask | show | jobs
by hlandau 1434 days ago
If there's sufficient determination, people will just write replacement backends.

This is a real phenomenon. As I recall some years ago Ubisoft tried to come out with a (single-player) video game which couldn't be played offline, and which was dependent on an online server as an anti-piracy tactic. I believe this game was still pirated using some kind of fake server.

It's also interesting how common it is for people to create replacement servers for popular MMOs, given the extent of the reverse engineering that this requires, using custom non-HTTP protocols which are much harder to reverse. MMOs should be "unpirateable" yet unofficial open source server reimplementations are a real thing.

6 comments

This has become SOP for Ubisoft and EA; but I believe you’re referring to Simcity by EA. That was the most egregious example with the most press and was zero-day cracked with a stub server interface.
EA claimed that it needed a server connection because a desktop computer couldn't run the simulation. This claim was absurd on the face of it; EA couldn't possibly turn a profit if each copy of the game required dedicated beefy-ass server hardware to support it.

But of course, on launch it was quickly discovered the game ran just fine without an internet connection. After 30 minutes, the game would complain the server would time out and shut down voluntarily. But all it took was patching the "30 minutes" magic number. Poof, problem solved.

Long story short, it is an ongoing problem that pirates receive a superior product. (A problem for publishers anyways, not one for pirates.)

> EA couldn't possibly turn a profit if each copy of the game required dedicated beefy-ass server hardware to support it.

I think the charitable interpretation of EA's (fantastical) justification, was that they were planning to have some shared agent-based simulations being run in the cloud (one per "region" — where the whole point of the SC5 "regions" was that they were a sharding boundary for this shared simulation); where your updates to your city would be (asynchronously) incorporated into that shared agentive model; and then the interactions of the agents flowing through that shared model, would get reflected back into your city.

In other words, it wouldn't have been an O(N) computing-power thing, but more like O(N^0.5). Something that would greatly benefit from economies of scale, insofar as a region with 16 tenants wouldn't require much more computation than a region with a single tenant — and likely there'd be a per-region cap on the total number of agents to limit total simulation complexity.

Of course, this isn't what they did; but I think it's what they were claiming they did. Maybe it was even what their marketing department had been misled into thinking they had already done (or would do soon after launch day), because it was something their engineering department had tried to do, but just never got operational "yet".

>it was something their engineering department had tried to do, but just never got operational "yet".

OR it was something a product manager aimed to do, and it was sold internally before it was developed - and then proper resources were not available to make it a reality

> pirates receive a superior product

Including the unofficial day-one patches that fix crashes on their computers and make the game actually possible to run.

> This claim was absurd on the face of it; EA couldn't possibly turn a profit if each copy of the game required dedicated beefy-ass server hardware to support it.

Was it? No, I don't think so. I can imagine numerous computation problems that are not viable to solve client-side (i.e. your device "cannot run the simulation"), but are not a real burden on a server-side for a lot of users. Simpliest example: hosting a couple TB large rainbow table.

(Obviously, I'm not discussing that particular game, my objection is to the general claim only.)

Elite:Dangerous would be an example of that. The simulated galaxy contains 400 billion star systems and the galaxy map can find routes between any two stars, as far as I know that's all handled by the backend.

Though the difference to something like Sim City is that everyone plays in the same shared game world even in "solo" mode.

He is very clearly talking about this specific game. How you interpret the text you quoted as general is hard for me to understand.
> Long story short, it is an ongoing problem that pirates receive a superior product. (A problem for publishers anyways, not one for pirates.)

Yep. Also, don't forget: an even bigger problem for legitimate users.

Not only was Simcity's dial home unnecessary but their servers were extremely underprovisioned for the load[1]. For the first few weeks pirates actually got a significantly better game experience since they could play the game while legitimate players were generally unable to even play in single player.

Simcity was an excellent example of DRM providing no benefits and actively lowering the user's experience - that's almost always the case but it's rarely this extreme and obvious.

1. https://arstechnica.com/gaming/2013/03/clogged-streets-simci...

I'm a city builder fanatic. I played the original simcity, 2000 and 3000. But 4 wasn't very fun and sim city origin was a dumpster fire.

Luckily we have better options now. cities skylines is a worthy successor to the original franchise and the (optional) dlcs only make the experience better.

I actually believe it's referring to Assassin's Creed 2. It had to check in with the central server to see if a legitimate copy was being played, and the way it was cracked was basically going through every possibility where the check can fire off, recording the request/response, and having the cracked version play back the appropriate response to the request. It basically had to be exhaustively played to get to a point where all the request/response combinations got recorded.
It's amazing that anyone is willing to do this, just so that other people can play the game.

Then again, once you've done it, now you can turn off your internet and play the game in peace, so it's not 100% only altruistic.

A lot of DRM (eg the one by denuvo) could be bypassed with hooking from kernelmode, hypervisor shenanigans etc.

But that doesn’t comply with the „scene rules“, they always want a clean executable without any background services. I was always impressed by Razer1911 and CPY who obeyed these rules and did all this work just for clout.

You can make this arbitrarily difficult by moving more and more core functionality into the backend, to the point where the front end is little more than a bundle of cached assets for what's otherwise an online game. At which point, any replacement backend that reused these assets would inarguably be a derivative work infringing on the assets' copyright unless explicitly licensed.

You don't even have to go to this extreme to make conventional piracy all but intractable. As a concrete example, take Civilization 6, and suppose it had been released as a client/server application where the server handled all enemy AI. While creating functional but inequivalent replacement backends may not be terribly difficult — and might even lead to an interesting alternative AI ecosystem — reproducing the precise behavior of the vanilla AI via "black box" reverse engineering would require considerably more effort than cracking an offline game or reimplementing a backend that acts as a mere license server.

Compared to a traditional, fully offline model, moving large portions of a single-player game online would increase both upfront development costs and marginal cost and would be met with disapproval by a nontrivial fraction of potential customers who, for this reason, might choose not to purchase the game. It would also have a slightly smaller potential market to begin due to "always-on" Internet access being commonplace, but not universal.

Still, at this point, there are no real technical obstacles to developers adopting such a model.

In other words, I presume the forces keeping games "crackable" are primarily economic rather than technical.

Runescape private servers anyone? There was a whole scene circa 2012 that reverse engineered the Runescape game client, then built up a dev community of people replicating the game's quests, combat system, leveling system, game loop, multiplayer, chat, etc... with backends written in Java. The community got to a point where prebuilt server "bases" competed in adoption and snippets and tutorials were posted with code that implemented certain functionality built on top of server codebases, that you could copy and paste to create your own Runescape server. What got even more interesting was people creating entirely new game content instead of trying to emulate existing Runescape gameplay, using the same game engine and backends.
MMO games that you speak of are reversed engineered and run on emulated private servers. It turns out that people who reverse engineer those games are as smart as people who program them.

I was always fascinated by software reverse engineering and I spent years researching it. Quite interesting computer science area.

> It's also interesting how common it is for people to create replacement servers for popular MMOs

I believe it might make good money as long as you can dodge legal issues, but I might be wrong.

Hosting and community management is still giant PITA. It potentially is a good money but it's also a hard earned one
The fake server approach was and is used to pirate Diablo 3 as well, which is always online.