Jump to content
Nikki Severin

Dev Diary #203 Oh ship!

Recommended Posts

Hey there, fellow Ylanders!


With update 1.8 successfully released, we are now fully working on 1.9. We've already mentioned what its theme will be so maybe we can provide you with a few more bits of information.


Firstly, we are aiming at making ships a more important and integral part of life of those who choose to go and explore those far horizons. From small things like naming your ship to introducing some cool new things to make your seafaring more fun and more interesting, and last, but certainly not least, to being able to damage, sink and repair ships (in maps that are set as PvP).

Ylands_210525_023454.png
(screenshot by NICO14973)


But that's just some of the things that will happen above the sea waves, but what about the vast areas below them? Well, they have been void and bare and both without enough interesting things to see and gameplay mechanics to play with... So this ends with 1.9. We are adding a lot of cool stuff in the depths (and obviously fixing some long-standing issues with light sources underwater). This is also extremely exciting but as much as we would like to share more, everything has its time.


And what else is new? We're getting close to announcing the results of the recent competition as the final votes are just coming in from the team Ylands judges. Also, it's been almost two years since Ylands left Early Access, and though we had some problems in the past, right now the game is much better and we feel we're on the right track... and that's definitely something to celebrate, isn't it? :) But we'll talk about this more the next week.
 

Until then make sure you stay healthy and classy, Ylanders!

  • Like 7

Share this post


Link to post
Share on other sites

The capacity to cope with large, detailed ships?

 

P.S, I see what you did there with the thread title! ?

  • Like 2

Share this post


Link to post
Share on other sites

I have a 6 floor ship that is well over a few thousand blocks. game freezes for a few seconds while it loads. I used the max space i could to build this ship on a steam boat. Im hoping for bigger ships and more buildable space

  • Like 1

Share this post


Link to post
Share on other sites

You know what I’d like to see regarding the depths? I want something lovecraftian. There’s nothing more intriguing than some kind of unfathomable mystery under the waves.

  • Like 1

Share this post


Link to post
Share on other sites
19 hours ago, 6Cowa6Bunga6 said:

I have a 6 floor ship that is well over a few thousand blocks. game freezes for a few seconds while it loads. I used the max space i could to build this ship on a steam boat. Im hoping for bigger ships and more buildable space

if you create a ship in the editor, space is not limited. you can then transfer this ship to the discovery using a blueprint. but, the space outside the building space of the ship outside the editor you will not be able to decorate or otherwise modify in the discovery

  • Like 1

Share this post


Link to post
Share on other sites

The biggest issue that I’d like this update to address is the fact that ship designs are becoming more detailed, and more vibrant in their design.

Sadly the multiplayer aspect is not up to the current standards that players are building. My ships work fine in local/single player maps, but the moment I said into an online are however, the framerate plunges to unplayable levels.

  • Upvote 2

Share this post


Link to post
Share on other sites

Gonna have to agree with @Deadeye_Rob here. Not sure why somebody else's ship would cause the massive drop in framerate and overall lag...I have witnessed several times already in exploration somebody summon a ship and the game suddenly become unplayable.

I know the next update is taking into consideration multiplayer ship combat.....but if this can't be fixed if the winner will always be the guy with the biggest ship that lags everybody out of the server. It's hard to fight back against someone when their main weapon is kick you offline and destroy your ship while you are trying to reconnect.

 

Edited by spiritchaser28

Share this post


Link to post
Share on other sites

@spiritchaser28, nobody wins sadly. My favourite ship is practically unplayable for myself and the others using the server.

I wouldn’t say it’s a massive ship but the block count is quite high.

  • Upvote 1

Share this post


Link to post
Share on other sites

Yeah something is definitely wrong with how ships work in multiplayer. Pretty much the entire ship is composed of a weld right? In other words a ship only consists of a few components that the game needs to keep track of. If the "weld" of a ship is loaded into the memory of each client, there should be barely any data needed to update the position of a ship's entities for each client, right... right?

Instead it seems like, right now, data is processed and sent around for every item that comprises the ship (i.e. potentially thousands). I can't think of any other reason why ship lag would increase with the size of the ship weld. There's no reason it should. 

  • Upvote 3

Share this post


Link to post
Share on other sites
1 hour ago, zarwil said:

I can't think of any other reason why ship lag would increase with the size of the ship weld.

As far as I understand welds: they only decrease the amount of hitboxes, while this helps a lot, each entity still needs to be processed at the very least visually.

Share this post


Link to post
Share on other sites

