No video

What Goes Into Making A Multiplayer FPS?

  Рет қаралды 173,318

Garbaj

Garbaj

Күн бұрын

Rayuse's multiplayer tutorial series: • How To Make A Multipla...
Support me on Kofi: ko-fi.com/garbaj
Music: Know Myself - Patrick Patrikios
Gaming channel: / garbajgaming
Twitter: Garbaj2
Discord: / discord
Godot: godotengine.org

Пікірлер: 260
@brandondp.23
@brandondp.23 3 жыл бұрын
Oh my god. It’s glad to see I’m not the only one getting bombarded with technical stuff from other tutorials.
@garbaj
@garbaj 3 жыл бұрын
at least there are tutorials!
@brandondp.23
@brandondp.23 3 жыл бұрын
@@garbaj yup.
@nathanthomas9395
@nathanthomas9395 2 жыл бұрын
@@garbaj do you know how to make multiple maps
@Survivez-official
@Survivez-official 2 жыл бұрын
Imagine for me with unity and that has even more tutorials
@quak0r746
@quak0r746 3 жыл бұрын
Garbaj: *is happy a console output happens* Me, an aspiring Network Engineer: Finally, some Relatable Content™ !
@garbaj
@garbaj 3 жыл бұрын
:D
@shivanshsrivastav9037
@shivanshsrivastav9037 3 жыл бұрын
Maybe I can relate since I am learning java now
@sepoy5346
@sepoy5346 3 жыл бұрын
@@garbaj please don't forget us and just make a tutorial later on becuz you know lives of many noobs are dependent on you
@pchris
@pchris 3 жыл бұрын
When you get into anti-cheat you'll probably find that one of the many methods available to you will be called "sanity checks" (not to be confused with sanitizing user input) and I think they're a lot of fun to implement! It's basically just the server fact-checking everything the client claims to be happening. Client says they shot their gun? Make the server first check if the player has any ammo left in their clip. they do? Make sure the player isn't firing at a higher fire rate than they should (by calculating an average over a period of time because sometimes varying network latency can cause inconsistencies in shots coming from the player that need to be accounted for). They aren't? Make sure the target they claimed to hit is in line-of-sight (by casting a ray from where the client claimed to shoot from to where the client claimed to hit its target and make sure these points that the client claims it was at and its target was at are within a margin of error of where the server understands them to actually be, that way players can still hit a target that may have just ducked behind cover but wasn't when they shot them, but still can't shoot a target that is on the other side of the map by shooting through the entire map). They are? well then deal the damage! You can do these checks for tons of stuff and they severely limit the advantage cheaters can gain by hacking. With really good sanity checks in a simple shooter, you can pretty much reduce a cheater's advantages to aim-bot, x-ray, and macros before you need more active anti-cheat to stop them. Without these sanity checks? Well, cheaters are flying around the map, teleporting, and shooting everyone with insta-kill lasers through all obstacles.
@no-ld3hz
@no-ld3hz 2 жыл бұрын
Server authoritative systems literally fixes a shit ton of this, sanity checks are stupid for something like movement.
@Matias-dr3ys
@Matias-dr3ys 2 жыл бұрын
escape from tarkov is almost entitrly client side afaik and it causes lots of issues that wouldnt happen otherwise.
@pchris
@pchris 2 жыл бұрын
@@no-ld3hz what I’m describing _is_ a server authoritative system. How do you make a server authoritative system? With sanity checks! And you need to do it with movement to check that a player isn’t moving too fast or spending too much time airborn because otherwise you have speed and fly hacks on your hands.
@no-ld3hz
@no-ld3hz 2 жыл бұрын
@@pchris isnt the whole concept of a sanity check based around if 2 values are the same server and client? Also instead of doing a check against the client to see if they're moving too fast, how about on the client we bind keys to movement masks eg forward is equal to in_move which would be 1
@pchris
@pchris 2 жыл бұрын
@@no-ld3hz the problem with that approach is that it creates a lot of input lag. In a perfect world the server would calculate everything and just send info to display on the clients like league of legends does but if you’ve ever played that game you know there’s a slight delay between clicking where you want to go and your champion changing direction to walk there. It makes it incredibly hard to cheat movement in any way but isn’t suitable for all games. FPS games rely on quick responses to user input from the game and so movement will be simulated on the client and synchronized to the server where it (if you’re using sanity checks) will check the clients work and make sure their movements are valid. This isn’t a perfect system either though. For one it’s more vulnerable to movement cheats and for another users with unstable connections will appear to jitter around a lot making them hard to hit. Both methods have their trade offs and are better for different games. Even with a fully server authoritative system like you’re describing some sanity checks still need to be used. For example in league when a user clicks an enemy it might send a signal to the server to attack that enemy but what’s stopping a user from modifying their client and sending that same signal but targeting an ally? In a video game you take user input and give an output. anything you take from the users computer can’t be taken as accurate and if fudging it could effect gameplay then it should be validated. You are right though, a server authoritative system would need significantly fewer sanity checks and much less complex ones. It just has other trade offs.
@sibottle
@sibottle 3 жыл бұрын
"Is spending 16 months on an fps alot?" "Depends on the context." "Singleplayer? Yes." "Multiplayer? No."
@garbaj
@garbaj 3 жыл бұрын
pain ;_;
@plainshades
@plainshades 3 жыл бұрын
Implementing multiplayer features in actually also depends on the experience of the developer. 16 months for a noob is pretty okay. For an experienced developer, it's just too much. I'd say about 2-3 months.
@basileagle314
@basileagle314 3 жыл бұрын
@@plainshades still depends on the scope of the project and what exactly you're implementing. Also, everyone goes at their own pace and its getting there that counts.
3 жыл бұрын
@@plainshades I think he said about playing the game, not making it
@Kinos141
@Kinos141 3 жыл бұрын
Spending those 16 months on singleplayer is not a waste. Games like Half-Life weren't made in a day. They took a long time to make.
@daveface69
@daveface69 3 жыл бұрын
Almost every multiplayer system uses a client-server model, very few use 'true' peer to peer (Rockstar's RAGE engine is a notable exception). P2P in game networking usually still refers to a client/server model, but with one player acting as the server (i.e. a listen server) where they act as both a client and server - as opposed to a dedicated server, which has no player input.
@Zomparelli
@Zomparelli 3 жыл бұрын
And there's nintendo that charges you for the privilege to play lagged p2p
@jacobskarda
@jacobskarda 3 жыл бұрын
Either way, just don't do p2p lol.
@LunaDragofelis
@LunaDragofelis 3 жыл бұрын
@@Zomparelli *cries in Splatoon 2 player*
@no-ld3hz
@no-ld3hz 2 жыл бұрын
RAGE uses a server based architecture now iirc. Also p2p can technically have a server, but all it does is forward messages eg client1 -> dummy server -> client2, like in the case of valve's internal p2p servers, also ironically enough when they changed voice chat, so people saying they can grab your ip via steam voice chat are just dumb haha.
@OmegaF77
@OmegaF77 Жыл бұрын
Halo uses the latter where the player who gets to play server is called the "host".
@rayuserp
@rayuserp 3 жыл бұрын
Thanks for the shoutout Garbaj I really appreciate it! I've been subbed to you since you were at 6,000 subs and I've learned a lot from your tutorials especially now when I'm trying to do more things with 3d games. Can't wait to see more of your content and also welcome to the multiplayer world where everything is pain and suffering to implement lol.
@garbaj
@garbaj 3 жыл бұрын
Hey rayuse! Thank you for making an excellent tutorial series. I'd be completely lost without it :)
@RealRedXGames
@RealRedXGames 3 жыл бұрын
Great work, I would like to see the future of this project! I'm just gonna lay some general anti cheat advice in case anybody is interested on making a commercial/competitive game. For security measures it's always better to handle that on the server side. Players can always send modified packets to the server without the client itself. I have worked on some multiplayer games before using a different game engine, and the best advice I can give you is try not to send things like positions from the client to the server, Instead the client should send inputs only and the server will move the player. For example : when you press the W key, send a command to the server telling him you pressed that key, the server will move the player and send the new position to all other clients. Lets say that a hacker managed to reverse engineer the game and has access to the move function on the client, If the function sends the position of the player, the hacker will be able to send that function to the server with any position he wants leading the player to teleport all around the map... The same logic applies to gun damage, score , health ..ect. On the other hand, If you're only sending inputs to the server, the best thing a hacker can come up with is a Bot or a macro that plays by itself since it can only send legitimate inputs with no parameters. Of course anti cheating is a large topic and I'm by no mean a security expert, but this is just an advice that really helped for my own projects and it is something that you should consider from the early stage! Good luck to everyone!
@keeper31796
@keeper31796 3 жыл бұрын
THANK YOU, been saying this for literal years and everyone who I have talked to has said I am wrong or that it doesn't work that way.
@duartefonseca4908
@duartefonseca4908 3 жыл бұрын
Would not making the server responsible of all the players movement have an huge impact on performance, for example, increasing lag/delay?
@RealRedXGames
@RealRedXGames 3 жыл бұрын
@@duartefonseca4908 Not really, this wont cause any lag, in fact the delay will be the same since the server will send the same packets to the clients regardless of which way you use. As for the performance, as long as youre not doing some insane calculatiins to move the player that will use a lot of memory then everything should run smoothly. Usually graphics are what fills most of the memory so keeping your server headless is always the best option to maximize the performance.
@duartefonseca4908
@duartefonseca4908 3 жыл бұрын
@@RealRedXGames Ohh I see, thanks!
@AlistairBroomhead
@AlistairBroomhead 2 жыл бұрын
One way I've seen which is a great hybrid approach, is to combine immutable game state with the Actor pattern. You interpret the input on the client side and have the Actor transmit its message detailing the change from the last tick to the next, as well as an identifier for the version of game state it acts on. The client can extrapolate from the data it has received from the server and the input it has received locally to get the state at the current time, but will always work forward from the most recent verified state data from the server, while the server only needs to verify that the state transforms it receives are valid, and then apply them to get the state at the last tick. The fact that game state is immutable means that the server can tell whether that Actor is still in the state the client thought it was in, and if not, it can have logic either for throwing away actions, or applying them to the new state and sending all the updates to the client. For example, consider a player standing on a ledge sending an event saying they are moving forward, however an explosive has detonated, pushing the player off the ledge. You could choose whether the player model is able to modify their velocity in mid-air or whether to throw away any movement controls until they land. This allows the server to prevent cheating, but allows the client to attempt to provide rapid feedback.
@Jofoyo
@Jofoyo 3 жыл бұрын
My guess at the easiest way to combat the most basic cheats, is instead of sending exact actions and coordinates from the client, send the players input actions instead, those get processed by the server, and the client handles it's own simulation of those input actions for smoother controls, then synchronizes periodically with the server. Your server should always have the final say in the players actions.
@bultvidxxxix9973
@bultvidxxxix9973 Жыл бұрын
To prevent wallhacks you should do the opposite though. Limit the information that players get about stuff they shouldn't be able to see.
@Jofoyo
@Jofoyo Жыл бұрын
@@bultvidxxxix9973 The client send the inputs to the server and the server sends entity data and inputs back to the clients if they're 'relevant', IE unoccluded. My point is to never give authority to the clients actions at all except for it's own local simulations. You don't have to constantly send updates for stuff off screen, just tell the client that as soon as this object is within their view frustrum to create that object at this specific location and rotation, and then from there inputs can be sent over. All of this is entirely dependent on having deterministic game physics however.
@OmegaF77
@OmegaF77 Жыл бұрын
@@Jofoyo i think it would still be somewhat doable with a non-deterministic physics engine by having the server occasionally check and compare the client's position in their local simulation with its simulation. If it's off, correct the client's position to the server's plus some delta ping.
@Jofoyo
@Jofoyo Жыл бұрын
@@OmegaF77 Sure is, it'd just be a much bigger cause of rubber banding unless there's very minor variance
@xegrand7548
@xegrand7548 3 жыл бұрын
That's great work. Keep it going would love to see more advancements in this project
@felineentity
@felineentity 3 жыл бұрын
What helped me with understanding multiplayer was, surprise surprise, the Godot manual! I already had some (bad) experience with Unity networking, so I was a bit hesitant trying it in Godot, but it turns out it was a lot less hassle than I first assumed. Also, for anyone starting to do networking in games, DO NOT BOTHER WITH ANTI CHEAT FOR NOW! Preventing cheats is a super complex endeavor, and will suck all your motivation out of your project long before you even get it to be fun in the first place. Get your game working and feeling good first, think about anti cheat later, if you even deem it necessary in the end.
@garbaj
@garbaj 3 жыл бұрын
I agree on the anticheat part! It's definitely not high on my list of priorities at the moment
@GlennDavey
@GlennDavey 2 жыл бұрын
Yeah premature optimisation is a huge pitfall for new devs
@steve16384
@steve16384 2 жыл бұрын
Completely agree. Concentrate on getting people to play it first. That's the biggest hurdle.
@colly9888
@colly9888 3 жыл бұрын
THE KING BESTOWS HIS WISDOM UPON US BLESS HIM
@PlugWorld
@PlugWorld 3 жыл бұрын
Looking awesome!! I've always wanted to do 3D multiplayer, just haven't gotten into it yet. Glad to see you make some progress on a 3D multiplayer game. Anyways, good luck man, I'm excited to see your progress in this!
@S28426
@S28426 3 жыл бұрын
Garbaj Anticheat (patent pending) will probably still be better than VAC
@mokafi7
@mokafi7 3 жыл бұрын
vac is really good though
@S28426
@S28426 3 жыл бұрын
@@mokafi7 /s ?
@theasin_old
@theasin_old 3 жыл бұрын
@@mokafi7 if it's so good why there are bots in TF2?
@AG45.
@AG45. 3 жыл бұрын
@@theasin_old because bots don't get banned on linux because vac can't check if something is modifying the game values in linux because it doesn't the permissions to do so
@CrypticDevGames
@CrypticDevGames 3 жыл бұрын
Yes thank you, I've been struggling so much with this lately I wish there were more tutorials on client server multiplayer
@FedoraRose
@FedoraRose 3 жыл бұрын
This is insane ❤️😁
@zyrk7627
@zyrk7627 3 жыл бұрын
One thing which could greatly benefit with in a form of anti-cheat is something which they call "client-server predictions". What you essentially do is instead of sending over the direct position of the player and letting the server accept it, you send over the information in which state the player is in (Moving, jumping, etc etc). What you then do is calculate the new position of the player on both the client and the server and compare them on the server! If the difference is too big then something has gone wrong and the player could be cheating (or experience lag)
@MekaniQ
@MekaniQ 3 жыл бұрын
I'm going to make soon a FPS as well on Unreal Engine, and this video just got recommend! I know it's Godot, but thank you for the video!
@SAYHI2JAMMY
@SAYHI2JAMMY 11 ай бұрын
thank you so much for inspiring me to jump back into game development
@Dun-N-Dusted
@Dun-N-Dusted 3 жыл бұрын
Oh hell yeah, Godot is such a good game making engine! I have used it a bit but never finished a game with it before
@minutesock9649
@minutesock9649 3 жыл бұрын
3:13 gun on the left syncs with the music.
@justcloud7583
@justcloud7583 3 жыл бұрын
Thankyou for making this vid I have workingg on a FPS game called:State of Magic The guns has many amazing skills and also the characters they all have powers.
@garbaj
@garbaj 3 жыл бұрын
sounds interesting, good luck!
@justcloud7583
@justcloud7583 3 жыл бұрын
@@garbaj thanks :D
@adamkokrito
@adamkokrito 3 жыл бұрын
is there a source code or smt cause, every tutorial is complex and when its simple its for a 2d game.
@garbaj
@garbaj 3 жыл бұрын
Sorry, no source code atm. Luckily, 3d works almost exactly the same as 2d and so all you have to do is replace some 2d functions with their 3d counterparts
@shivanshsrivastav9037
@shivanshsrivastav9037 3 жыл бұрын
Making a multiplayer game is the reason many people learn 3d modelling and a game engine as it is so fun
@garbaj
@garbaj 3 жыл бұрын
it's the dream man
@shivanshsrivastav9037
@shivanshsrivastav9037 3 жыл бұрын
@@garbaj A dream where playing a game with friends and saying I made it feels proud
@KayJay-1271
@KayJay-1271 3 жыл бұрын
One way to handle hackers is to send all client input to the server. The server will be in control of physics and handling all client input. The client will be getting animations, location, and anything else.
@DanioDevs
@DanioDevs 3 жыл бұрын
I would love to see this come to life, as someone who used to use Godot, I really like seeing other accomplish what I couldn't
@garbaj
@garbaj 3 жыл бұрын
what made you stop using Godot?
@DanioDevs
@DanioDevs 3 жыл бұрын
@@garbaj Oh, nothing much just some bugs that weren't patched at the time and also, I prefer game engines like unity because they have more documentation, though I do miss some features of godot, like a built in code editor and an easy to understand language, I might come back to it at some time
@swiftbull_
@swiftbull_ 2 жыл бұрын
a lot goes into it, alot
@jackmakmorn
@jackmakmorn 3 жыл бұрын
Thinking about multiplaydr now for a while, this will probably be pretty helpful. Like usually with garbarj vids 👍🏾👍🏾👍🏾
@jamesfforthemasses
@jamesfforthemasses 2 жыл бұрын
Garbaj, the hybrid between a raycast or hittest bullet and a projectile, which is dead handy is a non-physics projectile that raycasts the distance it will move before each frame. they're actually the most accurate, and very easy to control. you can even replace them with physics objects at the end. They also never fly through objects unexpectedly.
@gavingotback
@gavingotback 3 жыл бұрын
All right man I need a gunshot sound effect tutorial, be back in an hour... It better be here
@yume4991
@yume4991 3 жыл бұрын
I fricking love it, btw if you have trouble in assets why not try kenney? Its good, but making assets yourself is also the bomb ryt hehe, thanks for all the tutorials!
@HSW101_
@HSW101_ Жыл бұрын
I managed a multi-player game in half a day but it used the most shotty system possible. Every frame the individual BEAN would log it's position and it would be displayed in that position on a another gamers screen. So more like a buggy single-player with extra steps.
@shinymarvin3293
@shinymarvin3293 2 жыл бұрын
Finally a normal game dev explaining networking, thanks dude
@itzlofer8594
@itzlofer8594 3 жыл бұрын
Much. MANY things go in FPS Multiplayer games
@garbaj
@garbaj 3 жыл бұрын
and I've barely scratched the surface D:
@itzlofer8594
@itzlofer8594 3 жыл бұрын
@@garbaj eventually you will get the best game ever or, well, not much. Try your best for the first option and that will be enough 😉
@GregHib
@GregHib 3 жыл бұрын
Client anti-cheat systems don't prevent cheating, they're only designed to delay cheating for initial launches. But you also don't have to simulate the entire physics system on the server either. You can go half way and have the client do the calculations and the server verify they are correct. Perhaps not relevant to fps, but a scenario where the client runs a pathfinding alg to get from a to b, the server can then verify that every step along that path is valid, without having to use the resources to run the whole algorithm itself.
@noahgranger6749
@noahgranger6749 3 жыл бұрын
I dont suppose you could do a more indepth tutorial on multiplayer? My long term goal/ reason for taking up game dev is a multiplayer space sim and id love to understand multiplayer more
@Awtysm000
@Awtysm000 3 жыл бұрын
That's awesome! I love your videos.
@garbaj
@garbaj 3 жыл бұрын
Thank you!
@TiddyTwyster
@TiddyTwyster 2 жыл бұрын
You just need 30 seconds of fun
@nekit8742
@nekit8742 3 жыл бұрын
Welcome to our multiplayer gamedev world, where currency is frustration and everyone is rich
@blocksource4192
@blocksource4192 3 жыл бұрын
I personally followed GDQuest's Nakama tutorial and then messed around a bit which now allows me to code my server in lua and its much more easier for me personally.
@Itschotsch
@Itschotsch 3 жыл бұрын
Wait until you learn about network latency and the need for a client prediction + rollback system. This is where I've been stuck at for months now.
@RegenerationOfficial
@RegenerationOfficial 3 жыл бұрын
Quacke did a good job documenting how they did it
@garbaj
@garbaj 3 жыл бұрын
I should look that up
@dirtbuilder4615
@dirtbuilder4615 3 жыл бұрын
i just did this to just peer to peer
@accountlinker8883
@accountlinker8883 3 жыл бұрын
This guy is awesome
@tvo-k7j
@tvo-k7j 3 жыл бұрын
glad i finally found an authentic devlog as everyone else seems to copy danis style and personality
@pawemichaowski3491
@pawemichaowski3491 3 жыл бұрын
I love your content. Thank you xD
@magellan124
@magellan124 3 жыл бұрын
Hey can you do one on "fog of war" anticheat? Basically the clients aren't told where the players are until the renderer needs it
@sialonvipasta2775
@sialonvipasta2775 3 жыл бұрын
Daddy Garbaj, making a PS1 aesthetic FPS multiplayer that has interesting mechanics and has a working parachute. That'll be a cool.
@WantedArgonianMale
@WantedArgonianMale 3 жыл бұрын
Love the channel
@MokarromHossain
@MokarromHossain 3 жыл бұрын
Waiting for a tutorial series of what you have just created [creating]
@makra42069
@makra42069 3 жыл бұрын
PS1 styled FPS multiplyer with AAA graphics would be bonkers
@ammonlikesalmon
@ammonlikesalmon 3 жыл бұрын
Game Developers like you deserve this 👑
@damsen978
@damsen978 2 жыл бұрын
Good luck with your development, it's actually hard to find good tutorials for beginners.
@muiz9662
@muiz9662 3 жыл бұрын
GARBAJ FOR NEW PRESIDENT ~
@megasoniczxx
@megasoniczxx 3 жыл бұрын
About the one thing that i'm pretty sure will confuse me is just getting it to a point where the other players animations are rendered differently on someone else's screen. I know it will definitely have a lot to do with what you tell each player's camera to render but wrapping my head around what that will entail is hard.
@soggygenus3802
@soggygenus3802 3 жыл бұрын
Aah yes hello world is where all of it starts
@krishivagarwal5189
@krishivagarwal5189 2 жыл бұрын
Sigma Godot Grindset.
@Flat_Erik
@Flat_Erik 3 жыл бұрын
the game engine i use is godot, and it's awsome. yeah every day when i wake up, that's also the first thought that pops into my head x)
@diariodeumdesenvolvedor
@diariodeumdesenvolvedor 3 жыл бұрын
Talking about technical overloading, some tutorials on KZbin show stuff that are so simple to do but they really overcomplicate it!! I've seen some simple platforming tutorials around showing things that you can see that aren't really necessary!
@garbaj
@garbaj 3 жыл бұрын
true, my own tutorials contain lots of incorrect and unnecessary stuff but thankfully I've learned a thing or two since then
@diariodeumdesenvolvedor
@diariodeumdesenvolvedor 3 жыл бұрын
@@garbaj be a little bit technical sometimes is good, 'cause you learn something watching, instead of just copy what's on screen, but some channels around really overdo it.
@daboxguy3848
@daboxguy3848 3 жыл бұрын
Wait, so you're just a puppet representing your body in the matrix?!
@martinrages
@martinrages 3 жыл бұрын
you forgot the crying part
@DeadX77747
@DeadX77747 3 жыл бұрын
(you don’t have to do any of this) I got a idea for you a Halloween video like a tutorial on jump scare and will you be continuing the enemy AI tutorial series? and like taking away you Heath and wonder around and would you like to companions Ai tutorial too?
@lemons7125
@lemons7125 2 жыл бұрын
Remember when valve added a crit bucket to combat cheaters
@godisforever7263
@godisforever7263 3 жыл бұрын
I'm gonna try to make a indie game.
@Wodsobe
@Wodsobe 3 жыл бұрын
I noticed that little bit where the player went on the wall. BRUH
@garbaj
@garbaj 3 жыл бұрын
oh yeah, I never made a video about that one
@tux_the_astronaut
@tux_the_astronaut 3 жыл бұрын
I’ve been using UE for a multiplayer FPS since it dose things like server authoritative movement for me but I’d like to see how to do this in godot too
@garbaj
@garbaj 3 жыл бұрын
same lol. I don't think Godot has that feature built in just yet, gotta do it from scratch
@tux_the_astronaut
@tux_the_astronaut 3 жыл бұрын
@@garbaj I had made serve authoritative movement in unity but it was pretty buggy and was really jittery if there was some latency but it did work some my hope is that I can get that same system to work in godot but I’ll probably wait till godot 4 since I heard there might be some new networking features that would make it easier
@TheOnlyPeachmage
@TheOnlyPeachmage 3 жыл бұрын
CharacterMovementComponent. Take a look at that, learn, remake in Godot.
@tux_the_astronaut
@tux_the_astronaut 3 жыл бұрын
since sprinting isn’t added to UEs character controller I tried adding it in my self in c++ so it would work with the client prediction but I failed and it keep breaking but I ended up finding a plug-in where some one already did it
@TheOnlyPeachmage
@TheOnlyPeachmage 3 жыл бұрын
@@tux_the_astronaut use this kzbin.info/www/bejne/iKW0g4CZqtV9qZI . Explains how to implement sprinting in C++ perfectly (and in general how to extend CharMovementComponent)
@alex.g7317
@alex.g7317 2 жыл бұрын
Wow! I didn't know Peer-To-Peer was a thing! I always assumed you could only use servers! I'm happy that I know this. Btw when I was a kid, I didn't know servers existed, so I just thought everything was P-T-P tbh. I just thought computers held WAY more memory than they did for that, but I'm glad I know P-T-P just in case I don't wanna pay for servers...
@vincipaoloesposito8002
@vincipaoloesposito8002 3 жыл бұрын
I'm curious how you will implements the anti cheat system. Keep up the good work!
@maratmkhitaryan9723
@maratmkhitaryan9723 2 жыл бұрын
You forgot about lag compensation algorithms
@groupenglish5034
@groupenglish5034 2 жыл бұрын
Please! I beg you! Make a tutorial on how to export a server in godot!
@rijek9797
@rijek9797 3 жыл бұрын
is that bean??
@Blade_01720
@Blade_01720 5 ай бұрын
What's the name of game that you show in the starting of video
@lintonfor4035
@lintonfor4035 3 жыл бұрын
i noticed you said the player tells the server about its new position. if i were i would have the client send its inputs and the server moves them. this is what all multiplayer games do as it makes them less vulnerable to hacking. so players dont change their movespeed or position manually for example.
@willlit2806
@willlit2806 3 жыл бұрын
Nice video
@UnknownUnknown-cd4hh
@UnknownUnknown-cd4hh 3 жыл бұрын
What about dedicated server browsers? Games like TF2, CS:GO and Gmod uses it. Is this achievable with Godot?
@garbaj
@garbaj 3 жыл бұрын
I'm pretty sure it is
@xjamdoidst5167
@xjamdoidst5167 Жыл бұрын
Wait holdup so you mean to tell me that every play I see is literally an ai doing our movements for us?
@662mann8
@662mann8 3 жыл бұрын
0:30 laughs in destiny 2
@TirzaBoi
@TirzaBoi 2 жыл бұрын
Can you make a tutorial on a multiplayer fps, the ones youve made are hard to turn into multiplayer.
@cow_killer6322
@cow_killer6322 3 жыл бұрын
You need to add the hyphen in the Ko-Fi link.
@garbaj
@garbaj 3 жыл бұрын
lol whoops
@hozerino
@hozerino 3 жыл бұрын
About the "anti-cheat" you mentioned... are you thinking about making server-sided validations on the new movements/commands received or actually trying to validate the clientside code through checksums etc? That part got me interested
@garbaj
@garbaj 3 жыл бұрын
The more I think about it, the more server authoritative movement with client side prediction seems like the "easiest" option so I'll probably end up doing that
@hozerino
@hozerino 3 жыл бұрын
@@garbaj seems like a good idea, mainly conisidering it will be your first "complete" multiplayer project, you'll probably learn a ton about this, and even if you find out it isn't the best approach, the experience will help on the future
@paahdin
@paahdin 3 жыл бұрын
Making multiplayer games overall is not simple and one of the best ways to make a good multiplayer system is to watch some AAA studios talk about how they did it etc.
@eboatwright_
@eboatwright_ 3 жыл бұрын
I've made one before in Unity with Photon PUN 2. :)
@Dogman_35
@Dogman_35 3 жыл бұрын
I've been suffering through the _hell_ that is server authorative multiplayer for a good six months now. And I've made very little progress. But to be fair, I went down the rabbit hole of trying to use an addon that's _probably_ very good... but only usable by the person that actually made it, since none of its functions are explained very well.
@garbaj
@garbaj 3 жыл бұрын
I try to avoid plugins whenever possible for this exact reason
@V1SP3Rpenutnutshell
@V1SP3Rpenutnutshell 3 жыл бұрын
Yo this is insane
@hnl5100
@hnl5100 3 жыл бұрын
Wait You use godot ? How awesome ! I've just past 3 hours trying to make a 2d top down space shooter at least it easier to use than unity imo
@Red_Eagle
@Red_Eagle 3 жыл бұрын
and peer to peer?
@garbaj
@garbaj 3 жыл бұрын
I might add a p2p option later on, but not right now
@kboltiz
@kboltiz 3 жыл бұрын
So what kind of measures are you using? Make sure your measures are on server when it receives input/position from client.
@jbstepan
@jbstepan 3 жыл бұрын
Can you make a tutorial about this in the future?
@no-ld3hz
@no-ld3hz 3 жыл бұрын
2:57 note of advice Don't do this. Look at tarkov and how fucked it is because client side authoritve movement You want everything handled by the server Yes it will cause shit like input lag but that's what prediction is for. Yes it could cause some desync, but it's still better than having some cheater fly around the map at mach 5 stealing people's items right from their inventory and aimbotting everyone on the map at once. There's a difference between aimbotting whats in front of you, and you flying around the map as if it was a minecraft creative server. Every anticheat is bypassable, fucking tarkov uses a driver anticheat and you still see someone stealing and murdering everyone on the map.
@Sterlinxvii
@Sterlinxvii 3 жыл бұрын
1:57🤦‍♀ o no
@avivagmon9315
@avivagmon9315 2 жыл бұрын
But what about when lets say there are 2 players in the server and one gets the singel a second late then the other, wont that create a second delay since they have nothing to reference to?
@FartSmeller995
@FartSmeller995 3 жыл бұрын
Robles when FE was enforced:
@TypicalLuffy
@TypicalLuffy 3 жыл бұрын
2:28 what is that gravity switching game? and how can i learn how to do gravity switching like that?
@iercan1234
@iercan1234 3 жыл бұрын
--> pain
@SYBIOTE
@SYBIOTE 3 жыл бұрын
awesome
@romanbellic9580
@romanbellic9580 3 жыл бұрын
"Most *Modern* games use client servers instead of P2P."* GTA V and Red Dead Online are still using P2P, with one game being released in 2013 and still receiving updates to this day, and the other being released in 2018.
@garbaj
@garbaj 3 жыл бұрын
and that's why I said "most" not "all"
@Xx_Eric_was_Here_xX
@Xx_Eric_was_Here_xX 3 жыл бұрын
why don't you just have it verify an internally generated hash, maybe based on the sum of certain variable values or have it do a quick simulation of everything (have a quick script of player movements to see if it violates rules, like floating or moving through walls etc) while it 'loads' to make sure nothing's modified. just an idea
@ImNotGam
@ImNotGam 3 жыл бұрын
I'm trying to make a multiplayer FPS, and I learned about something called Epic Online Services, and wondered if you would fall back on that if dedicated server failed, or if you could make a tutorial about it with godot because I found none, and I have a multiplayer game that works with 127.0.0.1, but needs EoS to actually work.
@owenvisser4502
@owenvisser4502 3 жыл бұрын
Can you please make a tutorial on making ps1 style games
@GlennDavey
@GlennDavey 2 жыл бұрын
You should forget about "hardening" your game until way, way down the line. Just as long as you know you're building in a way that can be hardened later. Premature Optimisation is a big pitfall for newer devs of all stripes.
@watercat1248
@watercat1248 2 жыл бұрын
my ultimate game is to make open world single player rpg semuler with the elder scroll and fall out but that's to larg project even for my
I Tried Making a Multiplayer FPS Game in 1 Week...
8:40
Fancy
Рет қаралды 1,6 МЛН
He called my Game BAD, he was so WRONG | Devlog
12:43
Wishbone Games
Рет қаралды 122 М.
❌Разве такое возможно? #story
01:00
Кэри Найс
Рет қаралды 2,9 МЛН
Parenting hacks and gadgets against mosquitoes 🦟👶
00:21
Let's GLOW!
Рет қаралды 13 МЛН
Пройди игру и получи 5 чупа-чупсов (2024)
00:49
Екатерина Ковалева
Рет қаралды 3,9 МЛН
Zombie Boy Saved My Life 💚
00:29
Alan Chikin Chow
Рет қаралды 20 МЛН
I Paid Devs on Fiverr to Make an Open World Game
8:33
Minimunch
Рет қаралды 262 М.
I Made a Multiplayer FPS Game in 10 Days
6:12
Kyle Rhoads
Рет қаралды 1,2 МЛН
The biggest lie in video games
15:18
AIA
Рет қаралды 1,8 МЛН
What Makes A GOOD FPS Map?
7:27
Tvtig
Рет қаралды 34 М.
If You Can't Make Games After This Video, Give Up
4:37
Fredyy
Рет қаралды 880 М.
So I tried developing a MULTIPLAYER FPS GAME in ONE WEEK
6:49
Why Making Multiplayer Games SUCKS
6:46
Tom Weiland
Рет қаралды 419 М.
Gamings Most ADDICTIVE Movement Mechanic
10:14
Creem
Рет қаралды 1,6 МЛН
Making An FPS Game In ½ A YEAR
7:17
Underdog
Рет қаралды 55 М.
The Slightly Odd Way Bullets Work In FPS Games
4:21
Garbaj
Рет қаралды 1,6 МЛН
❌Разве такое возможно? #story
01:00
Кэри Найс
Рет қаралды 2,9 МЛН