Tom, my guy, you just turned what would have been who knows how long looking into network programming into like an hour or two of work. You're a lifesaver.
@@MintAIO apart from the Microsoft docs, I'm not aware of any good written resources, and unfortunately the docs really only explain the what, not the why. I personally learned how this stuff works by watching tutorial videos like the ones I'm making now, and then playing around and working with it for the last (almost) 2 years. I'd encourage you to join my Discord server (link in description). You can ask questions there and we can have a more efficient conversation than here in the comments section :)
Oh, boy! You deserve so many more subscribers!! This is SOLID content!! I started studying C# last week and I'm loving it! I came here because of Dani and now you have +1 subscriber/liker!! Keep it up, man!
Really Stellar Tutorial! I can't thank you enough. One addition I would suggest is to go over the logical flow really quickly at the end. For example: TcpListener -> Accepts Client -> Connects to Client Socket -> Stream that Accepts data
This series is PERFECT thank you so much I already understand so much of it just from this 12 min video, you’re very great at explaining things lol! about a year ago I was using UNET and just gave up because it would NEVER sync the clients movements and would keep a copy as a child of the main player the whole time I just gave up definitely going to give this a try. I’ll lyk my results! THANK YOU SO MUCH!
First and foremost, thanks a lot for this networking tutorial. I came here thanks to Dani's videos but I stuck because of how well everything is explained and way more intuitive than other methods I tried. Having a multiplayer in my school project being mandatory, I really feel like I owe you one. Anyway, thanks man !
@@tomweiland Looking back at what a mess it has been since the beginning because of the multiplayer, I could not agree more. That's why your videos really came in handy !
This is such a fantastic video for professional programmers pivoting into game development. No bullshit, straight to the point, clear and well spoken voice that sounds good at 1.5x speed. Cheers for this, mate.
@@tomweiland It's a great tutorial, extremely fast-paced though, I've been programming for a long time and can't even keep up on 0.75x speed haha. That's why we got the pause button though :)
@@sir-red1138 exactly. Personally, whenever I'm watching a tutorial, I'm constantly pausing it, so I though I may as well speed things up a little bit. That way the tutorials don't go on forever (starting a series of 30-60min long videos can be very daunting).
You are reading and replying to comments in this video even to this day... your dedication is just surprising. You gained one sub, you deserve a lot more :)
Awesome tutorial! Thank you. I would like to suggest you to set your font size larger when you are recording tutorials. It's not easy to read your code in 720p or a small screen :D
Other people suggested the same thing, and in later tutorials I increased the code size. In the most recent tutorial, I forgot to do so when I was recording, so I ended up just zooming in on the areas of interest, which I think is the best solution. The only drawback is that it takes more time to edit, but let me know what you think of that when you get there :)
@@elijahw.6144 thats the thing on larger screen on 720p it will be more pixelated because its a big screen like a 27 inch monitor its more pixelated like for me
Glad you appreciate it! I personally hate slow tutorials which is why I wanted to make sure this wasn't another one of those, although I think I did go a bit too far in the opposite direction 😅
As I was editing this, I felt like there were some things that I could have explained a little better. This is my first tutorial and I'm always learning, so I'll do my best to explain things in more detail in the future. If you guys have any feedback regarding the video, please let me know 👇
Thanks for the tutorial! I have one question: Wouldn't a UDP connection be preferrable to a TCP connection, specifically when writing the server for a game? Edit:// just saw part 3, I should probably watch more before asking x)
Hahaha well it's still a valid question. The reason we use both TCP and UDP is because at some point you're going to need to send messages which won't get lost-that's what TCP is for. When it doesn't really matter if all the packets arrive, UDP is great because it's slightly faster.
Well I'm glad you think so-most people think it's _too_ fast, and I mostly agree. I personally hate it when tutorials are so slow that I constantly skip ahead, but I think I went a bit overboard with trying to avoid that :P
If you are on Visual Studio 2019 with all of the installed stuff that you need. Then just go in the console and click "Run" or start it will show a green play button, so just click on that to start/run the code.
Thanks! I figured that since it's a tutorial, you'd be pausing a lot anyways (at least that's what I do when I'm watching tutorials), so a bit of extra speed wouldn't be a problem. It keeps the videos at a more manageable length, and keep in mind you can change the playback speed to something like 0.5x :)
Glad you have these videos out here, found the first half of this video a little fast. Trying to figure out how and why you're doing something and it already moves on to the next. Appreciate it none-the-less. Gonna have to just watch it a couple times I think to figure out how things are working.
@@tomweiland All good man, I do suggest if you ever get the time to maybe redo the one video, as it is a pretty important one when getting started, and the fundamentals are the most important to understand! Still appreciate the videos.
The networking series was actually on a pretty consistent upward trend even before Dani's shoutout, but of course everything went through the roof in the week afterwards :P
I watched and typed code in same time during video.. I couldn't believe the program was going to work at the end of the video. But I'm surprised... Its working well... YOU ARE AWESOME
Since uploading this video, I've created a repository on GitHub. If you run into issues, you can compare your code mine: github.com/tom-weiland/tcp-udp-networking/tree/tutorial-part1
@@thegamerjoshua2848 I played with this and it was actually more difficult than I thought. You can double click on the script in the asset viewer. This will open it in VScode, or maybe monoDevelop. Then use the "save as" function in the program and exit the program. When you get back to Unity a new script with you new name should appear in the asset viewer. You can then delete the old script and attach the new script to what ever game objects you like. Maybe I'm wrong but I found no way to right click or double click or edit the name directly in Unity in any way.
I know I could've explained things better, but if you stick with it it'll start to make sense eventually. I spent several months of working with this stuff before it really clicked for me, so it'll come if you stay persistent :)
Thanks a lot for your c# tutorials, really helps me to write my bachelor diploma. Hope to finish it and make some sort of my own project video review :)
100% subscribed, please keep these videos up Tom, there really are few decent resources on this. I think this is the path to getting a crazy amount of subscribers!
Very Good tutorial easy to follow and all errors were addressed on the spot I love it. Pls keep this up as it has already helped me so much. So much thanks
I came here from Dani because the UNet system is about to be out of date and will cost a bunch if I decide I wanna publish my game.. but holy cow. I don't even know how you keep up with yourself. You went so fastttt
Yeah sorry about the speed 😅 This was my first tutorial, but it gets better in later videos. I'm also working on an improved version of this solution, and when I make a video about that I'll definitely ensure that it's slower :)
Thankful that this is available to learn from, but if the goal is for absolute beginners to Networking with Unity, I suggest breaking the first video at least into 3-4 10 minute videos where you explain more why you're doing what you're doing, and what things are. It's at the pace that would be more for anyone already familiar with networking and what TCP/UDP Connections are, File or Network streaming is etc. Just a thought. Cheers.
I see your point, but when I started this series, my primary goal was to get it out there-there's tons of great info out there on how TCP/UDP work, but not too many practical implementations of it. Also, if I'm completely honest, I was a bit afraid of giving incorrect explanations, especially because the wording is often so important that it's really easy to say something that's technically wrong. The fact that I had just started making videos on RUclips probably also played into it. I did add a bunch of comments to the code on GitHub, and although that isn't a substitute for in-video explanations, you (and/or others) might still find it helpful. While I appreciate the advice and I actually agree with you, I'm not entirely sure what to do about it, besides remaking the series-which is not something I want to do.
@@tomweiland Will you, or have you already, made a match making system? such as when a player makes a game others will be able to see the game and join it. I bet its a personal preference, some like the high speed and some dont. I like the most that you explain what the code does instead of just saying the actual code words your writing. For me, yeah sometimes the speed is a little bit too high if i want to write the code myself along with watching your video. I learn and remember alot better when writing things down.
If nothing happends when you click connect in unity try replacing the awake methods in both scipts with: void Awake() { if (instance == null) instance = this; else { Destroy(gameObject); return; } DontDestroyOnLoad(gameObject); } This fixed it for me, btw this is such a good tutorial!
@@tomweiland yea I literally have no idea why haha, but this magically fixed it. I probably did something wrong lol. Anyway thank you for making these videos, I can imagine they take a lot of time to make.
Hey Tom, youre videos helped me out a lot. I just noticed, that if you change the ip to the ip of an external server you want to connect to, it still connects to the localhost (at least in my case). Because I could not find a Solution for this, and kept on trying to fix it for hours, I now want to provide the Fix for everyone else having this Problem. In the TCP class of the Client file in the Connect method you have to write: socket.BeginConnect(IPAddress.Parse(instance.ip), instance.port, ConnectCallback, socket); instead of: socket.BeginConnect(instance.ip, instance.port, ConnectCallback, socket); Hope this will help Somebody.
Would you happen to have been changing the IP in the client's code? If so, that's the problem, because the value in Unity's inspector overrides any changes you make to the initial value in the code. I have no idea why parsing the IP beforehand would have made a difference...
In my opinion this ist the best Tutorial about Networking on RUclips. The structure of the project is also clear and easy to follow. But I'd like to know how many clients can this server handle at the same time? Is there a limit for the number of clients that can connect at the same time?
If you like this one, you should really check out my new series-this series here isn't very good, and the code we write in it is a straight up mess 😅 Neither this solution nor Riptide (the solution I cover in the new series) imposes any arbitrary connection limits like Photon does for example. Although the maximum number of players you'll be able to support with a single server instance depends heavily on your game and how resource intensive it is, Riptide is much more performant than the solution from these videos, so that'll be able to support even more players.
Love the pace, two thumbs up. Small potential bug - Destroy(this) will destroy the component from the game object, not the game object itself (if that was your intent). Might lead to weird behavior either way, though, so I might suggest looking for the "real" instance and setting the member to that object instead of using destroy.
Hi, this is an incredible series and tought me a lot. The only thing that I've really had an issue (if you can call it that) with is the annoyance of keeping the Packet class and other classes specific to my project up to date between the two projects. I'd suggest anyone having this issue look into creating a basic local unity package and removing the Package.cs from the actual project and instead using the unity package to share the file between both. This let's you edit the Package.cs exactly like you would normally but it saves between the projects.
I know this is an old tutorial, but i'm trying to make a contact app using C#, and it's currently working on a console app on both sides. Very good tutorial
For anyone reading this. I just wanted to tell you that on November 9th, they will be releasing C#9. C#9 will have the new keywords; and, or and not. It will also not require you to need all that default code in every project with the Main method and class.
Tom Weiland namespace ProjectName { class Program { static void Main(string[] args) { } } } Here, go read about it yourself devblogs.microsoft.com/dotnet/welcome-to-c-9-0/
Holy! Great Work- I have no experience in Networking and I think I was able to follow your coding very well. 12 Minute video and I was able to create my first connection =) NOICE! Keep it up m8 =)
Content quality 100% , but set speed to 0.75 at times you go so blazing quick man. Any company should pay you triple the wage for that working speed haha. Good job
Hello Tom, I had a question how did you get the project template for visual studio 2019? Because I am not able to find it I also asked in ur discord server thanks
Pretty sure it was installed for me by default, but according to this (docs.microsoft.com/en-us/dotnet/core/tutorials/with-visual-studio) you need the .NET Core cross-platform development workload installed.
Also what is that port number which you had mentioned, I didnt understand that part and how do I pick one to play once a while with my friends? And one thing which I have to say is that you are awesome!
Not much of a feedback, but t's kinda funny how people get turned down by amount of brain-storm needed to understand networking. Just look at views/likes in following videos. Great content btw, networking handling came super easy with several episodes and basic understanding of networks and TCP and UDP protocols. Love your work! I really love how you made everything in code so clear and organised!
Haha yeah the number of views basically decays exponentially as you go through the series :P I'm glad you liked the tutorial. As for the organization part, wait until you see the upgraded solution I've been working on-it's _so_ much cleaner and easier to use!
This was awesome! I was able to learn, C# server creation, connection with client, Singleton Pattern and basic Unity UI. I like the way you explain. Like say exactly whats reading in the code with some comments on the idea of what is actually happening.
Tom, my guy, you just turned what would have been who knows how long looking into network programming into like an hour or two of work. You're a lifesaver.
Glad I could help :D
Please don't randomly stop uploading these videos. You see a lot of tutorials where they just stop without warning. Good video.
Yeah I've seen my fair share of those.
I definitely plan on continuing this series-in fact I'm editing part two right now :)
@@tomweiland do you know any resources that I can read more about how all of this actually works?
@@MintAIO apart from the Microsoft docs, I'm not aware of any good written resources, and unfortunately the docs really only explain the what, not the why. I personally learned how this stuff works by watching tutorial videos like the ones I'm making now, and then playing around and working with it for the last (almost) 2 years.
I'd encourage you to join my Discord server (link in description). You can ask questions there and we can have a more efficient conversation than here in the comments section :)
Oh, boy! You deserve so many more subscribers!! This is SOLID content!! I started studying C# last week and I'm loving it! I came here because of Dani and now you have +1 subscriber/liker!! Keep it up, man!
Thank you Rafael, that means a LOT to hear! Welcome to the community :D
Really Stellar Tutorial! I can't thank you enough. One addition I would suggest is to go over the logical flow really quickly at the end.
For example: TcpListener -> Accepts Client -> Connects to Client Socket -> Stream that Accepts data
Thank you :)
I'll keep that in mind for future tutorials since there's not much I can do at this point.
I was lacking the networking knowledge, now that i found your channel im hoping to fill the holes in my knowledge with information! Thank you
Hopefully your expectations will be met :)
Straight to the point. I love it! I had to slow the video down so I can catch up with my typing but it’s no biggie. Thanks for putting this together.
Glad you don't mind the speed too much! The future parts are a bit slower though :)
This series is PERFECT thank you so much I already understand so much of it just from this 12 min video, you’re very great at explaining things lol! about a year ago I was using UNET and just gave up because it would NEVER sync the clients movements and would keep a copy as a child of the main player the whole time I just gave up definitely going to give this a try. I’ll lyk my results! THANK YOU SO MUCH!
Haha yeah, I never liked UNet :P
Glad I could help!
First and foremost, thanks a lot for this networking tutorial. I came here thanks to Dani's videos but I stuck because of how well everything is explained and way more intuitive than other methods I tried. Having a multiplayer in my school project being mandatory, I really feel like I owe you one. Anyway, thanks man !
I'm glad you decided to stick around :D
Is this a project for university or are you still in high school?
@@tomweiland An university project ! I'm in junior year so basically it's meant for us to get our hands in the dirt, kind of :')
@@7verdy got it, although mandatory multiplayer seems like quite a steep requirement for a junior year project doesn't it?
@@tomweiland Looking back at what a mess it has been since the beginning because of the multiplayer, I could not agree more. That's why your videos really came in handy !
@@7verdy well I'm glad I could lend a hand!
This is such a fantastic video for professional programmers pivoting into game development. No bullshit, straight to the point, clear and well spoken voice that sounds good at 1.5x speed. Cheers for this, mate.
Glad to hear that you like it! I'm surprised you're watching it at 1.5x speed-most people slow down the video, are you sure you're human 😳
Just found this because of Dani's channel but I've been looking for a good comprehensive tutorial for a while and this was a perfect start!
Glad I could help :)
dani talked abouuut you ,, thanks nice tut.
I come here after his hint too
I've never had so many notifications in my life, welcome to the community guys :D
@@tomweiland It's a great tutorial, extremely fast-paced though, I've been programming for a long time and can't even keep up on 0.75x speed haha. That's why we got the pause button though :)
@@sir-red1138 exactly. Personally, whenever I'm watching a tutorial, I'm constantly pausing it, so I though I may as well speed things up a little bit. That way the tutorials don't go on forever (starting a series of 30-60min long videos can be very daunting).
Yeee
You are reading and replying to comments in this video even to this day... your dedication is just surprising. You gained one sub, you deserve a lot more :)
Haha thanks, welcome to the community :D
Awesome tutorial! Thank you. I would like to suggest you to set your font size larger when you are recording tutorials. It's not easy to read your code in 720p or a small screen :D
Other people suggested the same thing, and in later tutorials I increased the code size. In the most recent tutorial, I forgot to do so when I was recording, so I ended up just zooming in on the areas of interest, which I think is the best solution. The only drawback is that it takes more time to edit, but let me know what you think of that when you get there :)
@@tomweiland ok, thanks for sharing!
I can read it on my fucking phone. What the fuck
@@elijahw.6144 thats the thing on larger screen on 720p it will be more pixelated because its a big screen like a 27 inch monitor its more pixelated like for me
I spent two days on this single video but I learned so much, not just about networking, but other C# features too
Glad to hear it :D
this gives a good idea for people who want to actually know how it works, extremely helpful
Glad you like it :)
This is such a great tutorial. I have been looking for this for months, the way you explain for me makes it more easier to understand thank you.
I'm glad it's been helpful :)
Dang man, this is awesome. I really appreciate the effort put into this video, and I'll definitely be watching till the end of the series.
Awesome, I'm glad you liked it!
@@tomweilandit’s lan or online connection?
the feeling when i coded half an hour but im just 6 minutes in the video
😅
it took me 2 hours
me too but I took more than 1 hour
me too
It took me one day for finding errors but luckily there are lots of friendly people in discord server helped me😊
Finally someone who codes fast!
I quickly rung that bell.
Glad you appreciate it! I personally hate slow tutorials which is why I wanted to make sure this wasn't another one of those, although I think I did go a bit too far in the opposite direction 😅
The pacing for this video is perfect. Not fast, not slow. Good job!
Thanks, but you should use the newer tutorials instead. This solution isn't very good in comparison.
Who here from Dani's video?
Many, many people 😅
Me
Welcome to the community guys :)
@@tomweiland I just finished watching this series and i am so glad you did this. Easy to follow and understand. Deserves more veiws
@@faceless8337 well this video got a 4.5k view boost today alone 😅
I'm glad you enjoyed it though!
Thank you for sharing this knowledge with everyone, it's amazing.
You're welcome, I'm glad you're finding some value in it :)
"hosting minecraft servers with server jar" flashbacks
😅
wow you still reply even tho the video is one year old
@@setseretze3565 I do my best to reply to all the comments :P
@@tomweiland nice
At first it did not work for me, but after 10 minutes of fear, i realised i was executing the wrong file, and after that it worked! Great tutorial!
I'm glad it worked out in the end :)
This is probably the first Unity tutorial I've watched that is quick, concise, and thorough, while still understandable. Thank you!
I'm glad you like it :D
you should check out bracys
execuse me understandable?!?!?! XD, i just coppying codes and hoping that would work
As I was editing this, I felt like there were some things that I could have explained a little better.
This is my first tutorial and I'm always learning, so I'll do my best to explain things in more detail in the future.
If you guys have any feedback regarding the video, please let me know 👇
You did well. Very well. Keep up the good work.
This is much better than the method I did! This is gonna help a lot! Thanks!
I'm glad you found it helpful :)
Great job bro!
very useful, especially with uNet being disabled on Unity... ure a god , thx !
Thanks for the tutorial! I have one question: Wouldn't a UDP connection be preferrable to a TCP connection, specifically when writing the server for a game?
Edit:// just saw part 3, I should probably watch more before asking x)
Hahaha well it's still a valid question. The reason we use both TCP and UDP is because at some point you're going to need to send messages which won't get lost-that's what TCP is for. When it doesn't really matter if all the packets arrive, UDP is great because it's slightly faster.
@@tomweiland That explains everything. Thank you!
Thank You bro. I'm working in City of Ragdolls. I was so confused how to add multiplayer XD
Well hopefully this series can alleviate some of the confusion :)
@@tomweiland Ye
Finally! After searching the whole web I found exactly what I wanted!Dedicated servers! Thank you, Tom
I'm glad you found what you're looking for, but I'm guessing you meant "dedicated", not "deprecated" 😂
@@tomweiland Yes)
The list of ports are superb. Didn't even know that thing existed. Excellent.
Yep, it's definitely a good reference!
Thank you!!!!!! I gonna start making my game!!!
Good luck!
legends say that he spoke so fast to optimize the videolength, on clientside it's supposed to be slowed down to 0,75.
Genius move.
Well I'm glad you think so-most people think it's _too_ fast, and I mostly agree. I personally hate it when tutorials are so slow that I constantly skip ahead, but I think I went a bit overboard with trying to avoid that :P
@@tomweiland lol
If you are on Visual Studio 2019 with all of the installed stuff that you need. Then just go in the console and click "Run" or start it will show a green play button, so just click on that to start/run the code.
I must say, this was a bit fast for me. I had to pause it like a bajilion times. But still, nice video!
Thanks! I figured that since it's a tutorial, you'd be pausing a lot anyways (at least that's what I do when I'm watching tutorials), so a bit of extra speed wouldn't be a problem. It keeps the videos at a more manageable length, and keep in mind you can change the playback speed to something like 0.5x :)
Glad you have these videos out here, found the first half of this video a little fast. Trying to figure out how and why you're doing something and it already moves on to the next. Appreciate it none-the-less. Gonna have to just watch it a couple times I think to figure out how things are working.
Yeah sorry about that-this was my first tutorial and I didn't realize how fast I was actually going :P
@@tomweiland All good man, I do suggest if you ever get the time to maybe redo the one video, as it is a pretty important one when getting started, and the fundamentals are the most important to understand! Still appreciate the videos.
You're the man! Even professional Unity lessons can't match this.
Well I don't know about that 😅
iam come from DDAANNII!!
Welcome to the community :)
Like if you were here before Dani and then saw Dani make it popular.
The networking series was actually on a pretty consistent upward trend even before Dani's shoutout, but of course everything went through the roof in the week afterwards :P
"double check you didnt miss anything" hard not to when you talk at 90mph...
Sorry about that. This was my first tutorial and I didn't realize how fast I was actually going-the later videos get better.
You can even set the video speed to 0.5 it has the added bonus of your instructor sounding extremely drunk...
@@HaxzploiD 😂
Rancorusia It’s amazing. He codes at the speed of speech. That just goes to show how well he knows the subject.
@@thedude4039 the footage _is_ sped up, I don't actually type that fast :P
Best networking tutorial.
Thanks 😅
I watched and typed code in same time during video.. I couldn't believe the program was going to work at the end of the video. But I'm surprised... Its working well... YOU ARE AWESOME
Why didn't you believe that it would work 😅
@@tomweiland I discovered this channel before fall asleep :) result miracle for me :)
Anyone else come from Dani?
Nearly 300 new subscribers overnight, and I'm sure many others as well! Welcome to the community :)
@@someoneelsenone822 I agree!
Since uploading this video, I've created a repository on GitHub. If you run into issues, you can compare your code mine:
github.com/tom-weiland/tcp-udp-networking/tree/tutorial-part1
Wow
"Compare" sure...
@@JaradBailey what do you mean?
@@tomweiland I think he meant that most of the people would just copy and paste the code.
@@pollomagico271 this
*Next tutorial:* ruclips.net/video/4uHTSknGJaY/видео.html
If you'd like to support me directly, you can do so on Ko-fi: tomweiland.net/kofi
hey I can have a name of a scene called Lobby and not main
just for idk 8:05
@@thegamerjoshua2848 you can name your scene whatever you like, it makes no difference.
@@thegamerjoshua2848 I played with this and it was actually more difficult than I thought. You can double click on the script in the asset viewer. This will open it in VScode, or maybe monoDevelop. Then use the "save as" function in the program and exit the program. When you get back to Unity a new script with you new name should appear in the asset viewer. You can then delete the old script and attach the new script to what ever game objects you like. Maybe I'm wrong but I found no way to right click or double click or edit the name directly in Unity in any way.
would I have to use this server for localhost or can I forward a port and make it a public online server?
Thank you so much, I was having so much trouble setting up multiplayer, not my strongsuit. This is already helping a ton.
Awesome :)
Finally found a good tutorial on how to use .NET with Unity. Been looking for months for something like that. Thanks mate you're great!
Glad you like it :D
Wish I could understand any of this, you came in clutch Tom
I know I could've explained things better, but if you stick with it it'll start to make sense eventually. I spent several months of working with this stuff before it really clicked for me, so it'll come if you stay persistent :)
Yep, First one worked well for me in 2020.3.15f... now for the rest of them, Thank you.
Glad to hear it :)
Don't know if you still read replies, but thank you so much for this tutorial. My game wouldn't be possible without your help.
I do still read comments! I'm glad you enjoyed it :)
LET'S GO! Never felt so amazing after copying a tutorial. Thanks a lot for putting this video together even if I did not understand most of it.
Glad you liked it :)
Don't worry if you didn't get it right away-it took me a couple months before this stuff really clicked.
I never knew seeing a line appear in a console could make me so happy.
Congrats 😂
Thanks a lot for your c# tutorials, really helps me to write my bachelor diploma. Hope to finish it and make some sort of my own project video review :)
Awesome, I'm glad I could help!
100% subscribed, please keep these videos up Tom, there really are few decent resources on this. I think this is the path to getting a crazy amount of subscribers!
Welcome to the community! And you're right, I would be nowhere near 10k subs without this series :P
It WOOORRRKKKSSS!!! I Don't understand most of what I typed, but it freakin worked!!!!! Stoked to try out the next videos! Amazing tutorial!
Seeing it work the first time is a special moment :P
Stick with it and eventually it'll make sense!
Super informational tutorial, great series and an over all great job. Thanks for using your time to help the uninformed.
I'm glad you like it :D
Thanks for building these tutorials. Much appreciated
Hopefully they're helpful! You may want to consider checking out my new tutorial though: ruclips.net/video/6kWNZOFcFQw/видео.html
Very Good tutorial easy to follow and all errors were addressed on the spot I love it. Pls keep this up as it has already helped me so much. So much thanks
I'm glad you liked it!
I came here from Dani because the UNet system is about to be out of date and will cost a bunch if I decide I wanna publish my game.. but holy cow. I don't even know how you keep up with yourself. You went so fastttt
Yeah sorry about the speed 😅
This was my first tutorial, but it gets better in later videos. I'm also working on an improved version of this solution, and when I make a video about that I'll definitely ensure that it's slower :)
This is really good stuff. You honestly deserve a lot more subscribers, considering you have over 60k views on this video at the moment.
Thank you, that means a lot :D
Thankful that this is available to learn from, but if the goal is for absolute beginners to Networking with Unity, I suggest breaking the first video at least into 3-4 10 minute videos where you explain more why you're doing what you're doing, and what things are. It's at the pace that would be more for anyone already familiar with networking and what TCP/UDP Connections are, File or Network streaming is etc. Just a thought. Cheers.
I see your point, but when I started this series, my primary goal was to get it out there-there's tons of great info out there on how TCP/UDP work, but not too many practical implementations of it. Also, if I'm completely honest, I was a bit afraid of giving incorrect explanations, especially because the wording is often so important that it's really easy to say something that's technically wrong. The fact that I had just started making videos on RUclips probably also played into it.
I did add a bunch of comments to the code on GitHub, and although that isn't a substitute for in-video explanations, you (and/or others) might still find it helpful. While I appreciate the advice and I actually agree with you, I'm not entirely sure what to do about it, besides remaking the series-which is not something I want to do.
If this is your first tutorial, it's a bang good job.
Thanks, although there's tons I could've done better, particularly the speed :P
@@tomweiland Will you, or have you already, made a match making system? such as when a player makes a game others will be able to see the game and join it. I bet its a personal preference, some like the high speed and some dont. I like the most that you explain what the code does instead of just saying the actual code words your writing. For me, yeah sometimes the speed is a little bit too high if i want to write the code myself along with watching your video. I learn and remember alot better when writing things down.
This tutorial is excellent. Exactly what I was looking for.
Thank you :)
If nothing happends when you click connect in unity try replacing the awake methods in both scipts with:
void Awake()
{
if (instance == null)
instance = this;
else
{
Destroy(gameObject);
return;
}
DontDestroyOnLoad(gameObject);
}
This fixed it for me, btw this is such a good tutorial!
Honestly I have no idea how this would solve the problem you say you were having :P
@@tomweiland yea I literally have no idea why haha, but this magically fixed it. I probably did something wrong lol. Anyway thank you for making these videos, I can imagine they take a lot of time to make.
Hey Tom,
youre videos helped me out a lot. I just noticed, that if you change the ip to the ip of an external server you want to connect to, it still connects to the localhost (at least in my case).
Because I could not find a Solution for this, and kept on trying to fix it for hours, I now want to provide the Fix for everyone else having this Problem.
In the TCP class of the Client file in the Connect method you have to write:
socket.BeginConnect(IPAddress.Parse(instance.ip), instance.port, ConnectCallback, socket);
instead of:
socket.BeginConnect(instance.ip, instance.port, ConnectCallback, socket);
Hope this will help Somebody.
Would you happen to have been changing the IP in the client's code? If so, that's the problem, because the value in Unity's inspector overrides any changes you make to the initial value in the code. I have no idea why parsing the IP beforehand would have made a difference...
This was an excellent tutorial. I'll be watching all your videos from now on.
I'm glad you like it, welcome to the community :D
I remember doing this and my pc would crash idk why it works now but I’m happy that I can use this cause it’s better than pre built ones with limits
That sounds really strange, glad it's working now though :)
This is going to be so useful when i learn how to use probuilder
What does probuilder have to do with networking 🤔
In my opinion this ist the best Tutorial about Networking on RUclips. The structure of the project is also clear and easy to follow. But I'd like to know how many clients can this server handle at the same time?
Is there a limit for the number of clients that can connect at the same time?
If you like this one, you should really check out my new series-this series here isn't very good, and the code we write in it is a straight up mess 😅
Neither this solution nor Riptide (the solution I cover in the new series) imposes any arbitrary connection limits like Photon does for example. Although the maximum number of players you'll be able to support with a single server instance depends heavily on your game and how resource intensive it is, Riptide is much more performant than the solution from these videos, so that'll be able to support even more players.
Love the pace, two thumbs up. Small potential bug - Destroy(this) will destroy the component from the game object, not the game object itself (if that was your intent). Might lead to weird behavior either way, though, so I might suggest looking for the "real" instance and setting the member to that object instead of using destroy.
I can't remember what my intent was, so you might be right. Replacing _this_ with _gameObject_ should fix it though :)
Looking forward to seeing the future of the series
Glad you liked it, part 2 will be out this Saturday :)
Dani Talked about you are just awesome bro....awesome tut....
Indeed he did-I'm glad you liked it :P
Hi, this is an incredible series and tought me a lot. The only thing that I've really had an issue (if you can call it that) with is the annoyance of keeping the Packet class and other classes specific to my project up to date between the two projects. I'd suggest anyone having this issue look into creating a basic local unity package and removing the Package.cs from the actual project and instead using the unity package to share the file between both. This let's you edit the Package.cs exactly like you would normally but it saves between the projects.
Glad to hear it's been helpful :)
I am pretty young but your video still helped me soooo much and i understood everything very clearly. thank you :D
Glad I could help :)
I know this is an old tutorial, but i'm trying to make a contact app using C#, and it's currently working on a console app on both sides. Very good tutorial
👍
Feel like youre a legend for making this
Thanks, but I just wanted to share what I know 😅
This Tutorial was really very helpful , I Didn't found such a good tutorial on youtube . Thanks :)
Glad to hear it :)
What version of unity?
Your Videos are very Helpful! thx man
Glad to hear it!
Its amazing!! Short and useful!
And a little too fast 😅
Thank You So Much, I Stuck At The End Part But Than Realized The Mistake. :) Really Helpful
Glad it helped :)
for the first time I have watched a video and finished it with out any errors :D
Congrats :P
Thank you very much for this one, Tom! It helped me a lot!
This time next year you will have 100K subscribers!
Cheers!
Haha, fingers crossed!
I'm glad you found the tutorial helpful :)
For anyone reading this. I just wanted to tell you that on November 9th, they will be releasing C#9. C#9 will have the new keywords; and, or and not. It will also not require you to need all that default code in every project with the Main method and class.
Which default code are you referring to?
Tom Weiland
namespace ProjectName
{
class Program
{
static void Main(string[] args)
{
}
}
}
Here, go read about it yourself
devblogs.microsoft.com/dotnet/welcome-to-c-9-0/
@@thedude4039 interesting 🤔
Very epic my dude. Thank you!
Thanks :D
This is really awsome... it taught me so much and finally got me going on my multiplayer game .. thx so much !
Glad I could help :)
I am definitely not going to copy every single line of code word for word, and I definitely understand why everything works.
I'm really hoping this is sarcasm because simply downloading the code from GitHub will leave you with no knowledge of how to use it properly :P
Awesome tutorial! Thanks for the video!
Glad it was helpful!
Tom has been blessed by dani
:P
Holy crap where has this been all my life...
😅
before dani: 720 subs 3 views
after dani credited you: BRRRRRRRR
tbh tho man, you deserve it! keep it up :D
Thanks 😅
I think this is an amazing tutoriel, on something that is quite complicated. Good job :)
Thank you, that means a lot to hear!
Much helpful video for a server in YT
I'm glad you found it helpful :)
Holy! Great Work- I have no experience in Networking and I think I was able to follow your coding very well. 12 Minute video and I was able to create my first connection =) NOICE! Keep it up m8 =)
That's good to hear!
Dani learned from your video. Great job bruh...!!!
Thanks :)
Content quality 100% , but set speed to 0.75 at times you go so blazing quick man. Any company should pay you triple the wage for that working speed haha. Good job
Yeah sorry about the speed-the later videos are a bit better in that regard. Glad you liked it :)
i very much need help to make a multiplayer game and i'm glad i came here
Well good luck :)
He just made my day thank you
Glad I could help :)
Hello Tom,
I had a question how did you get the project template for visual studio 2019? Because I am not able to find it I also asked in ur discord server thanks
Pretty sure it was installed for me by default, but according to this (docs.microsoft.com/en-us/dotnet/core/tutorials/with-visual-studio) you need the .NET Core cross-platform development workload installed.
@@tomweiland thanks man, also how do you get the wpf app? thanks for the fast reply! :D
The like button is broken...
We all smashed it🙃
Incredible 👌
Also what is that port number which you had mentioned, I didnt understand that part and how do I pick one to play once a while with my friends?
And one thing which I have to say is that you are awesome!
You just need to use a port that isn't in use on your computer by some other application. Most likely just about any port number will do just fine.
@@tomweiland ok thanks!
Not much of a feedback, but t's kinda funny how people get turned down by amount of brain-storm needed to understand networking. Just look at views/likes in following videos.
Great content btw, networking handling came super easy with several episodes and basic understanding of networks and TCP and UDP protocols. Love your work! I really love how you made everything in code so clear and organised!
Haha yeah the number of views basically decays exponentially as you go through the series :P
I'm glad you liked the tutorial. As for the organization part, wait until you see the upgraded solution I've been working on-it's _so_ much cleaner and easier to use!
This was awesome! I was able to learn, C# server creation, connection with client, Singleton Pattern and basic Unity UI. I like the way you explain. Like say exactly whats reading in the code with some comments on the idea of what is actually happening.
Thanks, I'm glad you like it!