#What are some things to avoid when planning to integrate online

1 messages · Page 1 of 1 (latest)

elder crag
#

Just wondering about things I should try to avoid for my game (various different modes with different gameplay genres)

And where I should use p2p and when to use an official server

Not planning on saying all my ideas, so lets just talk generally

grizzled thunder
#

Be aware that popular multiplayer games nowadays employ very complicated techniques, and have tens and tens of expert developers implementing them. Replicating them will be near impossible and doing so by yourself will almost certainly be impossible. Design your game to be simple, and be aware of how multiplayer and the latency that comes with it will effect your player interactions.

#

Dedicated servers are expensive, and even some P2P solutions can end up costing you money. Research what solution you want to use for P2P and make sure you know what you're getting in to before using them.

#

Design and develop with multiplayer from the beginning. Adding online play after the fact is counterintuitive.

elder crag
#

For the last part, that’s why I’m here hahaha

#

Trying to design based around that

grizzled thunder
elder crag
#

Currently in preproduction for the game portion of things

#

Planning and whatnot

#

As for the rest of it, I’m hoping to, in the end, have an overworld that would be handled by a dedicated server, with only a few things being handled there, like position, action and their components properties, for their visuals, and if that goes well then some speech bubbles with what they wanna say

The rest of the modes I feel like p2p would probably be fine for

#

For the first part of your message though, that is definitely important info to know lol, pretty new to the whole networking side of things, and watching a lot of stuff about implementing it seems like there’s a lot of important stuff you should learn before trying anything

#

Definitely gonna condense and optimize as much of the data that I wanna share between players as I can so it’s cost effective and won’t be unnecessarily heavy either

grizzled thunder
#

People want to make an FPS game like the popular ones made by big companies nowadays, and it is simply not possible as a solo developer using free tools.

elder crag
#

I’m sure a lot of people planning multiplayer wouldn’t even consider asking the question I am, so I can see that, I always try to do things as properly as I can, otherwise it’ll just be a nightmare in the longrun

#

Luckily though my plans for the game will be pretty simple with each mode only having one main thing they do, with only some being more full fledged games, I want it to be a social game in the end so this stuff is unfortunately vital to it

#

So I guess lets start with p2p, what are some of the bigger things to avoid with those connections? I know physics are pretty brutal when it comes to syncing it up, and it also sounds like a lot of extra data, but is there anything else I should be wary of

#

Also to get an idea of my scope, each mode will essentially just be, to throw out some blanket terms, one will be board game-esque, another will be a word game, one will be a little rail shooter, etc etc

grizzled thunder
elder crag
#

Well social as in, heavy on social interactions, for the game as a whole, each mode would be fairly competitive between players

#

And hmm, that sounds solid for the rail shooter mode, having it update ammo and enemies killed clientside

#

But hmm, high latency is definitely something I’d have to plan around then

grizzled thunder
#

Shooting will be difficult to make fair with client authority.

elder crag
#

Yeah

grizzled thunder
#

and high latency

elder crag
#

Luckily that mode wouldn’t be pvp, but more of a score competition

#

There are still some pvp modes I have in mind though

#

So would the general rule of thumb be p2p for turn based/slower paced modes and dedicated server for the bigger scale scenes and pvp?

grizzled thunder
#

For fair and responsive PvP that involves quick interactions, you'd almost certainly want a dedicated server. Plus you would have to develop with some more advance techniques like server authority, client side prediction and lag compensation.

#

I would argue that's more cost and more trouble than it's worth and that you'd be better off coming up with ways to do PvP with P2P and client authority.

#

There are limitations for sure, but you can work around them if you're clever enough.

grizzled thunder
elder crag
#

Hmm yeah there is one or two modes I have in mind that are on the higher end of competitiveness that I would probably want to invest the time in learning that stuff for

#

The rest are more party game oriented than anything

#

Just to hop on and have fun doing instead of trying to win

grizzled thunder
#

Usually doesn't make sense for the smaller part of your game to require more work than the rest of the game.

#

But of course that is up to you.

elder crag
#

Yeah, the 2 modes I’m talking about that would probably need it are definitely probably the bigger draws of the game I think, so probably worth doing dedicated servers for those two modes in particular

#

The rest would be fine with a little bit of latency

grizzled thunder
#

There are also some solutions that boast client-side prediction and other advanced techniques being built in to their solution. They may be worth checking out.

elder crag
#

