#What are some things to avoid when planning to integrate online
1 messages · Page 1 of 1 (latest)
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.
Which part?
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
Yeah just wanted to put it out there because it's a very common pitfall I see on here.
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.
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
P2P will have high latency, so you'd be best to design player-to-player interactions that are slow and methodical. Also, if it's just a social game, you will likely want to use a system that favors client authority (local player updates their own state, and sends to the server) so stuff is responsive for the local player.
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
Shooting will be difficult to make fair with client authority.
Yeah
and high latency
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?
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.
The only thing is that if you're creating a very competitive game, players have come to expect a certain level of responsiveness that only can be achieved like this.
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
Yeah, that is why I lean this way based on what you've said.
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.
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
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.
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
You may have luck checking out Photon's services and networking libraries.
Fusion 2 Shared Mode for your casual modes:
https://doc.photonengine.com/fusion/current/tutorials/shared-mode-basics/overview
and Quantum for your competitive modes: https://www.photonengine.com/quantum
Fusion Shared Mode Basics explain the initial steps required to start a Fusion project. A general understanding of Unity and C# is expected.
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.
Ooo it supports both options too, definitely sounds nice to work with
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.
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
Oh yikes, paywalled discord
And interesting
I think there is a free Discord, but I think I've read that most of the useful support and info comes from the paid one.
Would the custom physics work offline too?
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.
And gotcha
They should. I'm not sure if Quantum as a whole can be used offline though.
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
You'd just want to develop online play from the start. Offline local multiplayer can be achieved by using your online code, and just running a "server" on your machine via localhost.
Oh true
Some of these online solutions only function online, as some of the specific networking features happen through the online service. I'm not sure about specifics for Quantum, but if I remember correctly I have seen people say that creating an offline local server can be annoying or not possible with Photon services.
Unity's Distributed Authority is the same way.
Hmmm, I’m sure making offline functionality for stuff that doesn’t work offline wouldn’t be that hard
I know for this you can pretty easily switch between Distributed Authority and Client-Server if your code is set up with a little bit of forethought.
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
Hard to say much more beyond what I've already said without specifics
Hmm ig it’d be easier to talk more about stuff that’d make my life the easiest lol
Rather than things to avoid
with P2P and client-authority, it is hard to do player to player interactions and it is hard to deal with fasting moving objects.
Gotcha
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.
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
The only real way to learn is to just get in there with a small, achievable task.
Alright, I guess I’m glad the first few modes I’m gonna make are super small
Up to a certain point, but it moreso goes back to what I was saying. You have to realize your limitations as a beginner and as a solo developer.
Yeah, that’s fair
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.
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
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.
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
No worries. I think you'll do great. You've already got a jump on so many people by having realistic expectations.
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
this is misinformation
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
Notice how I said "I think"
and this