What this means is that now you can play GOG games that previously required the (non-Linux native) GOG Galaxy client!
…for multiplayer.
And I’m not sure why these developers forgot how to add LAN and direct IP connections to their games, but it sure does muddy the experience of buying “DRM-free” games.
While I agree it can be painful to do anything multiplayer without dedicated network support in the game itself, it’s a nontrivial thing for devs to add. Expecting every dev studio to be network experts as well as having the infrastructure for the cloud peer connections is why Steam finally added a way for games to simulate couch co-op between remote players. I try to buy games on GOG as my first choice but there are definitely factors (including price) where I’ll consider Steam instead.
It’s a nontrivial thing to make a good product for your customers, but it should still be done. If only GOG had the market muscle to require this without shooting themselves in the foot, like when Apple pretty much universally made digital music purchases DRM-free.
EDIT: Wait, what does this mean?
as well as having the infrastructure for the cloud peer connections
What infrastructure? You need some port forwarding know-how, but other than that, you type in an address and go.
Doing things with a direct connection to friends is something no one does anymore. Port forwarding for a game? Yeah it’s fine for people who are technically minded like I’m sure anyone in the community is, but walking a friend through it on their router just to play with them is a nonstarter. No, the cloud connection is how this is handled now. I haven’t seen a game in a decade do it via a direct connection from player to player.
The unanimous game of the year did it just last year. No one uses seat belts or air bags until you have to either. LAN, direct IP connections, private servers, etc. are essential for when services like GOG’s or Steam’s are no longer functional or available. Without them, some part of the game will effectively always have DRM.
That’s news to me, but looked it up and confirmed you’re absolutely right. That blows my mind, because in many circumstances it can be impossible for players to connect, especially in a double NAT situation or you’re playing on a network you have no control over (e.g. university network).
But comparing a safety feature to a technical requirement is a bit misleading here, no? This is more about making sure gamers can just play rather than having to reconfigure network equipment, which they may or may not have access to.
Honestly if Steam is down at this point, I’ve got bigger things to worry about personally. Does it happen? Do I curse the name of GabeN? Sure, but it’s such a rare instance and happens maybe once a year for a matter of an hour or so typically.
But let’s not confuse using a client app as being DRM. On GOG Galaxy, it’s not doing anything DRM related other than providing you access to download the game itself. All the client is doing is providing a “friends network” that everyone is connecting to and creating a cloud bridged connection. This solves any double NAT problems, obfuscates your IP, removes any need to make network config changes, and no one has to think about it.
It’s convenient for players, who don’t need to know anything about networking to play, which is why we all use it despite its downsides. But it always has downsides. Steam networking goes down for regular weekly maintenance and kills your multiplayer session in a lot of cases. If you and a couple of friends are on a train or in a rural area with terrible internet, you can still play with LAN.
But these online connections are in fact DRM. If you need to connect to your store’s servers to play multiplayer, I imagine that reduces piracy compared to being able to copy paste the executable a few times and send it to a few friends that can all play together. Still, I want the guarantee that what I’m buying is built to last, which means no DRM, which means requiring that connection to my store’s servers is not it.
I completely agree with you that Steam itself is DRM and that we use it for convenience.
But I do disagree with the same statement about GOG Galaxy because it doesn’t provide the same digital decrypting functionality that all DRM provides. They don’t do it because they don’t have to, proven by the ability to download the EXE and BIN files directly even in Galaxy. I liken the Galaxy app to using a VPN or other network tool like Hibachi people have used when a game only had couch co-op support.
Either way, your point is made, but I don’t see an issue with running a client app that provides so much. I don’t inherently trust Valve or GOG, but they haven’t done anything that I know of to betray me as a gamer or consumer. I do NOT however see a point in running a client app that also has additional launchers required afterwards like all Ubi games. DRM on top of DRM is anti gamer imo.
I’m not a game dev, so I am asking naively this: why is networking code for games not standardized?
It’s crazy to me that so many companies develop their own netcode instead of pooling resources to create a library once and for all for netcode.
It is a non-trivial thing to develop, so everyone would gain from having a framework and library ready to use that works well and can be implemented into any game.
In the end, the information exchange is done between the client and the server and the application layer can have any packets it needs.
There are just a ton of ways to skin that cat. You can do things like object replication, where the server is authoritative and sends updates states to every player, but even then, you might want to have something like aiming in a 3D game done locally so that it feels responsive and then update it with the server’s understanding of what’s possible just in case things get out of whack. In the fighting game space, there’s rollback, where each player has a complete up to date simulation of what the game is doing, and they only send inputs back and forth; then if something is out of date, it resimulates the last couple of frames, invisibly, until it’s done catching up, all within the span of 1 frame. However, this approach tends to be less graceful when it comes to people coming and going, because you need to synchronize the game state before you start sharing information back and forth. The network infrastructure for something like Dark Souls, where you’re dynamically pulling in players, messages, and recordings of players’ ghosts, will be different still. I don’t think there’s a one-size-fits-all solution, but the most common ones do tend to be available in one-size-fits-most.
There are prebuilt solutions in some common engines, and companies like Multiplay that will help with development and hosting, but ultimately it depends on the specific needs of each game.
What works well for one project might be overkill for another, so studios have to spend a lot of time figuring out their needs and building something bespoke for it.