What are cross-play and cross-progression, and why are they hard?
Cross-play lets players on different platforms play together. Cross-progression lets a single account's purchases, unlocks and progress follow you between platforms. They are separate features, and a game can have one without the other.
Why they were historically absent:
Platform holder resistance, which was the main barrier rather than a technical one. Consoles compete on exclusivity and ecosystem lock-in, and letting players take progress elsewhere weakens that. Sony in particular resisted cross-play for years before opening up under sustained pressure, notably around Fortnite.
Separate online services. Each platform runs its own accounts, friends lists, matchmaking and payment systems, and they were not designed to interoperate.
The technical difficulties are real, though:
Certification cycles differ. Each platform holder must approve each update. Getting a patch live simultaneously across PlayStation, Xbox, Steam, mobile and Switch requires coordinating separate approval processes — and a game where versions are out of step cannot safely share a multiplayer pool.
Input disparity. Mouse and keyboard offers a substantial aiming advantage over a controller in shooters. Games handle this by segregating by input method rather than platform, or by adjusting aim assist — and both approaches are contentious.
Performance disparity. Frame rate and resolution differ enormously across hardware, and higher frame rates confer real competitive advantage.
Anti-cheat. PC is far more exploitable than consoles, which is why many games let console players opt out of matching with PC.
Cross-progression adds an economic problem. Purchases are made through a platform's store, and that platform takes a commission. Honouring a purchase made on one platform when the player is on another means one company collected the revenue while another bears the cost — which requires commercial agreement, not just engineering.
Account linking is the usual mechanism, tying platform accounts to a publisher account.
Progress is not always fully portable — currencies bought on one platform frequently stay there.