I guess it wouldn’t hurt trying them with p2p like the rest of the modes and then if it doesn’t work well enough I can rework it

grizzled thunder
#

You may have luck checking out Photon's services and networking libraries.

#

All of the other solutions that boast the built in advanced techniques, I have not seen used in production. Quantum was used for Stumble Guys.

elder crag
#

Ooo it supports both options too, definitely sounds nice to work with

grizzled thunder
#

Something to be aware of for Fusion 2 and Quantum is that there are very little tutorials and third party information online about them. You'd have to rely almost entirely on their documentation and their Discord server (which I believe is pay-to-access)

#

As well, Quantum uses custom physics. So there is a learning curve there.

elder crag
#

I’ll check this out once my game is ready to get online multiplayer added,

I’m thinking of doing it like this, lmk if it sounds reasonable,

Get mode finished up, with local multiplayer fully intact (if it can be played on a single screen)
then work on implementing online and setting everything up to work with the system

With the planning for online all being done before making the mode itself, that way there’s minimal conflicts

elder crag
#

And interesting

grizzled thunder
elder crag
#

Would the custom physics work offline too?

grizzled thunder
#

I'm not sure if you get access to it when paying for their services or something like that. Someone else would know better than me.

elder crag
#

And gotcha

grizzled thunder
elder crag
#

Hmm, what exactly is the “Quantum” portion of it, I thought that’d only be for connecting to other players online, with a custom physics system so it can sync things easier

grizzled thunder
elder crag
#

Oh true

grizzled thunder
#

Unity's Distributed Authority is the same way.

elder crag
#

Hmmm, I’m sure making offline functionality for stuff that doesn’t work offline wouldn’t be that hard

grizzled thunder
elder crag
#

Yeah, saw a video about distributed authority a while back, it seemed pretty straightforward

#

So I guess rewinding a bit, back to the design side of things,

The online modes are going to be designed to be pretty simple, bar those two I mentioned, but what kind of stuff specifically should I try to avoid when working with p2p or dedicated

#

Things that would be catastrophic to make work in an online setting lol

grizzled thunder
#

Hard to say much more beyond what I've already said without specifics

elder crag
#

Hmm ig it’d be easier to talk more about stuff that’d make my life the easiest lol

#

Rather than things to avoid

grizzled thunder
#

with P2P and client-authority, it is hard to do player to player interactions and it is hard to deal with fasting moving objects.

elder crag
#

Gotcha

grizzled thunder
#

It's also worth noting that you can't preplan your way out of issues. It's best to start small, jump right in and expand as you learn.

#

Especially when starting to learn multiplayer development. It's entirely different than anything you will have done offline.

elder crag
#

I’ve noticed that with a lot of things, online networking stuff just sounds like it’s a big thing that requires a bunch of forethought

grizzled thunder
#

The only real way to learn is to just get in there with a small, achievable task.

elder crag
#

Alright, I guess I’m glad the first few modes I’m gonna make are super small

grizzled thunder
elder crag
#

Yeah, that’s fair

grizzled thunder
#

It's important to preplan and not set yourself up with junk code, but none of that matters if your goal is something that's not possible.

#

Another guy here and I love the saying: premature optimization is the devil

#

Better to start small, learn and iterate.

elder crag
#

Yeah, I’m not trying to make the next CoD luckily, just got some small game ideas that would be super fun online, and a hub area to bring a bunch of people together

#

Got (what I think) will be a pretty small amount of data to send between players for 90% of the game

#

And just trying to set myself up for success as much as I can

grizzled thunder
#

Yep. Definitely doable. I think like you said, starting with one of the smaller, slow paced social modes is a good way to start and learn.

elder crag
#

I know online stuff is a behemoth lol

#

Alright well, thank you for the help, I’m really hoping this will work out, and honestly, the biggest thing I was worried about was planning things that wouldn’t be doable and not really knowing what the best networking system would be to do it

#

So guiding me in the right direction and yk, making sure I’m not overshooting what’s possible (with the people making the game) helped a lot

grizzled thunder
#

No worries. I think you'll do great. You've already got a jump on so many people by having realistic expectations.

elder crag
#

I hope so lol

#

One of the modes is definitely more on the ambitious side, but having some experience by setting it up with everything else I think will help a lot

thick mural
# elder crag Oh yikes, paywalled discord

this is not true

they have a community discord that's very active, with even the lead devs helping out people for free

but because they are a company with hundreds of enterprise customers, they have a private paid community for companies / actual game studios

grizzled thunder