I don’t see why developers can’t just make a game that works with or without the internet. There’s no reason a game can’t just connect to another copy of the game and communicate console to console. If there’s a reason beyond greed that this can’t happen please enlighten me.
Peer2peer connections are very difficult. Mainly because clients are behind a NAT which allows only connections from inside to outside. So when a client wants to connect to another client one connection comes from outside and is blocked. There is a “bug” called NAT holepunching to still connect but that’s not a trivial task and doesn’t work on all setups. I recently tried out webRTC for a multiplayer game but I still don’t know what to do with people where that connection can’t be established. SteamAPI has a P2P feature as well, and when they can’t establish a p2p connection they just silently route the packets over their servers.