Making a Multiplayer Steam Game in 3 Months!

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
this is grapple a speed running parkour game that i've been developing over the last few months and while it may look like a pretty simple game to make the development has been well less than ideal the story spans three months a broken hard drive and an entire month of wasted work in march this year i released a video where i made a parkour game the game's already out you could play right now if you wanted to so why am i making this video shortly after the release me being the fool that i am i lost the entire source code by overriding my hard drive the most recent version on the cloud was nowhere near finished and as you can imagine after a month with very little recognition i wasn't too motivated to recode everything up to date but soon after something happened which made it all change around a month after the game was released out of nowhere people started playing it more a speedrunning community had formed and people were constantly asking for more levels and bug fixes that well i i couldn't deliver here's the thing i don't make games for people to play them i mean i didn't even charge any money for the game and i don't intend to i make games i want to make because i think they'll be fun to work on i wanted to make a parkour game so i did and see people actually enjoying and playing the game well that's a little strange to me but i decided to go with it and start to work on a new version of grapple the first game had a ton of things wrong with it it looked bad the levels were poorly designed and to be honest it didn't feel all that nice to play one thing was for certain though i had a lot of work ahead this time around i wasn't on a time limit so i decided to expand the game's scope a little further i thought a good way to do that would be by building the entire game with multiplayer in mind i want the multiplayer to be a sort of racing mode where you compete for the best times so without further ado let's get to work but before we do anything do you want to win tesla model 3 how about a piece of a hundred and forty thousand dollars well today's sponsored core and their upcoming core invitational 2.0 game jam are offering you the chance to win both if you've somehow been living under a rock core is a new free game creation platform that lets you build and play games with ease the invitational lasts one month and all entries are guaranteed a thousand dollars so there's really no reason not to enter the competition is open to anyone you could be new to core or an experienced game dev and it really doesn't matter you can only enter before august 1st and only 50 entries will be accepted so make sure to act quick and prove that you have what it takes to win and maybe even when a tesla i don't know that sounds like a good deal to me i genuinely believe that core is a great way to start making games and this is the perfect opportunity to take the dive into learning game development to download core and enter the invitational at the link in the description thanks core once again for sponsoring this video step one was to grab what remained of grapple off of github so i could snatch a foundation for the player controller i soon found the player movement scripts and said goodbye to the old project and i decided this time around to separate the movement types into their own class so everything will be modular and independent that didn't take too long and the movement is now based on different optional states you can see here that if we were in the walking state we just handle everything relevant to walking whereas if we're in the grappling state the logic is completely different at this point i felt ready to start working on the networking so i synced up the positions of the spares and of the two players which sounds easy enough but it took me a day or two to figure out and already we can grapple around together but there is one obvious issue we can't see the other player's rope and that's because i need to sync it across the clients with me having very little networking knowledge i thought sending all of the ropes vertex positions to all of the clients every frame would be a clever idea however you can imagine that this is going to cause a couple of bandwidth issues so instead i just sent the final position of the hook and told the other clients how to draw the rope and with that already the game was pretty fun to play there are definitely a few notable issues i patched them up and now it's almost perfect as far as making an online race goes that's pretty much what you need but i was enjoying learning networking so much that i decided to carry on and take a slight side tangent into an fps game for some reason on the surface making a gun is pretty easy shoot a ray out of the tip if it hits something then contact all the other players and tell that thing to take damage but what's not so simple is making a scalable system for switching between guns we need some sort of inheritance hierarchy where similar guns share similar logic i created a basic interface that all weapons will implement it has two methods on select and on deselect these fire when the player either switches to the gun in the case of on select or away from the gun in the case of one deselect for example when we switch to the gun we can animate it in enable the graphics or literally do anything we want which makes this super scalable if you're interested in how i'm implementing the switching then here you go but i imagine most of you aren't so let's move on to killing people or rather how i implemented it i probably could have phrased that a bit better to be honest and here we go death i then invited a few people to play the game a luxury you two can enjoy by joining the barges hotel discord server link in the description next i did a lot more networking but that's not too relevant to the development of this video story so uh let me run you through it real quick i updated the graphics added bullets the bullets didn't work so i fixed the bullets made a more fitting gun model added a crosshair the game got hacked and the pistol became a minigun added some bootleg animations and finally i said goodbye to the multiplayer at least until the maps are done so now it was time to get to work on the base game it's basically going to be a refined version of the original and what better way to start with a basic main menu i did a new logo and some buttons for future proofing because they really don't do anything right now and with that done i could focus on the more fun things like improving the player movement as you can see it's impossible for the player to build up momentum from chaining jumps and it often even slows you down so to fix this i ended up removing the harsh velocity cap for a smoother one which seemed to fix it and coupled with the lower jump height things felt much better next up i wanted to add wall running similar to that in titanfall and carlson but to show you how i did it i need to introduce you to a little bit of math called the dot product trust me this isn't really complicated and uh you might learn something so stick around basically the dot product compares two vectors and if you don't know what a vector is you can just imagine it as a direction in this case with a length of one the dot product is basically the length of each vector multiplied together and then multiplied by the cosine of the angle between them in our case because the magnitude of both vectors is one we can deduce that the dot product between the two is the cosine of the angle between them and nothing more it'll be one if they match and negative one if they're 180 degrees apart here's that in engine and the number basically represents a dot between the player's front vector and the wall normal and you can kind of see how this is useful because we can check if the player is looking with it in a certain range of the wall and if they are then they can start wall running then finally to make it feature complete let's add a way to jump off now this solution had a few major flaws which we can fix by checking if the last wall's normal is the same as the current wall normal which allows us to do stuff like this but not like this now i'll come back to polish later but that's basically feature complete next i worked on some particles when the player lands it took a few attempts but i eventually got them how i liked it's basically just a few spheres that shrink over time nothing special then to further making the landing feel more impactful i added a camera bounce and i do really like this effect so i'm sure i'll reuse it a lot in the future then i added another movement feature the lunge it basically just adds a force in the direction that you're looking and doesn't get reset until you touch the ground then the final piece of movement that i added was the glider you may recognize this from the first game and it functions pretty much the same as it did apart from some last minute polish that pretty much wraps up the new player movement it's finally time to get to work on the maps but before that i'm just going to polish up the menu a little bit by adding some settings as well as a different aspect ratio support all right level one i decided to take a different approach to make levels this time and drew up the design on a piece of paper i had a ton of concept art and inspiration to go off so i was super excited to get to work i blocked out the terrain using unity's terrain editor which definitely took more time than i'd like to admit then i made a water shader this shader is inspired by this level in mario galaxy and the technique used to make it crops up in a ton of games the way it works is by scrolling two normal maps in opposite directions and then overlaying a color on top of it and honestly this is my new favorite way of making mortar next i worked on some buildings for the levels and some final environment pieces like trees a finish line and textures and now the level's pretty much playable so before shipping to play testers i improved the main menu and built the game now unfortunately this is the end of the road at least for now making levels is a cumbersome process and on top of that i need to add multiplayer and so much more so there's going to be a part 2 to this video i don't know when but it'll be here just give me some time and if you want to get involved in play testing or just hang out my discord server is always open to new people thanks core once again for sponsoring this video be sure to check out the invitational and download core using the links in the description
Info
Channel: Barji
Views: 175,027
Rating: undefined out of 5
Keywords: gamedev, game, video game, unity3D, how to make a game, Dani, Barji, Unity, Godot, Multiplayer Game, Multiplayer, How to make multiplayer games, Unity Multiplayer, Grapple, Unity Game dev, indie game dev, indie games, indie game, computer science, grappling gun, grappling hook, grapple hook unity, grapple unity, unity grapple, how to make grappling hook unity, tutorial, how to, unity making 3d game, karlson, titanfall, 3 months, Multiplayer steam game, Making a multiplayer game
Id: udXo0m3ioMI
Channel Id: undefined
Length: 8min 52sec (532 seconds)
Published: Thu Jul 29 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.