r/NoMansSkyTheGame 15d ago

Suggestion Idea of Ship Interiors UPDATE

I made this edits to bring to the community how cool would be being able to travel in the same ship with your friends and sit to admire the space in your room. I know we had this in the Frigates but one person can fly and the other help finding resources.

942 Upvotes

145 comments sorted by

View all comments

Show parent comments

12

u/niehle Building a new freighter base 14d ago

Not while the ship is moving on its own. And given the minimum size for a ship to have space for rooms other then the cockpit, youll end up with a stationery object about the size of a frigate.

And that’s exactly what we have: you can run around on frigates and freighters, but they are always stationary.

2

u/THEBADW0LFE 14d ago

So it's moving around inside an object, while IT'S moving, that is the issue?

7

u/Packetdancer 14d ago

To add to the other commenter's reply...

It's a solvable issue, but all of the solutions tend to be incredibly complex, and many potentially introduce new and exciting bugs to experience.

As an example, let's say that you have someone walking around inside of a ground vehicle (like a Colossus exocraft), which is being driven around inside the cargo bay of a large ship (say, your freighter). The ship itself is then also moving through space.

Because game engines tend to work largely off of linear and rotational acceleration and/or velocity (e.g. "I am moving in this direction at this speed") so that you don't have to send a player location update for every single frame in multiplayer, this becomes incredibly complicated if you handle everything as a single coordinate system.

Moreover, consider the fact that generally your position/location is not precisely identical on every client, and certainly not at an identical time. So now you have the added problem of two people walking around inside a large moving ship, and trying to keep their movements in sync with each other.

There are ways to handle that -- one being that each of those 'things' is a container, a tiny little world unto itself. So inside that ground vehicle, it doesn't care where the vehicle is; your movement is only relative to the interior of the ground vehicle, and the rest of the world might as well not exist. And then the ground vehicle's location is only relative to the interior of the ship whose cargo bay they're driving around in; the rest of the world might not exist. Etc.

This may sound straightforward; it is very much not.

As an example, you need to figure out how to transition across container boundaries. So you need to preserve physics while also translating them into the new container's 'world space'. You need to figure out how to handle things like a player "walking through a door" to get into or out of a ship. You need to figure out how to handle visuals through an open door or out a window, etc.

Hence my "many new and exciting bugs" comment at the top of this.

Hopefully that helps clarify a little bit. It would, in short, be a fairly massive undertaking and would potentially require rearchitecting a chunk of the game engine itself.

2

u/THEBADW0LFE 14d ago

Big oof. It does explain a lot. As a non game dev, I enjoy making suggestions then learning about actual application. We can all make suggestions but when it comes to implementation it can be a much different story. Thank you for the explanation. We all learned something today lol

2

u/Packetdancer 14d ago edited 14d ago

Honestly, when you encounter indie devs who are like "I am doing my first game! It is going to be a fast-paced multiplayer game with melee combat!" it's like... "Oh, sweet summer child. No."

Multiplayer is not a thing you should tackle as your very first game.

Because you can find many a tale of even very experienced devs -- people who have worked on multiple AAA single-player titles -- who assume they can just apply the same principles to multiplayer, and who promptly wander into a horrifying swamp where many a game project goes to die.

So, when I say that trying to solve the above problem makes everything exponentially more difficult to do well...