🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Why implement built-in online play instead of using Steam RemotePlay?

Started by
9 comments, last by Domarius 2 years, 1 month ago

This is an honest question for my local multiplayer game HopSquash! https://store.steampowered.com/app/1012450/HopSquash/​​ For reference, it's a 2D local multiplayer like Duck Game, or Towerfall

I tried Steam RemotePlay and it's amazing how responsive it is actually. And I have received messages from players saying they do play it using RemotePlay to play with other friends in another location.

But I've also received feedback asking for “proper” online play to be built in. The only advantage I can think of is it would include a matchmaking system that would play with random people online. But as this is a super niche small game, I can't imagine it ever being popular enough that many people would be online at one time, waiting in a lobby to be matched up with randoms.

Is there other key benefits I'm missing?

For local multiplayer retro themed games, visit Domarius Games.

Advertisement

Yay, Duck Game, I worked with Landon as the network engineer on the Switch port of that. It's a surprisingly fun brawl game for it's simplicity.

As for the reasons:

The biggest legitimate reason I can imagine is using less bandwidth. RemotePlay is much like a video call transmitting a lot of data, where a typical online game typically has far less data requirements. You're looking at about 10GB/hour to host a group game for RemotePlay, but probably on the order of 20MB/hour to host for the networked game. That can be a 500:1 difference or even bigger, so for metered connections it's a compelling reason.

As you mention, it enables more features like matchmaking. It also allows working on other platforms outside of the Steam ecosystem. It allows more advanced controls within a game based on networking details, geolocation, and so on.

Another would be to increase sales, every person needs to own a copy, but I doubt that's a reason here. In fact, I expect it's the OPPOSITE of this reason.

Another reason is to enable piracy. It is relatively simple to bypass Steam protections in most games, they're easily stripped with basic tools unless the game has taken major efforts to prevent it. It is far more difficult to bypass the protections for Steam's RemotePlay.

If you are getting the messages from players, I expect the big reasons are bandwidth reduction and enabling piracy.

As for if it is worth it, it depends on you and the code. The difficulty to implement will depend on the game. If it takes the rough equivalent of $30K in wages for you to implement, or $60K in equivalent wages, or $100K in equivalent wages, will it make that much more in sales? That's something we can't answer.

Remote play, sending screen video streaming, will consume a lot more bandwidth, which is a problem for people on mobile plans or with metered local internet connections.

Remote play also can't hide input latency. Sometimes, that's totally fine. Other times, you really do want local actors to be able to play feedback before a packet can make a round trip.

Finally, some people don't like others having power over their game. Valve can ban users you like, or can even ban YOU, the developer, from using Steam services. When you have your own networking, you can always work around that problem.

It's all a choice of “how much do I get? how much time do I need to invest? how much money does it cost? how many more players do I reach?” And this determination is different for each developer and each game!

enum Bool { True, False, FileNotFound };

Wow, didn't know there are actually reincarnations of the Jump'n'Bump game. We've had a lot of fun with that :D

Thankyou very much @hplus0603 and @frob well I would like to THINK the main reason is bandwidth and not piracy (but I can only hope), and perhaps convenience, maybe they are unfamiliar with the RemotePlay feature and would prefer to see it in the game.

@hplus0603 That's a lot of detailed info too, thank you. I particularly like the point about the client side prediction, events etc. for latency, I forgot about that stuff. This game is probably so super simple it's not going to matter.

I will have to look into this anyway since I'm porting to the Nintendo Switch, just wondering why they were so keen.

JoeJ said:

Wow, didn't know there are actually reincarnations of the Jump'n'Bump game. We've had a lot of fun with that :D

So did my brothers and I back when it first came out on DOS! Yes it was open source and had a networkable Windows port. The latest news is it's been ported to Retroarch!

Mine is the only “extended” one that isn't just a port, that I know of. I hope Jump n Bump fans like it ?

frob said:

Yay, Duck Game, I worked with Landon as the network engineer on the Switch port of that. It's a surprisingly fun brawl game for it's simplicity.

Hey man that's awesome! What was that like? I've always been curious what engine it was made in, hopefully you won't break any NDA by answering? ?

This game actually, its made in Unity, and I've got it running on the Nintendo Switch dev kit pretty easy (thanks Unity) but I have literally no idea what building in online play for Nintendo Switch will entail and if Unity will make life easier in any way, would you happen to know?

For local multiplayer retro themed games, visit Domarius Games.

Domarius said:
Hey man that's awesome! What was that like? I've always been curious what engine it was made in, hopefully you won't break any NDA by answering?

He built it with MonoGame, which isn't exactly an engine. In addition to all the programming, he did the original art and music. And no need for NDA breaking there, he's been quite open with fans and interviews about what tools he has used. For the various ports he and the publisher worked with other companies.

Domarius said:
This game actually, its made in Unity, and I've got it running on the Nintendo Switch dev kit pretty easy (thanks Unity) but I have literally no idea what building in online play for Nintendo Switch will entail and if Unity will make life easier in any way, would you happen to know?

Nintendo has a list of certification requirements. If you let the engine do the work for you then you are trusting they did it all correctly. It is one less thing you have to do.

Like most consoles, they have a networking model that operates farther along the OSI model. Many PC games operate on the Transport layer, focusing on UDP and TCP packets and having the game do all three remaining layers. The console libraries work farther along the model, the libraries establish game sessions, run encryption, establish communications groups with their friends, and more. The game can tell the libraries to connect and walk through the various networking connectivity states, but generally operates on the Application or possibly Presentation levels. That's one of the bigger transitions that needs to be made for a lot of ports. Some games can continue to operate at the Transport level, but many times developers need to implement console features like friend groups that complicate things.

That's one of the common changes that needs to happen with ports. If a game relies on something like Steamworks or Playfab already it is far easier than if they're working from raw sockets directly. If you are relying on Unity to do the work for you, then it's already done.

frob said:
And no need for NDA breaking there, he's been quite open with fans and interviews about what tools he has used.

That's good to finally know, thanks ? I guess I just never came across the answer.

frob said:
If a game relies on something like Steamworks or Playfab already it is far easier than if they're working from raw sockets directly. If you are relying on Unity to do the work for you, then it's already done.

Thanks man, so based off everything you I'll develop for Steamworks or Nintendo's system first and only work down to Transport level when I need to.

Unrelated, the only other time I've seen the word “frob” is in the context of Looking Glass's Thief level editor. Is there any connection? ?

For local multiplayer retro themed games, visit Domarius Games.

No, the term is much older.

@Domarius Wikipedia on Frob

enum Bool { True, False, FileNotFound };

Heh yeah I did find the original meaning of the term before I asked, but had no idea till now it was a computer term outside of Thief…

For local multiplayer retro themed games, visit Domarius Games.

This topic is closed to new replies.

Advertisement