Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign upOption for long-term consistency between games. #20744
Comments
This comment has been minimized.
This comment has been minimized.
Why this restriction? |
This comment has been minimized.
This comment has been minimized.
|
Because rolling back time is inherently fragile. Any non- reversible
change like rot, monster evolution, terrain degredation, or anything else
we add that involves a permanent change can't be reversed, and would be a
source of inconsistency.
Having said that, I just wanted to record the concept, if someone wants to
implement it and is OK with leaving sources of inconsistency, I doubt I'd
care much.
|
This comment has been minimized.
This comment has been minimized.
|
Why not have all gameplay start at the current turn which would be tracked by the world? It would mean that any later players would have a more difficult time of it with monster evolution, but there wouldn't be any issues of food not rotting, etc.. edit: specifically I mean this for server-play, or some sort of hot-seat multiplayer. For single-player it should stay the same as it is now. |
This comment has been minimized.
This comment has been minimized.
Because there are no "earlier" and "later" players - each player gets a separate clock that advances independently from the rest. You can start character A, save after 1000 turns, then start character B and play for 10000 turns. |
This comment has been minimized.
This comment has been minimized.
This is inherently inconsistent for the existing starting scenario, where was the player in those intervening days, months, or even years? From a gameplay point of view, the world would eventually become unplayable, because at game start all pre-cataclysm food would be spoiled and all zombies would be fully evolved. |
This comment has been minimized.
This comment has been minimized.
Would be okay for starting in a lmoe shelter and we could add a room with cryogenic vats to labs with a console that says "critical power failure, initiating emergency release" like fallout 4 does. |
This comment has been minimized.
This comment has been minimized.
|
I get where kevin's coming from, it invalidates most of the pre-existing scenarios when you start 2-3 years from a previous characters play time. As a single scenario starting from a cryo-pod would be fine and there are delayed start scenarios already, but it doesn't fix the others. What if we just change the birthday of items to be the current turn if their birthday is greater than the current turn? |
This comment has been minimized.
This comment has been minimized.
|
@kolsurma: uh, where are you getting 2-3 years from? |
This comment has been minimized.
This comment has been minimized.
|
I guess I didn't complete that thought. If your PC plays for 3 years then kicks the bucket, the next PC shouldn't start 3 years later from the normal start date in world. |
This comment has been minimized.
This comment has been minimized.
See my previous answer:
I don't see why this is a problem, it limits zones that can be added to your current game to the ones where adding them would be consistent. If you don't want to prioritize consistency don't turn on the option and you get the current behavior where games are allowed to chaotically interact with each other. To be clear, I have no interest in this being the sole or even default mode for the game, just an option for people that really don't like their games being inconsistent. In practice I'm skeptical that a significant number of players know or care about these inconsistencies. |
kevingranade commentedMar 31, 2017
This concept has been floating around for a while, but didn't have a really good plan for implementation, I just thought of one so dropping it in.
First the problem, sequential or simultaneous games in the same game world can create temporal and other inconsistencies since each player has a separate time line, and they advance completely independently of each other. For example if a player visits an area last visited by another player "from the future", the game logic is unable to roll back the state of the items in the area. The result is items that never rot, crops that don't grow, monsters that are too evolved, etc. This can happen in both simultaneous and sequential games, but simultaneous games have even worse failure modes, such as dissappearing or duplicated items, suddenly halting effects, or sudden changes of map state.
In broad strokes, the solution is to engineer the game to insure that a player can never interact with the section of the game world of another player until the first players timeliness has caught up with that of the second player.
This is simple for sequential games, we could just make an estimate for how far a player travels per day, record the time difference vs lifespan of other (now dead or retired) players, and place the new player at least lifespan*distance away from any other player location. The same doesn't work for simultaneous games though, because each player is still active.
This brings me to my new idea, which is that each active player gets their own "zone" of the game world, which are not actually related to each other in a geographical sense, it's more like they are namespaced to the particular player. The only way a player can interact with another is via their zone 'consuming' the zone of a dead or retired player. How this would work is when a player dies or retires, their zone is orphaned and becomes eligible for spawning adjacent to an existing player zone, but it will only do so if the time line if the active player is larger than the timestamp of the orphaned zone. When the zone is spawned, it would just have its overmap coordinates adjusted to be adjacent to those of the active players area.