Saving Carts

Started by NinjaFruitSalad, May 06, 2020, 04:18:52 AM

May 06, 2020, 04:18:52 AM Last Edit: May 06, 2020, 04:29:31 AM by NinjaFruitSalad
Alright, so carts. They need to be saved. Why? Because they're supposed to be valuable and useful tools to help transfer large amounts of goods from point A to point B. We are talking about so much volume and weight that it is infeasible or outright impossible for one's character to haul all of it by themselves. The problem is, as things currently stand, once items leave a save room or a character's inventory, they are at risk of disappearing for no reason (ie crashes and reboots). And this unfortunately includes items stored in carts. Or, correct me if I'm wrong, even the carts, themselves!

From a gameplay perspective, this isn't acceptable. How can we use these things if the items are liable to disappear suddenly, at no fault of the player's? It's about the same level of failure as if items in your inventory or storage in any other game just disappeared. Losing commodities is a pain and inconvenience. Losing more unique items is a nightmare, and will no doubt require admin involvement to recover said items. Either way you slice it, more work is going to be involved for the staff: improving the code, or cleaning up damage from the defective code.

From a roleplay perspective, this is atrocious. Items disappearing for no reason in a heavy RP world screams a jarring, unrealistic, unsatisfying experience. I know, sometimes things get stolen, but when you're traveling along in the desert by yourself, there's a crash, and when you log back in, and suddenly everything is gone...  we know exactly why the items disappeared: for OOC reasons outside of the player's (and character's!) control. To make up excuses justifying this, like "oh, a raider came and took everything" or "you crashed your cart" isn't believable at all and insulting to our intelligence.

So what to do? This issue needs to be fixed. It absolutely, has to be fixed, or people just won't use the carts.

How to go about fixing it? Well, the code needs to be revamped. While a player is controlling the cart, you could attach it to the player data to ensure it gets saved. If a character leaves the cart behind, however, the cart still needs to be saved, but this gets tricky. You will likely need an entirely new structure or object just for saving carts and their contents in non-save rooms. Including, of course, new code to save and restore that data. But, we don't want people just leaving carts everywhere as the new free real estate of unlimited storage, no.

What I would suggest is, each cart also has a certain, unknown "countdown" variable, which may even have some randomness. As the cart is moved from one safe zone to the next, this countdown decreases. When it reaches a safe zone, the countdown refreshes. If the cart lingers too long without entering a safe zone, then it risks losing its contents. Not from crashes and reboots, no, as that would still be punishing players for circumstances out of their control, but if, when this countdown has expired, the cart is left unattended for too long (another, much shorter duration timer), then things may end up missing, or everything could be gone. Eventually, even the cart would disappear. Since, at this time, after the cart has had more than ample time to get from point A to point B, and the player has left the cart, I think items disappearing in this way is quite fair and even deserved.

If this process isn't completely automated, the system could throw up some red flags, and I'm sure the gamemasters would have fun making things disappear and toying with players who abuse the lengthy grace period the carts initially provide...

I think the suggested 'count-down' system could provide complications.

As with all the recent changes to the code to allow for more freedom and variety in javascript applications, I believe the best solution to this problem is to add a javascript to cart-code.

If a cart resides in a room for ~30 seconds, or when the cart's pilot manually types "save cart", that room is temporarily added to the list of 'save-rooms'. When the cart moves, the temporary save-room is disabled and awaiting to be re-enabled when the cart stops moving again. Yes, this will turn virtually any room in the gameworld into a stockpile-room if someone leaves their cart sitting in place, but this can also be countered by adding a life-span to carts, also with javascript. Five IRL days sitting in place? The cart is starting to see the wear of sun-bleaching and dry-rot. On the sixth day, its wheels no longer turn and the wagon is 'decayed' and the save-room script would no longer apply.

Though I'm sure even my ideas have flaws. What do people think?

Hmmm, I actually think that living out of your cart in the wastes is not entirely unrealistic. What's the argument against such being the case.
Maybe the need to have it repaired / maintained could help to balance their benefits. Oil needs to be "filled" into the cart, representing axle etc.
Moving the cart without sufficient oil speeds the breaking of parts. Same with moving the cart while heavily dusty / overloaded.

It would encourage raiding and conflict as their cumbersome and difficult to defend nature make them easy targets. Could even enable indie wilderness group to grow large enough to provide further conflict and RP with city based clans and PCs. Temporary bases which could be assailed by other PC groups or RPT style gith raids.

