Why Making Multiplayer Games SUCKS

preview_player
Показать описание
I finally decided to tackle some of the more complex issues I was having with multiplayer, and this is how it went...

⎯⎯⎯⎯⎯⎯

⎯⎯⎯⎯⎯⎯

Gear & Software I Use

Developing

Recording & Streaming

Computer Parts & Peripherals
⮞ RAM - 8GB x2

Other

I personally use all of the above products and services, so they are genuine recommendations. Some of these links are affiliate links, which means I get paid a small commission (at no extra cost to you) if you sign up or buy through them. Thanks for supporting the channel!

⎯⎯⎯⎯⎯⎯

#LatencyIsTheEnemy #Devlog #PirateGame #GameDev #IndieDev #IndieGame #Multiplayer #Unity

In this multiplayer devlog I finally decided to tackle some of the more complex problems I've been having with multiplayer. Latency is the enemy, and makes building multiplayer games 1000 times more painful and time consuming. While I've managed to get latency mitigation techniques like client prediction working on dry, non-moving land, it's a whole other story when you're standing on a moving boat, and this video is a summary of my experiences over the last 3 months.

⎯⎯⎯⎯⎯⎯

The music used in this video is sourced from the YouTube Audio Library and StreamBeats.
Рекомендации по теме
Комментарии
Автор

That's why I chose to do LAN multiplayer. That way, if a cheater is stealing your fun you can just go to him and punch him in the face.

nocultist
Автор

"It doesn't work and I don't know why "
"Now it works and I don't know why"

-every programmer's cycle in a nutshell

plank
Автор

Players unfortunately don’t now about all these complications…

MrLasse
Автор

"Give a man a software he will enjoy it, teach him to code he'll never enjoy in his lifetime'
-Suz Tzu art of coding

PatriotZest
Автор

"What better way to fix a bug than working around it?"
-Every Programmer Ever

that_kaii
Автор

Thank you so much for making this. Ever since release its my go to video when players ask "Why don't you just add online"

Neverjam
Автор

I fricken love this channel! Anyone that can do networking is a god.

jasonwilliams
Автор

The best thing is swapping a semicolon for a Greek question mark in a friend's code

calitts
Автор

I tried making a multiplayer fps and gave up because of these things. It's really hard to conceptualize what this sort of entails until after it starts bending you over.

iMinx
Автор

This is very relatable. Great video.

Whenever I tell people about how annoying it is, I don't feel like they comprehend the full extent of it. Even this video didnt fully give it justice.
It's feels like you are slowly driven mad by some eldritch god. Stuff stops making sense but it kinda does, sometimes... You start to understand why online games seem so limited sometimes.

Make sure to take care of your mental health. Take breaks and do other stuff that gives you joy and purpose in life.

PuppetDev
Автор

Hey, I ran into similar issues while developing pantropy. We had the player move on ground and flying/moving bases here are my tips:

1. DO NOT use a rigidbody to move your player. Physics movements are never equal on server and client. Use a CharacterController instead. The characterController.move function is always accurate and the player will move an equal distance on server and client.

2. Don't use the characterController for ground collisions. Use a raycast and keep the player a given distance away from the ground. Move the player downwards if the ray doesn't hit anything.

3. Set the player's transform as a child of a moving object (like your boats) on server and client when he enters it. You will not have any weird physics glitches thanks to the "groundray".

Hope these helped, this wroked for me flawlessly.

krammehl
Автор

Switching from a physics based system to a simple parenting system when stepping onto the ship is actually genius. I had a stupid grin on my phase when i saw that part in the video cause i was also like "wait, how does one fix this actually?". And then my brain was like: "ah of course, why did i not think of that!" :D

toastbrot
Автор

These problems are why I probably wouldn't recommend a multiplayer game for a first project (unless it's local multiplayer). It's a real headache to figure out the proper way for networking in games, and when you're also doing everything else for the first time, it becomes a whole lot to handle.

RialuCaos
Автор

The most honest insight I have seen into what it’s like to develop a game

soundtrackreimagined
Автор

Brilliant to see you've got this going! Client prediction was a major reason why I gave up last time I tried networking.

Skeffles
Автор

I just made my first game in unity, and honestly the coding part seems kinda intimidating but i'm somehow enjoying the learning process.

PixelWealthh
Автор

That cliff hanger tho! I was on the edge o' me cap'n seat. Great video like always matey :p

xzippyzachx
Автор

"You realize that you didn't read the documentation properly". Oh, if only! I can't even begin to count the hours I've wasted on following incorrect documentation.

generaalnaarling
Автор

This is a great video. Very good and clean explanation of an otherwise very complex topic.

A few things from my several years experience:
- there's no need to "compare" for misprediction... just overwrite with server data and resimulate forward (maybe this is what you do already) with the local input buffer...
- for moving boats, and all moving platforms in that sense, it gets trickier because you could place the boat in predicted timing as well (if you also predict/rollback physics, which you can do), but this would create a problem for proxies (view of other players) as they are generally on interpolated time.

One thing that may work for proxies is to predict just their gravity and move-with-platform part... But in either case or solution you will loose one thing, which is the capability of doing accurate lag compensation... but that is another story...:)

erickpassos
Автор

0:16 Yeah its such a good feeling when you rewrite all of that code but in a different way beause you thought your other way is stupid and didn't work BUT! then you see that you didn't type () or added an extra space

Great video btw Hope we can see more videos soon. Love the progress so far Good luck!

hazytp