Perhaps it's the fact it's a moving weld that causes the lag and drop in framerate? I only know it is terrible in multiplayer. Even simply summoning a basic ship can cause lag to other players .I know the anchor can help with the lag but I have seen far too many players forget to drop their anchors and summoning an unanchored ship means you are summoning a moving ship. 

It might be a good idea if the devs created a script that automatically anchored a ship when it is unsummoned and summoned....? Just a thought to reduce multiplayer lag.

 

Edited by spiritchaser28
  • Upvote 1

Share this post


Link to post
Share on other sites
38 minutes ago, spiritchaser28 said:

.I know the anchor can help with the lag 

You’re bang on!

Dropping the anchor fixes the ship’s position. Therefore there is little to no lag because the system treats the ship like a static object.

Framerate drops and lag are caused the moment the ship becomes dynamic upon raising the anchor as the system struggles to track and relay the movement of every block on that ship to all participating clients.

This even applies to the ship ‘bobbing’ on the water in an idle state. Dropping anchor is the only remedy to fix the ships location.

  • Like 1

Share this post


Link to post
Share on other sites
On 11/29/2021 at 9:15 PM, Oliver Hope said:

As far as I understand welds: they only decrease the amount of hitboxes, while this helps a lot, each entity still needs to be processed at the very least visually.

Sure, but graphical processing is done client-side, so that doesn't explain the lag at all IMO. If that were the case, these huge ships would lag in single-player too (which they dont). Everything about the ship (except the position of the core ship part) can be processed client-side. If a client has access to all the data regarding the weld and whatever other components that may be attached to the ship (i.e. relative positions of items etc, which only needs to be sent to a client once), the only thing that needs to be sent over the network is the position of the ship hull.

The reason all of this is so weird is that the lag grows with the size of the ship weld, which means something related to that is also being transmitted over the network. I just can't figure out why that would be.

Edited by zarwil
  • Like 2

Share this post


Link to post
Share on other sites
8 hours ago, zarwil said:

Sure, but graphical processing is done client-side, so that doesn't explain the lag at all IMO. If that were the case, these huge ships would lag in single-player too (which they dont). Everything about the ship (except the position of the core ship part) can be processed client-side. If a client has access to all the data regarding the weld and whatever other components that may be attached to the ship (i.e. relative positions of items etc, which only needs to be sent to a client once), the only thing that needs to be sent over the network is the position of the ship hull.

The reason all of this is so weird is that the lag grows with the size of the ship weld, which means something related to that is also being transmitted over the network. I just can't figure out why that would be.

I don't have a programming school, but when I think about it logically, a lot more information has to be transferred to the server than just the position and rotation of the fuselage. because you have to display it on servers for all players, not just one, from the possibility of interacting with boxes or craft stations, for example, to the ship's own design.
with welds, it's also not as easy as it seems at first glance. it happened to me several times that it was much better for the game to create more smaller welds than one huge one.
as the creator of several large ships, but I can 100% say that before the 1.8 update, it worked much better on servers.
but after a few conversations with the developers, I can also say that discovery works a little differently than the games we can do in the editor, so the only thing left for us is to think, hope, and wait for the developers to fix it. 

 

  • Upvote 2

Share this post


Link to post
Share on other sites

@Mello1223 It's kinda pointless for us to speculate about what's going on here, since we have so little information, but I'm confident in what I wrote. Ideally when designing a distributed system (like a game server with many connected clients), you would only like to transmit the data that is dynamic. From what I figure, all data related to ships (that are moving, not in construction mode) is static, except for the position of the ship. A client only needs to receive the static data once in order to generate and display the ship. The only thing it needs from that point onward is the position of the ship hull, since, again, everything else about the ship is known and can be constructed from static data. This is most likely not how it works in Ylands.

In software development, it's critical to think about the time and space complexity of a function or module. Those two terms describe how much slower a function runs as the size of its input grows. In the case with ships in Ylands multiplayer, some computation related to the individual items composing a ship is exploding with input size and tanking the server-client communication. It's baffling to me how this data is even transmitted in the first place, since, like I said, it should be static. The reason(s) why this is happening in Ylands could be anything really. Maybe it's by design to alleviate client computation requirements for slower devices (like, idk, phones), or maybe it's just a case of development complications due to poor code quality (which is often the case in game development, ..or any software development for that matter lol).

Edit: To elaborate on this: "Maybe it's by design to alleviate client computation requirements for slower devices (like, idk, phones)",

it's entirely possible that this is actually going on, since perhaps the devs wanted to guarantee a certain level of performance for people with poor systems. If this is the case, I hope they reconsider due to the obvious, disastrous, consequences it has had. Instead of guaranteeing less computation for clients, it basically bricks everyone playing on a server if there's one complex ship.

Edited by zarwil
  • Like 2

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×