They can all be connected to one another and be anchored and/or no collided. Along with this, if this goes well I can try and create custom swimming next. However the most important thing for this is the fact that it should not lag. That’s also why I’ve resorted to this. If anyone has any idea’s please go about sharing them with me.
I’m not sure how you would create waves using those parts, they seem too big to be components of realistic-looking waves. If I’m understanding you correctly, you also want the parts to be connected while the wave is propagating, which means there are really only two directions the wave can propagate (which is along the axes of the grid formed by the rectangular parts). I think you’re better off using smaller parts and tween their position with a certain time offset. It might be laggy, but I don’t think you can optimize that much (maybe only tween the parts belonging to waves close to the player?)
I don’t believe it will be possible to connect the edges of those parts, as they’re solid rectangles. The best way to do this would be to use sideways wedges/triangles, as you can form any shape with triangles, and you can get it so that the edges are always touching. This topic has been talked about before.
I’ve found a link about creating triangles between three points, but the mathematics for implementing this into a wave system could be difficult, as well as being extremely demanding on the server to perform all of the calculations.
A possible solution is to use Roblox’s water terrain, and in the terrain settings set the wave height to a large number.
edit: I forgot to include the link to the devforum post I was talking about
It’s been done before in that specific article actually. Im currently trying to set up the scripting to work using waves and connecting them all.
When it’s done, it can be used for advanced ocean weather, changes in water only in specific area’s, etc. it will also make boats have a bobbing animation more pronounced.
You can create the wave-mesh from a grid-pattern of points on x-z plane. Then y of the points can simply just be sin(x+phase) + sin(y). Then just let phase = time. Pretty simple tbh