Search the Community
Showing results for tags 'mmo'.
Imagine being on Kerbin, looking up at the sky and seeing in real-time how a giant interstellar ship is being pulled out of spaceport by small tugs. It orients to fly past the Mun and then lights it's nuclear engine to start anew. All while other players are flying jets in formation above, 3 huge rockets are taking off, capsules leave firy reentry trails in the distance and you're doing buggy ramp jumps with friends. Do I have your attention? Good. I've thought it through a little and I (hope) I have found a straight-forward way to circumvent the annoying time-warp problem. Just get rid of manually controlling it on / in-proximity-of celestial bodies and mostly play real-time: Have planetary sphere-of-influence sized real-time bubbles that auto-sync. Players can't manually control time warp inside the multiplayer real-time bubble. Instead they use a maneuver node journey planner (map view) to go from A (start) to B (destination). After starting the journey players can control time warp (outside non-team multiplayer). During the journey players cannot directly interact if not on the same craft. The game / server alone manages the planetary bodies configurations in the solar systems. Multiplayer de-sync is done when waiting for a launch window and when starting a journey. Multiplayer re-sync is done when time is cyclic and flexible: when arriving in the destination's orbit, after landing or when on approach (space station type bubble). You can also easily re-sync if you cancel leaving on the journey. Also, if you're curious about how multiplayer would work in-space while allowing time warping, the solutions I found use the following ideas: Recorded actions / milestones / events for missions (which would also allow returning to the past after finishing a mission) - this also allows a number of interesting gameplay ideas like having single player space races against AI controlled agencies and is the basis for implementing the delivery routes system. All player actions in-space would be recorded and placed on a common timeline and when playing in map view (and time warping) we would see actions of other players. Also for multiplayer in small real-time bubbles like around space stations or when doing rendezvous syncing would be done when in proximity. This combined with the large celestial-body sized multiplayer bubbles would represent the hybrid system which allows for real-time interactions. I think this solution leads me to what I think is my greatest wish and suggestion. Make KSP2 multiplayer a competitive space-race team-based persistent-world MMO with inter-agency contracts and trade. Servers would be public, permanent, multiple per region with max. 1000 players each. What you build never gets lost or there would be very rare resets. You can also set-up private servers and edit the rules. Maybe you can even invite players into your single player campaign. Each agency can have 1-4 co-op players, you can build / fly / do missions together. Each player controls a kerbal per mission (although you can switch). You can switch to your space agency's crafts anytime you want. Space agencies can also do contracts for other space agencies. Space agencies can collaborate with each other on huge projects. You can physically interact with other players space stations or colonies only by requesting permissions to dock or land. But otherwise you can trade, emote and communicate. Craft of competing space agencies are all visible in normal view but are pass-through (can't interact physically - for gameplay and performance reasons). They are hidden in map view to avoid clutter, but you can select what you see in orbit. This is my dream for the greatest game ever made. Q&A: "Can it still be KSP with realistic space travel even as a MMO type game?" Yes. You gain big multiplayer by just giving up being able to manually control time-warp on / in-proximity-of a celestial body because you don't want to desync the players. Each place in the universe has its own simultaneity bubble where time flows regularly. You cannot travel to the future unless you are in a cyclic loop or static. Causality must always be preserved. The speed of light is constant in any frame of reference. You cannot send information to the past. If you switch colonies or vessels, you are moving in space AND time. But that's the key to the system: you ignore the fact that central-universal-synced time doesn't exist. All solar systems are looped when on rails. You hide temporal internal information and just sync positional configuration. "Would there be big differences compared to KSP1 gameplay?" If I can see you from the ground or low orbit, you would be inside the local real-time multiplayer bubble. Once you get to orbit you can plan maneuver nodes and start the inter-celestial-body journey. You exit large multiplayer when you start a journey. You keep team-based co-op multiplayer by being able to interact with the players on your craft. While on a journey time-warping is enabled and you can edit maneuver nodes and the destination. The server syncs you to the local SOI real-time bubble and system configuration when you arrive at your destination in order to re-enter large multiplayer. It's like waiting for transfer windows, but the abstraction is reversed. "What does "the server controls the local time and configuration of the celestial body system" mean?" It means that you don't control the local positions of celestial bodies by time warping. It's the same system configuration for everyone in that specific local real-time bubble, as defined by the server. "Where would manually controlling time-warp be disabled?" There would be real-time gameplay on / in-proximity-of the celestial body. In space you could have special / local real-time bubbles for stations, asteroids and comets. You can warp during journeys. "You can't play without manually controlling physics warp. Every player needs it." You can't have large scale multiplayer with physics warp. You would just see people popping in and out of existence as if they are using hyper-speed wall-hack cheats. It breaks immersion. You couldn't have space-races or races of any kind. Besides, devs said: no warp drives (that's what real-time warping actually means, not to mention desyncs and causality problems). I'm sure there are other solutions if you really are that impatient. "Why do you say travel between SOIs is virtual? It's virtual because it's outside of server defined time. During the journey you can interact only with players that are already in your craft. "What about mid-course corrections?" When you are on a journey you are outside of objective time bubbles. You make course corrections as usual, you can change destination without any issue. You go from maneuver node to maneuver node or pause the journey and create new maneuver nodes. But non-team multiplayer only exists after you arrive in the destination time bubble and auto-sync to the local system time and configuration set by the server." "How do you account for moons or star positions as seen planet-side?" When on a planet you see the moons and sun positions. You go to orbit, circularize, set maneuver nodes to travel to the moon, press go. When you arrive you auto-sync with a server defined local time in-proximity-of the moon. The problem you have now is that, if you switch colonies or vessels, you see different solar system configuration for each SOI. But it's irrelevant for gameplay, it's just like being in different time zones. You sync to where you are. "The map view is supposed to be a direct reflection of the world you're in. What do you mean when you imply that the normal view is real and the map view is virtual?" Map view only represents the system configuration you are playing in. When you start a journey, map view shows you a system configuration starting with the time of the transfer window, but it does not represent any server-defined real-time bubble system state. It's virtual during a journey, outside of time and outside of non-team multiplayer. When you arrive, server syncs the map view to the local configuration. "What if I get bored of waiting to ... circularize at apoapsis / rendezvous / land with parachutes ... in real-time?" Use basic automation as software modules and simple conditional triggers. Create the maneuver in advance and allow smart-parts or a minimal autopilot to do the final burn / do the approach or dock / trigger the parachutes and the landing legs. And/or set an alarm and go do something else meanwhile. You don't have to micromanage or babysit. Unload manual controls to the rocket design process. "What if I want to quickly meet up with my friends?" Meet in the middle. Travel to your nearest colony. Switch to / spawn at your favorite colony. Then takeoff together. "Was KSP envisioned to be multiplayer from the beginning?" I personally sincerely believe that. There is no official confirmation, but there are some signs. planting flags so others that come later find them (this is not a single player or co-op team-only feature) leaving custom messages on plaques that can only be read by getting physically close to them (not single player or co-op team-only feature) having agency contracts, rescue missions, (submodules) testing missions, tourism the huge empty world where we all could build colonies and space stations no cities or signs of Kerbal civilization on Kerbin being able to build cool rockets that we can admire, trade or share directly controlling kerbals (that will be able to emote) I think game design, tech levels and funding didn't allow the dream to be realized. Until now! "Doesn't your solution desync celestial bodies from the universal time?" Yes, universal time would cease to exist. You would only exist in regional-time or in virtual journey-time. Better yet think about it this way: instead of traveling in time, you travel from one positional configuration to another. "Doesn't the lack of universal time break resource management?" First of all you need to set up resupply loops. Secondly, to preserve resource management causality there could also be a timer used internally by the simulation to calculate "resources depletion estimated time". The thing is that it doesn't really impact multiplayer. Other players can't see inside your craft or colony to check if your resources are depleted. How do we prevent the visual shift in map view or in normal view when syncing to the real-time multiplayer bubble? When you arrive at your target the server sets the configuration you play in and politely hides any sudden jumps using the places where events are cyclical and time is flexible: while in orbit, while on approach, while landed. Some solutions: in map view: getting spun around in orbit (like a reverse warp-to-transfer window) in map view: limiting view of other celestial bodies by zooming in close to my craft and then zooming out in normal view: seeing your craft third person and correctly positioning the sun and moons during time-warp to target. in normal view: seeing an arrival-at-target cut-scene in map or normal view: if going directly into a suborbital trajectory without circularizing (entering atmosphere or landing) there might be a jump in the positions of the moons or day-time/night-time. To sync you (and only you) see an animation of some day / night cycles after landing. The players already in the multiplayer bubble see you arrive in real-time. "How many players per server?" Kerbin has a total surface area of 4,523,893.4 km^2. Excluding water based colonies, the land surface area is roughly half of that. But let's exclude mountains and steep hills and say 40%. Kerbin usable land surface area: ~ 1,800,000 km^2. We should also account for the fact that not being near the equator makes the game harder for players. That would again put a limit of probably 40% on the practical usable land area for better balance. Kerbin surface area of land practical for orbital launches: ~ 720,000 km^2. The KSC plateau is about 25 km^2 (from the wiki). But let's say a 1-4 kerbal agency would need 100 km^2. That's a maximum of 7,200 individual space agencies and a maximum of 28,800 players on Kerbin. Steam-Charts says the peak player count for KSP1 was 19,079. And currently on average there are 3,500 players online at any given moment. But in order to avoid latency issues and overcrowding the players should be split in multiple servers per region. My estimate for optimized gameplay would be a maximum of 1,000 space agencies per server, meaning anywhere from 1,000 to 4,000 players per server. "The players with Space Centers on / near the Kerbin equator have an unfair advantage over other players because of orbital inclination change costs." This could be a difficulty setting you choose when joining a server. If you want to play on easy, join a server that has free space near the equator. "Couldn't all the players build and fly in the same persistent world?" They could if dynamic instancing was used for some celestial bodies (mainly in the Kerbollar system). The further players explore, the fewer they are, so there's not really the problem of colonial overcrowding on planets and moons that are far away from Kerbin. And there would be a server rule that each instance always had enough room for new player colonies, while maintaining a healthy density and interesting older / bigger colonies. We would only see / interact with max N number of players on each world, but more advanced players would converge the farther away they travel. How could players collaborate inside the persistent world? playing co-op with max 3 other players inside a single space agency (using extended single player mechanics) seeing other players crafts, stations and colonies but having limited (approval based) interactions with them having a contracts and trading system and market interface that allows multiple space agencies to indirectly interact: ex. you ask for a satellite with some specs and pay another agency to build and/or launch it etc. having a "grand projects" system that allows multiple space agencies to interact directly by building together or contributing (kerbals, designs, craft, station segments, resources etc.) ex. a huge space station or interstellar mission. How would multiplayer actually work in-space (where time warping is absolutely necessary)? The events / actions recording system (which is also used by the delivery routes system) would allow to have a centralized timeline for massive multiplayer. This would allow time warping at will (because everything is either on-rails or manually controlled - which would trigger updates to the recordings placed on the timeline). Server could optimize sending you only the relevant localized recordings using an events / actions LOD system. Players would see all pre-recorded actions of other players in space as they play / warp. This combined with the hybrid multiplayer bubbles (big ones close to celestial bodies and small ones around space stations or for rendezvous) would be a general workable solution for KSP2 multiplayer. How would space races work? If there's only one timeline common to all players then events recorded during missions get placed on it at the appropriate future time coordinate. So if Player A that's playing right now (real-life time) lands on the Mun, he would have that event recorded and placed on the timeline. If Player B that's playing some days later (real-life time) is faster (relative to in-game time), then that Player B event recording would be placed before the Player A recording on the common timeline. All other players would be notified of milestones when the in-game time hits a recorded event. So the one that wins the "land on the Mun" space race is the one that created the earliest recording of the event (real life time does not really matter, but there should be rules so someone does not lag behind for a year in real life just to win the race).