2 years! Sheesh, the fact that you’re still going at it is hella op. Keep up the good work, I came here from an older video trying to find a sea of thieves type game tutorial, but instead found this. I’m a new subscriber btw, this game looks nice and looks like it works smoothly.🔥
Now that I’ve played sea of thieves I really see the similarities and the difference between the games. Somehow I feel really ”hyped” about your game because it does all the things I’d really want sea of thieves to do
Yeah, there's a lot of ideas I have (or that I've seen the Sea of Thieves community suggest) which Rare probably won't ever implement because they'd fundamentally change certain parts of their game, but luckily I don't yet have a playerbase that'll be upset with me for changing things :P Anything specific that you'd like to see Sea of Thieves do which they likely won't? If I know what you're referring to, I can do a better job of trying to include those ideas :)
ARRrrrrrrrr! That was a good video! Testin' wit' mateys defiantly boosts motivation! Also that editin' was jus' great. Ye added a bit o' tale tellin' wit' this devlog which really keeps th' interest. :p
no matter how long it takes you to chase a fix for a bug, just don't lose motivation man, although you may not always directly feel it, there's lotta people in here that get through your tutorials and gain bits of knowledge concerning game development that will always be useful to them either practically or theoretically. And that's cause you've invested your time for the videos you made, and even if it wasn't for this you, yourself, gained more experience and personal achievements that will guide you through anything, personal projects or professional purposes. Great job man, I'm watching your tutorials and I'm now building up the network interface.
NICE PROGRESS!!! if u want to add it : try to make the ship less sensitive to the waves(when u shoot the cannon its seems really hard)!!! NICE WORK THO!!
Nice video. I liked the explanation and the solution. I'm also glad you mentioned the bailing being possible anywhere below deck and addressing it in the next video, I was thinking that in my head from when ya started looking at the problem. Good looks interesting, and nice video.
1 of these per month seems to be a reasonable pace at this point. I'd like to do more, but I'm not sure that's feasible while also making solid progress on the game :/
For the collider problem. You can use blender to make a shape, import it to unity, and add a mesh collider. This will make a collider that will match relatively simple shapes. What i mean by simple shapes is shapes without holes or stuff like that. I think it will help and not cost much time. Might want to try it! :)
Mesh colliders can be really expensive (particularly if they're concave), and it'd be virtually impossible to properly resize them at runtime. Plus, I'd still have the problem where the raycast might not hit the collider at all if the player is inside it. I'm pretty satisfied with the solution I came up with, but thanks for the suggestion :P
Really excellent progress here. Seeing such high waves from the island makes me think a tsunami could be a cool feature, if you can find a good spot for one to spawn.
Unfortunately singular massive waves would be hard to implement, and if they don't break (which would be even more difficult to code) they'd just roll straight through any islands...
Friend: _a person whom one knows and with whom one has a bond of mutual affection_ I don't think our relationship fits that description, considering I'm not even sure who you are...
I also had an issue where the first player could connect without problems, and all players that connected after that would never spawn their own player object. Seemed like unity was unable to handle the incoming spawn packet, right after loading the scene, since addinga short delay, before sending the spawn player packet, fixed the issue. The weird thing was that the player that succesfully connected could leave and rejoin, but no other player could take his place. when he left. As always great video :)
That sounds very strange! In my case it was due to the fact that I had messed up some stuff in Riptide's logic for sending messages to all connected players.
@@tomweiland I was using your dedicated server solution untill i realized that hosting dedicated servers wouldnt be helpful in my situation, so i had to use photon. But your tutorials made me look through all sorts of very intresting networking principles and generally enriched my knowledge in multiplayer games. I thank you for that ! Good luck for your game project!
Well I'm glad I could help out on your journey to learn networking! Fyi, if you really _wanted_ to use my solution, you could technically convert it into peer-to-peer by just putting the server code into the client project and running it locally, but Photon will do the trick as well :)
I'm loving the development process of this game! I really am happy that you fixed the waves last devlog, cause they were something else... As for a name, what about Argos? Is that totally just a Greek name I ripped off from the Percy Jackson series? Yes. Just a suggestion, probably not a very good one either. But keep it up!
They called their ship the _Argo II,_ didn't they? Not sure how I feel about naming the whole game after a ship, but I'm glad you're enjoying the videos :)
Hi! Just a question: will the problems with networking that you mention here come together with the networking setup you describe in your tutorial ('Sending and Receiving Data Using TCP')? Thanks for sharing!
Are you asking if you'll run into the same issues? Probably-if you're making a first person game that's server authoritative, you're going to need client prediction at some point to make the movement feel responsive even when playing with latency.
With that ship-water-bucket detection: I would have just raycasted into the view direction, and when the hitpoint is below the water-level-value, relative to the shiphull (local rotation), you are touching the water, and can thus use the bucket.
That could've worked too, although neither that nor my solution from the video covers the case where you're swimming in open water and try to fill your bucket, so I'm going to have to come up with something else at some point.
@@tomweiland I mean you should have it easy to detect if the camera is under water. Just as its done with determining if bodies float depending on their position. Wich is one case - when not on the ship. Another would be if a trace hitpoint is on the water level - when not on the ship. For dumping water you could use trigger volumes along the sides of the deck. If the player is within them, water will be dumped over board, when using the dump action.
I actually considered that, and it's something I might do, but Charybdis didn't really move around much as far as I know, which would restrict maelstroms to a certain point on the map. The other option would be to put maelstroms at the center of storms, and that way it would be more of a dynamic occurrence since it would move with the storm.
hey Tom I'm trying to make a boat model and it's finished now but I'm trying to put all the pieces of it under the main piece so when I move it all the pieces of the boat stay together in the right spot but when I try to put all the little pieces of the boat under the main piece in the hierarchy they move in to some weird position and they don't stay where I put them do you know how to fix this?
Are you talking about in Blender or in Unity? If it's in Unity, when you import the model all the parts should already be children of a root game object...
@@tomweiland windwaker is a Zelda game from the gamecube era. My favorite, lots of sailing from island to island. Love the concept of a chill multiplayer pirate game, just put on some alestorm or sea shanties and play! Haha
I play it and it's a lot of fun. You just need to be aware of your surroundings, and don't consider loot as "yours" until you've actually handed it in :)
Superb video. I was interested to hear you say that you're more interested in fixing game bugs rather than bugs in Riptide. That's precisely the reason that I went with Photon-and-then-Mirror. I couldn't be arsed to write my own! However, I wonder if I've spent more time fighting with Mirror's limitations than I would have fixing bugs in my own custom netcode. 🤔 Will you use the AI to make the bucket model or are you going to do that one yourself? 😉
Well it depends on the type of bug-when there's issues with the really low level stuff those are usually difficult to figure out and are no fun at all. Other issues with Riptide have been very satisfying to solve though! I'll be modeling the bucket myself, just like I modeled the barrel 🙄
6:24 You could've just went into Blender and used a boolean modifier on a plane, and the ship model, to get a shape that perfectly fits the hull of the boat, and then used that shape with a mesh collider.
That would mean making a mesh collider though, and those aren't great for performance. Plus, stretching it would be a nightmare because the collider is meant to fit the ship's _unstretched_ form, so as soon as you change the scale of the collider it wouldn't match the hull shape anymore.
I would _definitely_ have just done the raycast followed by the overlapsphere. Seems 100x easier and simpler to me. Don't forget you can also create compound collision shapes by adding child gameobjects.
When you consider the fact that the raycast + overlapsphere solution would have required resizing the water's colliders as it rises/falls in the ship though, it would've actually been the more complicated solution (by far) :P
But that would still require colliders, to ensure players are actually _inside_ the ship, otherwise you may be able to bail when you're on the outside. Plus a simple height check wouldn't do it since the boat rotates quite a bit as it goes up and down on waves.
Hmm but then that would also need to happen if you pull out your bucket while you're in the ocean, and that might not be what the player wants, so I think keeping it as an explicit action is probably better 🤔
@@tomweiland I mean if you're pulling out your bucket when you're in the ocean you can't really expect your bucket not to fill with water, that's just a logic the player can get use to... unless you plan on adding a sort of reason you'd want to have a bucket out when in the ocean thats not bailing out water, like minecraft's fish in a bucket type action.
What if you pull out your bucket in the water to make sure it's empty, because you fell off and your ship is sinking, so you can't afford to throw any water back into the boat 🤔
@Tom Weiland Can you make (a) videos on the C# multiplayer servers with stuff like: Logins, Moderation (bans, cooldowns), SQL, etc? This would help the hell out of me If not can you recommend some websites or other videos that cover this?
For user accounts and database stuff, check out Firebase. For bans you could just add their username/user ID to a list of banned people and then check that before letting them into the game.
Seeing those big waves makes me think: wouldn't it be cool if the map border had some oversized waves to keep the players from going outside the map limits. Just an idea though, don't take it seriously
@@tomweiland i was thinking on something like as the player get further away from the map the waves start getting bigger But yeah I know what you mean, there's a lot of more important things to solve first and things like that would be unnecessary work, considering they would be hard to implement and etc... Anyway keep up with the good work
Hey Tom, recently in one of your videos you mentioned about getting some developers on board to help with the project, I actually found your video by typing ‘pirate unity devlog’ aha as I wanted to create my own game but then saw the amount you did and wanted to help, is this something you would still be interested in? No worries if not,
Only responding to this now since RUclips marked it as spam or something for some reason... I can't really remember what exactly I said in the video you're referring to, but for now I want to keep working on the project solo. I'd like to get the game to a more polished and playable state (so I at least have some kind of demo to show) before I start "expanding the team". Thanks for the offer though :)
What exactly was the issue with the disconnected players connecting again? I think I encountered it when using your networking code from tutorials, want to fix it too.
I'm not aware of any issues related to disconnecting with the existing tutorial series-my issue in this video was simply that I hadn't bothered to handle disconnections (which we do in the networking tutorials). If you do have an issue and you need help, I'd suggest joining the Discord server and asking there :)
Because I feel like that would be overkill, not to mention that workflows are more complicated in HDRP. The only thing that URP is missing at the moment (that I've noticed) which I'd like to have is volumetric lighting. It's on Unity's roadmap, but worst-case scenario I'd have to make it myself and it'd be an interesting shader adventure.
Hi Tom, I see you are very expert about multiplayer and I follwed your series, so after creating my multiplayer game I noticed that my friends lag, but I don't. What's more some TCP packets (about creating items, bullets etc.) aren't sent correctly and they give me errors on the Server console (it seems they aren't received by Client). Can you give me a hand about that? I know it's too vague but I trust you and your experience ;)
Debugging networking stuff is kind of impossible in the RUclips comments :P Join the Discord server and ask there, and include the actual errors you're getting, as well as where in the code they're coming from.
I haven't used Photon, but I've tried Mirror and didn't like it. I felt like it was doing way too much for me, and I hated not knowing & having control over what goes on under the hood. Since Photon is also a high-level solution, I'd imagine it'd be similar. Additionally, writing my own network code from scratch has been a great challenge and an awesome learning experience.
So I know it is a bit far off for you but I did want to bring this up now so it doesnt bite you in the ass later. EVERYONE wants a good fun pirate game that was reasonably well however there are 2 issues that plauge literally all of them at this time. . 1. People just run away from fights if they are loaded its understandable but not super fun and the way sea of thieves handles returning loot to port is kinda BS cause its not a safe zone so you tend to have campers waiting for u to get to port to kill u destroy your ship and take your loot. 2. You as a member of the crew never really have much to do other than adjusting the sails from time to time until combat happens. If you have never played it I think you should take a look into puzzle pirates I think it kinda solves these two issues or rather has the best implemented solution at this time. Not saying totally jack their schtick but use it as a stepping point for kinda resolving the issue of being bored whilst sailing cause u arent the one on the mast altering the sails or turning the wheel
I think the way Sea of Thieves has no safe zones is actually a very good thing. If you were immune to attacks as soon as you reach an outpost, those people that already always run away would just make a beeline for the nearest outpost as soon as another ship gets anywhere near them and they'd be able to sell everything-you'd have no chance of pursuing them until they make a mistake and you wouldn't get any of their loot at all. I'll definitely do what I can to discourage people from running, and I've been considering things like making more loot on your ship slow you down, which would make it harder to run away for hours. Then again, that would probably discourage people from hoarding any loot in the first place, so it's certainly a bit of a tricky problem to solve. In terms of keeping sailing around interesting, one thing I'd definitely like to do is allow you to duel your crewmates. I think that'd be a great way to pass the time and simultaneously help people improve their PvP skills. It can be difficult to improve/learn from your mistakes in Sea of Thieves since most battles don't last long-you dying once can result in you sinking and having to sail all the way back, and that extremely high ratio of time spent sailing to time spent in battle makes it very time consuming to get a decent amount of practice in. I'll definitely take a look at puzzle pirates, thanks for the suggestion :)
Oh...probably not. That would be an absolute nightmare to implement and properly synchronize, and the performance impact likely wouldn't be worth the added "coolness" :P
When I was working with networking, I had the same issue as you Tom. I have it about the error on 1:34 if you did not yet fix it I think I have a solution. By me was the error that the server tries to move the client without it is being spawned. This resulted in that error. I added a boolean that is false but when the client spawns in it became true. the client will only move when that bool is true. I hope you understand and that his helps you.
Yeah in my case I had overlooked something in the low level sending code which basically screwed up the data that was being sent to all clients except the first, but I got it fixed. Thanks for trying to help though :)
Because the ship is a relatively complex shape, and mesh colliders can be really expensive. I should probably test whether or not it's actually faster like this though...
Honestly not sure what you're talking about... When you bail the ship fully, the water inside is disabled entirely. Are you maybe referring to the artifacts (particularly near the front of the ship)? If so, there's not much I can do aside from completely changing how I'm cutting out the water in the ship, although I do need to do that eventually, as the current method has several flaws.
For the last few months I've done my best to keep development enjoyable by avoiding the more tedious/boring tasks, because I knew that if I can get to the point where I can test with friends, that'll be a huge motivator and it'll be much easier to do the boring stuff. So far I've turned out to be correct :P Besides that, focusing on the end goal is usually helpful, but sometimes you also need to take a break!
@@tomweiland well it just seemed like when you were doing the colliders for the water inside the boat that if you were aware of the custom colliders ability you would have done that instead, as I also recently realized that was an option. I just made a multiplayer unity 3d game where you have a cool floating island with a bunch of caves and stuff to explore and I used unitys netcode for game objects but I really didn't like how it was structured where it spawns the network objects on both the client and server. everything about the way it works just seems so overly complicated because they tried to make it simple. In reality I just want a global network variable for me to use on my own to set the position of the other player objects in the game. I don't like how it makes both your object and the object the other players see as you to be literally the same object with tbe same code. I was wondering if your wave networking solution thing (I forgot what it was called but I remember the cool logo) has the capabilities to do this and if you would recommend that?
Well I would've had to go model an object that fits inside the boat, which I was too lazy to do at the time. Also, mesh colliders are slower than primitives, so they're not always the best option. Riptide gives you the ability to send and receive data, and not much more. You can certainly use it to create variables that are kept in sync over the network, but it won't do that for you out of the box. I'd recommend it, but I'm obviously more than a little biased there :P
@@tomweiland i'll post some links i can find, here is the first one i found: answers.unity.com/questions/40996/check-if-position-is-inside-a-collider.html A second one: answers.unity.com/questions/459219/check-that-an-object-is-within-the-bounds-of-a-tri.html
The first solution uses the collider's bounds, which are always an unrotated cube, so that wouldn't be particularly accurate, not to mention that I'd need a reference to the collider in the first place, and this whole problem was about _getting_ that reference. The second question's first answer uses triggers, which is something I was hoping to avoid.
@@tomweiland i'm sorry that i can't give an accurate answer to this problem myself since i have not used unity for a long time but, you could possibly make your own mesh collider for your ship (but you probably don't want that since it takes a lot of time) or check if players position is lower then the water's position and if he is inside the ship what you could probably do by adding a simple collider or something like that to the floor of the ship.
@@tomweiland nvm sorry I accidently pressed a button and everything looked kinda weird and 2D I got it back to normal now I just gotta figure out how to add water physics and sail physics I have no idea how to do any of that but I'm trying my best
copy of sea of thiefs
It's still more original than your comment 😊
@@tomweiland true
@@tomweiland there's a boat in your game;
copy of lego pirates of the caribbean: the video game
@@cacnus I was playing that the other day, and it could honestly use an update 😂
@@tomweiland Oh BUURRRRN 😁
Let me know what you think of the section at 6:57-editing that was quite fun (although time consuming!). Hopefully you enjoy it :)
Loved it!
@@jipjap7193 glad to hear it!
I enjoyed it, it was good
@@ermilburn02 awesome 👌
Perfektion! haha
Networking Witchcraft, perfect description
I figured some people would appreciate that description :P
2 years! Sheesh, the fact that you’re still going at it is hella op. Keep up the good work, I came here from an older video trying to find a sea of thieves type game tutorial, but instead found this. I’m a new subscriber btw, this game looks nice and looks like it works smoothly.🔥
Thank you, and welcome to the community! Working "smoothly" might be a bit of an exaggeration though 😂
@@tomweiland 😂 kind of smoothly.. nah, this is actually a cool ass project. 👍
Imagine people comparing a solo developer to a AAA game studio. Nice work man.
Thanks :D
Nobody is comparing anything. Saying "its a copy" isnt comparing.
Now that I’ve played sea of thieves I really see the similarities and the difference between the games. Somehow I feel really ”hyped” about your game because it does all the things I’d really want sea of thieves to do
Yeah, there's a lot of ideas I have (or that I've seen the Sea of Thieves community suggest) which Rare probably won't ever implement because they'd fundamentally change certain parts of their game, but luckily I don't yet have a playerbase that'll be upset with me for changing things :P
Anything specific that you'd like to see Sea of Thieves do which they likely won't? If I know what you're referring to, I can do a better job of trying to include those ideas :)
i love these Devlogs, u are doing great work with this game it looks amazing! Can´t wait to play it!
Thanks for the kind words, that means a lot to hear :D
*_THIS IS EPIC_*
Is it? 😅
Im confused the vid says it was uploaded 1 hour ago, but this comment was posted 3 hours ago. RUclips is kinda weird sometimes...
ARRrrrrrrrr! That was a good video! Testin' wit' mateys defiantly boosts motivation! Also that editin' was jus' great. Ye added a bit o' tale tellin' wit' this devlog which really keeps th' interest. :p
*_lol_*
Well someone is in a pirating mood 🙌
no matter how long it takes you to chase a fix for a bug, just don't lose motivation man, although you may not always directly feel it, there's lotta people in here that get through your tutorials and gain bits of knowledge concerning game development that will always be useful to them either practically or theoretically. And that's cause you've invested your time for the videos you made, and even if it wasn't for this you, yourself, gained more experience and personal achievements that will guide you through anything, personal projects or professional purposes. Great job man, I'm watching your tutorials and I'm now building up the network interface.
Thanks for the kind words, it means a lot :)
Ahh your first multiplayer test, hang in there (You get a glimmer of light at the end of the tunnel)
Yeah, it felt good to finally get someone else in the game and help me test :P
like button *_smashed_*
Incredible 👌
I am most surprised of only one thing. You have friends :O
Crazy, right? 🤯
2:02 Can we take a second to appreciate the crash sound effect when he incremented the like counter over 255 on video about networking xD
😅
Pretty cool and nice devlog tom!
Thanks, glad you liked it :)
NICE PROGRESS!!!
if u want to add it : try to make the ship less sensitive to the waves(when u shoot the cannon its seems really hard)!!!
NICE WORK THO!!
Yeah the ship is still really bouncy, and at the moment the cannon aim sensitivity is way too high which makes it even more difficult :P
@@tomweiland will love to see more of ur content :)
Nice video. I liked the explanation and the solution. I'm also glad you mentioned the bailing being possible anywhere below deck and addressing it in the next video, I was thinking that in my head from when ya started looking at the problem.
Good looks interesting, and nice video.
Thank you, glad you liked it :D
Finally #44 came out have been waiting for a long time Tom
Hope to see the next one soon
1 of these per month seems to be a reasonable pace at this point. I'd like to do more, but I'm not sure that's feasible while also making solid progress on the game :/
ngl that 2 for 1 deal sounds pretty good
Right? Who wouldn't immediately cash in on that?
Awesome! A new Devlog from my favorite AI ^o^
I'M NOT AN AI 😭
@@tomweiland Okay, if you say so
7:02 That T-pose is straight MENACE!
Great devlog Tom! :D
True though, it's scary 😂
For the collider problem. You can use blender to make a shape, import it to unity, and add a mesh collider. This will make a collider that will match relatively simple shapes. What i mean by simple shapes is shapes without holes or stuff like that. I think it will help and not cost much time. Might want to try it! :)
Mesh colliders can be really expensive (particularly if they're concave), and it'd be virtually impossible to properly resize them at runtime. Plus, I'd still have the problem where the raycast might not hit the collider at all if the player is inside it. I'm pretty satisfied with the solution I came up with, but thanks for the suggestion :P
Hope to see more devlogs, Nice work!
I too would like to see more devlogs :P
I'm itching to get back to working on the game-I've just had a lot of other work to do lately...
Really excellent progress here. Seeing such high waves from the island makes me think a tsunami could be a cool feature, if you can find a good spot for one to spawn.
Unfortunately singular massive waves would be hard to implement, and if they don't break (which would be even more difficult to code) they'd just roll straight through any islands...
@@tomweiland Fair enough. I'll forget I suggested it.
AMAZING (PS Tommm areee yoouuu my frieeendddd)
Friend: _a person whom one knows and with whom one has a bond of mutual affection_
I don't think our relationship fits that description, considering I'm not even sure who you are...
XD
I also had an issue where the first player could connect without problems, and all players that connected after that would never spawn their own player object. Seemed like unity was unable to handle the incoming spawn packet, right after loading the scene, since addinga short delay, before sending the spawn player packet, fixed the issue. The weird thing was that the player that succesfully connected could leave and rejoin, but no other player could take his place. when he left.
As always great video :)
That sounds very strange! In my case it was due to the fact that I had messed up some stuff in Riptide's logic for sending messages to all connected players.
I just commented because it helps the algorithm.
Thanks, I appreciate that :D
It’s like you took the ideas right from my brain.
😅
If Sea of thieves was made in 1993. LOL just kidding great work so far!
😳
This is beyond awesome. You should be proud
Thanks for the kind words, that honestly means a lot :D
This game has a hook that goes Yeet! finally dinamic movement
😅
THIS IS AWESOME!!! KEEP UP THE GREAT WORK!!
Thanks, glad you like it :D
@@tomweiland I didnt just like it, your tutorials is my best source of knowledge!! Thank You Tom!!
You taught us a lot. We support you!
I take it you've found some of the tutorials helpful? :P
@@tomweiland I was using your dedicated server solution untill i realized that hosting dedicated servers wouldnt be helpful in my situation, so i had to use photon. But your tutorials made me look through all sorts of very intresting networking principles and generally enriched my knowledge in multiplayer games. I thank you for that ! Good luck for your game project!
Well I'm glad I could help out on your journey to learn networking!
Fyi, if you really _wanted_ to use my solution, you could technically convert it into peer-to-peer by just putting the server code into the client project and running it locally, but Photon will do the trick as well :)
@@tomweiland very useful as usual i will consider it for sure
Looks like fun!
It definitely was!
This game is really coming along
Slowly but surely!
moments like these 4:57 is why game dev is fun
Yep :P
I'm loving the development process of this game! I really am happy that you fixed the waves last devlog, cause they were something else... As for a name, what about Argos? Is that totally just a Greek name I ripped off from the Percy Jackson series? Yes. Just a suggestion, probably not a very good one either. But keep it up!
They called their ship the _Argo II,_ didn't they? Not sure how I feel about naming the whole game after a ship, but I'm glad you're enjoying the videos :)
Superior Water physics to Cyberpunk. Be proud!
I'm not familiar with Cyberpunk's water, so I'm not sure what kind standard that sets :P
@@tomweiland Just take pride in your water being better than a AAA game!
😰
4:57 oh my God it's a literal bowl of water
😅
Hi! Just a question: will the problems with networking that you mention here come together with the networking setup you describe in your tutorial ('Sending and Receiving Data Using TCP')? Thanks for sharing!
Are you asking if you'll run into the same issues? Probably-if you're making a first person game that's server authoritative, you're going to need client prediction at some point to make the movement feel responsive even when playing with latency.
Holy crap it's looking sooo good
I'm glad you think so!
Keep going, I am proud of you.
I certainly will :)
this series is great.
Glad you like it :)
HES BACK BOYS
I'M BACK!
With that ship-water-bucket detection: I would have just raycasted into the view direction, and when the hitpoint is below the water-level-value, relative to the shiphull (local rotation), you are touching the water, and can thus use the bucket.
That could've worked too, although neither that nor my solution from the video covers the case where you're swimming in open water and try to fill your bucket, so I'm going to have to come up with something else at some point.
@@tomweiland I mean you should have it easy to detect if the camera is under water. Just as its done with determining if bodies float depending on their position. Wich is one case - when not on the ship. Another would be if a trace hitpoint is on the water level - when not on the ship.
For dumping water you could use trigger volumes along the sides of the deck. If the player is within them, water will be dumped over board, when using the dump action.
HIGH SCHOOL 2 years ago??? This would be more impressive than Senior projects in College
Thanks for the kind words 😅
What’s up man! Nice vid I needed to know how to do this. Also my unity i is saying not able to install. Have any ideas how to fix that?
Glad I could help :)
like button _slapped_
Incredible, thank you! 🙌
Haha I had the same thing where the server crashed when someone disconnected
The joyous adventures of network programming
Ah...a fellow connoisseur of problems à la networking 😂
Since you want to implement Greek Mythology at some point (I think?) and maelströms (maybe) what about Charybdis as an enemy?
I actually considered that, and it's something I might do, but Charybdis didn't really move around much as far as I know, which would restrict maelstroms to a certain point on the map. The other option would be to put maelstroms at the center of storms, and that way it would be more of a dynamic occurrence since it would move with the storm.
Tom asks for a like, he deserves a like
I guess I should ask more often 😂
WOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
Back with another one :P
I hope you get more views!
Haha, same :P
@@tomweiland xD
Interesting project!
Thanks :D
hey Tom I'm trying to make a boat model and it's finished now but I'm trying to put all the pieces of it under the main piece so when I move it all the pieces of the boat stay together in the right spot but when I try to put all the little pieces of the boat under the main piece in the hierarchy they move in to some weird position and they don't stay where I put them do you know how to fix this?
Are you talking about in Blender or in Unity? If it's in Unity, when you import the model all the parts should already be children of a root game object...
Potential windwaker vibes here!
I haven't played that, but once I get to the public playtesting phase you can let me know if it's more than just potential!
@@tomweiland windwaker is a Zelda game from the gamecube era. My favorite, lots of sailing from island to island. Love the concept of a chill multiplayer pirate game, just put on some alestorm or sea shanties and play! Haha
Do you know about Sea of Thieves? Cuz that's a multiplayer pirate game, the best part being that you can play it immediately 😂
@@tomweiland I have! I actually have the PC Microsoft gamepass! I should give it a shot some time!
I play it and it's a lot of fun. You just need to be aware of your surroundings, and don't consider loot as "yours" until you've actually handed it in :)
"It has been 2 years since I started this project" It has also been 2 years since this video was uploaded...
😭
Add a rope weave texture to your grapple hooks line renderer.
I definitely will, although it's not really a priority at the moment.
Superb video. I was interested to hear you say that you're more interested in fixing game bugs rather than bugs in Riptide. That's precisely the reason that I went with Photon-and-then-Mirror. I couldn't be arsed to write my own!
However, I wonder if I've spent more time fighting with Mirror's limitations than I would have fixing bugs in my own custom netcode. 🤔
Will you use the AI to make the bucket model or are you going to do that one yourself? 😉
Well it depends on the type of bug-when there's issues with the really low level stuff those are usually difficult to figure out and are no fun at all. Other issues with Riptide have been very satisfying to solve though!
I'll be modeling the bucket myself, just like I modeled the barrel 🙄
6:24 You could've just went into Blender and used a boolean modifier on a plane, and the ship model, to get a shape that perfectly fits the hull of the boat, and then used that shape with a mesh collider.
That would mean making a mesh collider though, and those aren't great for performance. Plus, stretching it would be a nightmare because the collider is meant to fit the ship's _unstretched_ form, so as soon as you change the scale of the collider it wouldn't match the hull shape anymore.
@@tomweiland it would if the collider had the same origin point as the ship.
No it wouldn't...stretching the collider but not the mesh will lead to the two no longer matching.
@@tomweiland Soo, don’t stretch the collider? I don’t understand what you mean. Why do you need to stretch the collider and not the ship?
The stretching would've been required to mimic the height of the water in the ship, but the solution I came up with in the video is much better.
YES
Yes.
I would _definitely_ have just done the raycast followed by the overlapsphere. Seems 100x easier and simpler to me. Don't forget you can also create compound collision shapes by adding child gameobjects.
When you consider the fact that the raycast + overlapsphere solution would have required resizing the water's colliders as it rises/falls in the ship though, it would've actually been the more complicated solution (by far) :P
@@tomweiland That's true. In that case I would have done a height check relative to the ship.
But that would still require colliders, to ensure players are actually _inside_ the ship, otherwise you may be able to bail when you're on the outside. Plus a simple height check wouldn't do it since the boat rotates quite a bit as it goes up and down on waves.
@@tomweiland Well that's why I say "relative to the ship", but I get your point about the check for being inside.
6:57 spicy
Yesss 👌
Hype!!!
HYPE!!!
how did you make that interactive cannon like that? i am stuck on this one thing in my project for so long and in dire need of help
Pressing F does a raycast, and if it hits the cannon interaction collider it puts the player in the interacting mode.
May I ask what the background music heard at 00:47 is?
It's called Borderless. I got it from RUclips Studio's audio library.
Do you have any tutorials for how to do boat mechanics like sailing and stuff
Yep: ruclips.net/video/JIjZQo03YdA/видео.html
Pov: You're watching a epic gameplay
😅
If you are at the point where you can submerge your whole body, then the bucket should automatically fill
Hmm but then that would also need to happen if you pull out your bucket while you're in the ocean, and that might not be what the player wants, so I think keeping it as an explicit action is probably better 🤔
@@tomweiland I mean if you're pulling out your bucket when you're in the ocean you can't really expect your bucket not to fill with water, that's just a logic the player can get use to... unless you plan on adding a sort of reason you'd want to have a bucket out when in the ocean thats not bailing out water, like minecraft's fish in a bucket type action.
What if you pull out your bucket in the water to make sure it's empty, because you fell off and your ship is sinking, so you can't afford to throw any water back into the boat 🤔
@Tom Weiland
Can you make (a) videos on the C# multiplayer servers with stuff like: Logins, Moderation (bans, cooldowns), SQL, etc?
This would help the hell out of me
If not can you recommend some websites or other videos that cover this?
For user accounts and database stuff, check out Firebase. For bans you could just add their username/user ID to a list of banned people and then check that before letting them into the game.
@@tomweilandThank You!
Amazing!!
Thanks :D
Seeing those big waves makes me think: wouldn't it be cool if the map border had some oversized waves to keep the players from going outside the map limits.
Just an idea though, don't take it seriously
Could be interesting, although it might look weird and it might be kind of complicated to implement 🤔
@@tomweiland i was thinking on something like as the player get further away from the map the waves start getting bigger
But yeah I know what you mean, there's a lot of more important things to solve first and things like that would be unnecessary work, considering they would be hard to implement and etc...
Anyway keep up with the good work
Reject Mirror
Return to Riptide
It's hard to return to Riptide when it's not released yet :P
@@tomweiland wait you're right
Whoop Whoop
🥳
Hey Tom, recently in one of your videos you mentioned about getting some developers on board to help with the project, I actually found your video by typing ‘pirate unity devlog’ aha as I wanted to create my own game but then saw the amount you did and wanted to help, is this something you would still be interested in? No worries if not,
Only responding to this now since RUclips marked it as spam or something for some reason...
I can't really remember what exactly I said in the video you're referring to, but for now I want to keep working on the project solo. I'd like to get the game to a more polished and playable state (so I at least have some kind of demo to show) before I start "expanding the team". Thanks for the offer though :)
What exactly was the issue with the disconnected players connecting again? I think I encountered it when using your networking code from tutorials, want to fix it too.
I'm not aware of any issues related to disconnecting with the existing tutorial series-my issue in this video was simply that I hadn't bothered to handle disconnections (which we do in the networking tutorials).
If you do have an issue and you need help, I'd suggest joining the Discord server and asking there :)
@@tomweiland ok, I'll have to reinvestigate to see if I can reproduce the issue I think I had :D
Hi, why don't switch to HDRP ?
Because I feel like that would be overkill, not to mention that workflows are more complicated in HDRP. The only thing that URP is missing at the moment (that I've noticed) which I'd like to have is volumetric lighting. It's on Unity's roadmap, but worst-case scenario I'd have to make it myself and it'd be an interesting shader adventure.
Hi Tom, I see you are very expert about multiplayer and I follwed your series, so after creating my multiplayer game I noticed that my friends lag, but I don't. What's more some TCP packets (about creating items, bullets etc.) aren't sent correctly and they give me errors on the Server console (it seems they aren't received by Client).
Can you give me a hand about that? I know it's too vague but I trust you and your experience ;)
Debugging networking stuff is kind of impossible in the RUclips comments :P
Join the Discord server and ask there, and include the actual errors you're getting, as well as where in the code they're coming from.
Networking is a black art. Expect it to be very difficult, and debugging to be even harder.
@@clonkex truer words were never spoken.
name this "game sea of wackers")))
Why...?
Is there any reason why your doing the networking from scratch and not using tools like photon or mirror??
I haven't used Photon, but I've tried Mirror and didn't like it. I felt like it was doing way too much for me, and I hated not knowing & having control over what goes on under the hood. Since Photon is also a high-level solution, I'd imagine it'd be similar. Additionally, writing my own network code from scratch has been a great challenge and an awesome learning experience.
@@tomweiland Ah i see. I'm too dumb for that so ll just try mirror or photon
So I know it is a bit far off for you but I did want to bring this up now so it doesnt bite you in the ass later.
EVERYONE wants a good fun pirate game that was reasonably well however there are 2 issues that plauge literally all of them at this time. . 1. People just run away from fights if they are loaded its understandable but not super fun and the way sea of thieves handles returning loot to port is kinda BS cause its not a safe zone so you tend to have campers waiting for u to get to port to kill u destroy your ship and take your loot. 2. You as a member of the crew never really have much to do other than adjusting the sails from time to time until combat happens.
If you have never played it I think you should take a look into puzzle pirates I think it kinda solves these two issues or rather has the best implemented solution at this time. Not saying totally jack their schtick but use it as a stepping point for kinda resolving the issue of being bored whilst sailing cause u arent the one on the mast altering the sails or turning the wheel
I think the way Sea of Thieves has no safe zones is actually a very good thing. If you were immune to attacks as soon as you reach an outpost, those people that already always run away would just make a beeline for the nearest outpost as soon as another ship gets anywhere near them and they'd be able to sell everything-you'd have no chance of pursuing them until they make a mistake and you wouldn't get any of their loot at all.
I'll definitely do what I can to discourage people from running, and I've been considering things like making more loot on your ship slow you down, which would make it harder to run away for hours. Then again, that would probably discourage people from hoarding any loot in the first place, so it's certainly a bit of a tricky problem to solve.
In terms of keeping sailing around interesting, one thing I'd definitely like to do is allow you to duel your crewmates. I think that'd be a great way to pass the time and simultaneously help people improve their PvP skills. It can be difficult to improve/learn from your mistakes in Sea of Thieves since most battles don't last long-you dying once can result in you sinking and having to sail all the way back, and that extremely high ratio of time spent sailing to time spent in battle makes it very time consuming to get a decent amount of practice in.
I'll definitely take a look at puzzle pirates, thanks for the suggestion :)
how about naming it with something with voyage
or buccaneer
Maybe 🤔
How much it's going to cost?
I'm honestly not sure yet. Release still feels so far away that I haven't really given it much thought.
add physics..everyone like physics...
It already has physics...
@@tomweiland like destructible meshes
Oh...probably not. That would be an absolute nightmare to implement and properly synchronize, and the performance impact likely wouldn't be worth the added "coolness" :P
When I was working with networking, I had the same issue as you Tom. I have it about the error on 1:34 if you did not yet fix it I think I have a solution. By me was the error that the server tries to move the client without it is being spawned. This resulted in that error. I added a boolean that is false but when the client spawns in it became true. the client will only move when that bool is true.
I hope you understand and that his helps you.
Yeah in my case I had overlooked something in the low level sending code which basically screwed up the data that was being sent to all clients except the first, but I got it fixed. Thanks for trying to help though :)
why so many collider on da ship doe
Because the ship is a relatively complex shape, and mesh colliders can be really expensive. I should probably test whether or not it's actually faster like this though...
@@tomweiland I am blind but I do see
2:10 bruh riptide is the name of an enchantment in Minecraft
Yep, it's also the name of a song :P
I think you should call it sea cheifs
Considering Sea of Thieves exists, I think it's probably wise to stay away from the word _sea_ in the name...
What's Riptide?
My new networking solution which I've been working on for the past few months :)
@@tomweiland Ohh, that's a cool name ^^
I thought it's something third part
Try to fix he water mesh glitching through the floor of a ship even when it has been bailed
Honestly not sure what you're talking about...
When you bail the ship fully, the water inside is disabled entirely. Are you maybe referring to the artifacts (particularly near the front of the ship)? If so, there's not much I can do aside from completely changing how I'm cutting out the water in the ship, although I do need to do that eventually, as the current method has several flaws.
how do you keep motivated for project
For the last few months I've done my best to keep development enjoyable by avoiding the more tedious/boring tasks, because I knew that if I can get to the point where I can test with friends, that'll be a huge motivator and it'll be much easier to do the boring stuff. So far I've turned out to be correct :P
Besides that, focusing on the end goal is usually helpful, but sometimes you also need to take a break!
Hi. I have a issue. How can I find another client's nickname and ıds using photon in server? Thanks.
Using Photon? I have no idea...I've never used Photon.
@@tomweiland Thanks for your respond. Can you give me an advice about multiplayer service and about multiplayer games
did you know you can use a custom collider with mesh collider?
Yes, why?
@@tomweiland well it just seemed like when you were doing the colliders for the water inside the boat that if you were aware of the custom colliders ability you would have done that instead, as I also recently realized that was an option. I just made a multiplayer unity 3d game where you have a cool floating island with a bunch of caves and stuff to explore and I used unitys netcode for game objects but I really didn't like how it was structured where it spawns the network objects on both the client and server. everything about the way it works just seems so overly complicated because they tried to make it simple. In reality I just want a global network variable for me to use on my own to set the position of the other player objects in the game. I don't like how it makes both your object and the object the other players see as you to be literally the same object with tbe same code. I was wondering if your wave networking solution thing (I forgot what it was called but I remember the cool logo) has the capabilities to do this and if you would recommend that?
Well I would've had to go model an object that fits inside the boat, which I was too lazy to do at the time. Also, mesh colliders are slower than primitives, so they're not always the best option.
Riptide gives you the ability to send and receive data, and not much more. You can certainly use it to create variables that are kept in sync over the network, but it won't do that for you out of the box. I'd recommend it, but I'm obviously more than a little biased there :P
@@tomweiland ok you should make another tutorial series on it then thatd be cool
@@tomweiland can you do p2p games without a host, just client to client?
I would take free character models from the store so that you guys can at least get feedback on when you fight
Yeah I need to get animations in there soon...the lack of feedback makes things hard :P
Are you planning to release this public?
Eventually yes, but that'll be a while.
Glad to hear!
Is there not a unity made function that checks if you are inside a collider?
Not that I'm aware of, but if you know of one, please share!
@@tomweiland i'll post some links i can find, here is the first one i found: answers.unity.com/questions/40996/check-if-position-is-inside-a-collider.html
A second one: answers.unity.com/questions/459219/check-that-an-object-is-within-the-bounds-of-a-tri.html
The first solution uses the collider's bounds, which are always an unrotated cube, so that wouldn't be particularly accurate, not to mention that I'd need a reference to the collider in the first place, and this whole problem was about _getting_ that reference.
The second question's first answer uses triggers, which is something I was hoping to avoid.
@@tomweiland i'm sorry that i can't give an accurate answer to this problem myself since i have not used unity for a long time but, you could possibly make your own mesh collider for your ship (but you probably don't want that since it takes a lot of time) or check if players position is lower then the water's position and if he is inside the ship what you could probably do by adding a simple collider or something like that to the floor of the ship.
It's fine, don't worry about it. I found a solution in this video anyways :)
0:15 LOL
That was a pretty slick board 😏
I accidently did something to my camera view on unity and now when I'm in the scene view it looks all weird and zoomed in
By "camera view" do you mean the scene view or the game view? If your scene view is zoomed in, can't you just zoom out again?
@@tomweiland nvm sorry I accidently pressed a button and everything looked kinda weird and 2D I got it back to normal now I just gotta figure out how to add water physics and sail physics I have no idea how to do any of that but I'm trying my best
Did you accidentally go into 2D mode? Also I have a tutorial on water physics, not sure if you've seen that.
@@tomweiland oh really thx I didn't know u did tutorials
Is the character a rigidbody?
Yep.
FOOD FOR THE COMMENT
THE ALGORITHM MUST EAT