I have to say, I don't think I've even seen a cart IG and have no idea of the meta regards their use.
But the above seems interesting to me, what kind of issues present themselves to you guys?


Quote from: Cabooze on May 06, 2020, 12:38:37 PM
I think the suggested 'count-down' system could provide complications.

As with all the recent changes to the code to allow for more freedom and variety in javascript applications, I believe the best solution to this problem is to add a javascript to cart-code.

If a cart resides in a room for ~30 seconds, or when the cart's pilot manually types "save cart", that room is temporarily added to the list of 'save-rooms'. When the cart moves, the temporary save-room is disabled and awaiting to be re-enabled when the cart stops moving again. Yes, this will turn virtually any room in the gameworld into a stockpile-room if someone leaves their cart sitting in place, but this can also be countered by adding a life-span to carts, also with javascript. Five IRL days sitting in place? The cart is starting to see the wear of sun-bleaching and dry-rot. On the sixth day, its wheels no longer turn and the wagon is 'decayed' and the save-room script would no longer apply.

Though I'm sure even my ideas have flaws. What do people think?

I think that you turned down part of my idea based on an assumption about code you don't know..  and then went on to propose something that is, exactly the part of my suggestion you didn't like. So let's be on the same page here. The countdown system I was talking about works the exact same way as the lifespan to carts, because both would inevitably involve measuring time. Only the effects are different.

I do think letting carts turn any other room into a save room is a Bad Idea™.

Quote from: Brokkr on May 05, 2020, 02:12:59 PM
Carts are neither of those things (nor are they technically "wagons", objects which also have their own specific save code).  They don't save because they would need code specific to them to enable that, which has not been put in place.  They don't link to a character like mounts, and we don't want them to save like wagons.  Feel free to discuss (in a different thread, not here) why you think they should save and how.

I'd "just" add custom save code to carts. Put a thing in the cart? It saves. Take a thing out of the cart? It saves. Then there's nothing for players to have to understand or think about.

Quote from: NinjaFruitSalad on May 06, 2020, 03:25:25 PM
I do think letting carts turn any other room into a save room is a Bad Idea™.

I think it's fine. If you want to buy an expensive cart and use it as a stealable desert apartment...honestly that's pretty cool. :)
<Maso> I thought you were like...a real sweet lady.

Quote from: Brytta Léofa on May 06, 2020, 06:14:47 PM
I think it's fine. If you want to buy an expensive cart and use it as a stealable desert apartment...honestly that's pretty cool. :)

Yeah, exactly this. Does someone have a read on, other than cost of implementation, why this would be a bad idea?

Quote from: Helloworld on May 06, 2020, 06:26:47 PM
Quote from: Brytta Léofa on May 06, 2020, 06:14:47 PM
I think it's fine. If you want to buy an expensive cart and use it as a stealable desert apartment...honestly that's pretty cool. :)

Yeah, exactly this. Does someone have a read on, other than cost of implementation, why this would be a bad idea?

Idk how well Arm handles it, but too many loaded items can in some cases cause slowdown and bloat.

Quote from: Hauwke on May 06, 2020, 06:35:47 PM
Quote from: Helloworld on May 06, 2020, 06:26:47 PM
Quote from: Brytta Léofa on May 06, 2020, 06:14:47 PM
I think it's fine. If you want to buy an expensive cart and use it as a stealable desert apartment...honestly that's pretty cool. :)

Yeah, exactly this. Does someone have a read on, other than cost of implementation, why this would be a bad idea?

Idk how well Arm handles it, but too many loaded items can in some cases cause slowdown and bloat.

Ah fair, that would seem to be a consideration. Though I would imagine that there would need to be quite an uptick in the number of cart for it to make a big dent?

Gameplay wise though, could you forsee any exploits?

Cool your jets, sparky, and maybe dial down the hyberbole a little.

The road map for carts is that their inventory will save, eventually.  The roll out of the cart code has been to add features slowly and fix bugs as they are uncovered.  Bug fixes for carts have been getting released as reported. This is a solved problem awaiting implementation and release.

Also, please chill out on attacking other players for not agreeing with your idea or for suggesting their own.
"Unless you have a suitcase and a ticket and a passport,
The cargo that they're carrying is you"