Welcome to Keen Software House Forums! Log in or Sign up to interact with the KSH community.
  1. You are currently browsing our forum as a guest. Create your own forum account to access all forum functionality.

Multiple people, Single ship

Discussion in 'Multiplayer' started by Zaedonn, Mar 27, 2014.

Thread Status:
This last post in this thread was made more than 31 days old.
  1. Zaedonn Trainee Engineer

    At the moment if I want to fly a large ship and let my buddy tag along, there is no easy way to do this.
    I figured I would post my idea and hopefully it will be expanded on and (possibly) implemented.
    The problem is when multiple people are in one ship, the driver is fine, but any/all passengers are tossed around and cannot even stand still properly.

    So why not make the boots have magnetic locks like the landing gears do? You may not be able to move but you wont get tossed around and end up dead due to glitches on those expeditions.
  2. piddlefoot Senior Engineer

    You get the ship up to speed turn dampeners off on ship and thrusters off on ship, let it cruise, you need a gravity generator so you can all walk around the ship, but you can do it.
  3. ataaron Apprentice Engineer

    ships are more like teleporting back and fourth and letting you go trough walls
  4. Captain Snyder Apprentice Engineer

    It's either lag, or an issue involving multiplayer and movable objects. I have this too when I join multiplayer games and try to take over Cargo's.
  5. FatalPapercut Senior Engineer

    I think this is more an issue about synchronization between the host of the server and the other players. Having someone attach to a ship seems to me that the ship actually attaces to the player, so now instead of just having to relay the position of a relatively uncomplicated spacesuit between server clients, the game now has to send the location of every block on the ship, thus making everything appear to bug out and the passengers phase through the walls.

    This happens with all landing gear attached objects too. A friend and i built a smallship turret for one of our cruisers. When nobody was in the turret, it moved with the cruiser perfectly, no problems. But wen he sat in the turret and i moved the ship, the turret wobbled back and forth like mad until it sheared off and destroyed the housing.

    Although i do like the suggestion of magnetic boots. Press P to toggle them on and off like landing gear, but you can still move across surfaces with them. Would help when you're not in gravity, or when you are, and want to weld something to a high ceiling without using the jetpack.
  6. Captain Snyder Apprentice Engineer

    I have this problem too.
  7. Lord_Shadow_38 Trainee Engineer

    You have to make a separate cockpit and entrust that your passengers won't touch there keyboards or mouse.
  8. DarkS33d Apprentice Engineer

    Just adding to the suggestions already shown here -

    You can do it successfully considering that the large ship isn't "too" large, that it is moving below 20 m/s and that everyone you are playing with has a solid internet connection. Even then, a lot of it depends on client/ server syncing issues. No amount of magnetic boots is going to fix that at the moment.

    The most reliable way to travel with multiple people in one ship is currently have everyone sit in their own cockpit/ large ship terminal. Whomever activates their cockpit first is the pilot but the other players can still access everything else on the ship. So bring a trustworthy crew!
  9. Scorpion00021 Senior Engineer

    I really hope this inst how it works, and i'm pretty sure it isnt.

    "All the blocks" are simply stored as an object or a collection of parts. One spot on the ship (could be center, corner, whatever) is all you need to transmit when updating the ships location. So the client receives the ship object, or layout, and the coordinates once. If the ship layout changes or the client re-requests it, the ship is sent. While the ship is moving, a simple set of coordinates and rotation values are sent.

    The problem here is keeping a player "snapped" to his correct coordinate inside the ship as it moves. I'm not sure how the engine works, but the way I would suggest programatically addressing this would be to treat the ship like a parent object and each player as a child object while under the influence of a gravity field. This is how the motor blocks work in-game.

    For all I know, this may already be how it is working and there are just some conflicts happening within the server when the client is sending movement updates and the server is calculating ship movement and resending. It can really be a complex issue to ponder and work through to make it seem fluid.
  10. Zethariel Trainee Engineer

    While I'm not an expert on game networking, I know a fair bit about it, and judging from the behavior of the ship and players, I'm afraid that the server does not have authorative power over everything in the game.

    More specifically, a player that assumes control is given full reign of the ship (the client seems to determine the exact position, not the server receiving input and simply applying it) and the jitters are most likelly because the client's upload is insufficient to put across all the data that the physics generation outputs.

    I back my theory up with a near-perfect example of my server - I have a friend with a good connection (GC) and a friend with a poor connection (PC), complimented by an old machine.

    While GC has the regular lags and sometimes suffers desynchronization, him driving a vehicle doesn't cause jitter, and he can safely drive a vehicle while I'm in it with no issue whatsoever.

    PC on the other hand... Whenever he drives anything, it keeps warping back and forth - his state is updated roughly every second or two wgile piloting a large ship, while his astronaut position has only small jitters and is fairly accurate/updated way frequently. As such I have a firm basis to say that the client does the physics calculation, sends the results (while the results aren't in, the server does prediction, and upon receival of the data applies it causing the ship to sink back to a real position) while at the same time doing it's own calculation, causing the jitter (which is treated as actual movement) to strain the construction, causing deaths and detachment of stuff not bolted to the ground too well.

    This semi-peer to peer model, with the server having authority but not really over the game world, is the reason we don't have dedicated servers yet. Again, I am not an expert nor a developer, but given the above this model seems at least probable, and is a BAD one at that, causing all sorts of unneccesary problems.

    The server should be 100% authorative and handle ALL the calculations and sending of data, the client only bothering with some simple predictions given the current world state. That, or reduce the load of the physics calculation ,so that clients that don't have server quality upload speeds can actually play.
  11. Scorpion00021 Senior Engineer

    Zethariel, I think you hit the nail on the head. The servers are almost definately non-authoritative. At least not with the coordinate logic/handling.
Thread Status:
This last post in this thread was made more than 31 days old.