ID:23917
 
Keywords: design, newtopia
The program is designed to prevent bulky objects of certain size from being placed into the same location. For instance, you can only place three stools into a single tile -- you need more horizontal space to store more, so people will eventually need to expand if they want to make huge stockpiles of objects.

However, I can conceive of a way to partially avoid this restriction: when you are carrying a bulky object, if you run out of stamina, you automatically drop that object and collapse under its weight, meaning that the object is placed into your location regardless of bulkiness restrictions. For lighter objects, the strain injury isn't too severe, so someone could just repeatedly accept a strain injury to stack up an infinite pile of stools in one square for example.

How do you suppose I might go about preventing this? A few solutions come to mind:

* never automatically drop an object, and instead simply make the strain injury continously accrue until the person sets it down in a legal location. However, in this case, it would be possible for a healthy being to carry an object until he collapses unconscious from the strain! I would still be stuck in the same situation when the character ran out of Health, too (forcing a drop).

* automatically drop the object, but if the object is not valid for that location, it tumbles randomly around the local area until it finds a valid tile to enter, causing blunt injuries to anyone it collides with. However, if the character is in a closed room with no valid locations, the object would bounce around forever and almost certainly kill him.

* don't automatically drop the object until the character reaches a valid location. However, the character can't move while out of Stamina, so this doesn't really work...


Incidentally, one new feature I'm about to implement is the "weighted down" effect. If a bulky object falls on you and that bulky object is dense, you can't move or get up until you manage to lift or push that bulky object off. This allows for possible accidents, like a bookshelf falling over onto a Mouse who is too weak to lift it off! If bulky objects never drop automatically, however, this feature would never see the light of day.
Something that could work is for a dropped object to break objects under it if they are under too much stress. This could work if it were a big weight on empty boxes. However, I think that your second idea (an object moving into a random direction) would work for the more unrealistic circumstances, and if there is no space, just let the guy die for clumsiness. ;P
Say, I didn't even think of damage. That'd probably be the ideal solution -- a combination of my second idea and that idea.

If a bulky object lands on another object, the heaviest object in the location does not move -- all other objects over the bulk limit of the space do, however. All of the objects including the original suffer damage and then the extraneous objects move to the nearest "most legal" adjacent locations (choosing randomly if more than one location is equally as legal as the others), colliding in turn with the objects in their new locations if the new locations are still not completely legal for the stacking limit. This causes a further reaction, resulting in a cacophony of broken furniture and crushed pelvises. =)
Yeah, I was thinking your second idea. It'd tumble around, hitting people, but it should also do durability damage. That way even if there's no valid spots, it'll make it's own for itself eventually.
I dunno. The idea of a bookshelf tumbling around a room is sort of strange. Perhaps there's a random chance (which increases with size) that the object will jam itself into an illegal position after the damage is done to it. When something is jammed in an illegal position the certain things within the position become unusable.
So the bookshelf falls on the sofa, both the sofa and bookshelf are unusable, and both would probably take damage. The book would spew out the bookcase and land all over the place (possibly even knocking things over if they go into another area).
The books are simple objects, so they can still be picked up and read. It just becomes an issue of whether or not the pile of books is too large to wade through. So you may need to clean them up and stack them somewhere else before you can get to the shelf and sofa to move them.


On interesting sub-subject this brings up is whether or not multiple characters can work together to move a single object.
It'd be cool if you could push, pull, lift and team-up to lift objects. Looking around my room there are several things I can push and pull over short distances, but there's a lot of stuff that to properly move I'd need another person to help me out. I'm a fairly strong man but I can't just lift my TV cabinet. Nobody can, it's too long/large.

Ideally there would be a system where you 'grab' the item, then after you have a hold of it others can grab it as well (with possible restrictions on where you can grab it). The first person to grab it can then move the whole group around.
So GDT, UP and I each grab onto the sofa. I grabbed it first, so until they let go I'm in control of their movement.

Moving an object like that would take a slower toll on our stamina than picking up an item. If I was to pick up an item that was too heavy for me I'd get a warning, then my stamina would decrease at a fast pace until it ran out and I dropped the item.
Same goes for pushing an item (although there's no risk of dropping it and it's easier). So I'd push something super heavy (my bed?) in small bursts.

Sorry, that's a bit of a ramble.
The solution that's in place only causes the smallest object(s) in a location to tumble around now. It's no longer possible for a bookshelf to tumble because a bookshelf is automatically going to be the largest object in a location (since you can't walk into a bookshelf in order to drop another bookshelf there). Since those objects become projectiles and cause damage to all of the objects they collide with, sooner or later the room is going to either have a legal space for the objects or a whole lot of ruined furniture. I'm assuming that the serious chain-reaction thing is an acceptable risk. If people aren't careful with their furniture, it's not my fault if they wind up with a lot of firewood. =)

Most bulky objects and pieces of furniture are dense, so it's only the smaller cases like stools that this issue arises for.

I've been thinking of a good way to represent multiple carry already. I've also already come up with a pretty good implementation, I think, but it'll take some work.

Grabbing anything would require mutual movement, meaning that if someone tried to walk left, someone else would also have to press their walk left button. Once all people had expressed an intention to walk left, they would all walk that way. If the people didn't mutually carry, it wouldn't go anywhere. I might relax that a little so people can have tugs of war, or make little Strength tests against the other people carrying, or something.
Grabbing

Sounds cool, although it might make it a really slow process moving things. Especially if they have to tell each other what direction. I guess if you made it so that an arrow was overlayed on top of anyone grabbing which points in the direction they've selected it would speed things up.
Although I'm not sure if that would qualify as increasing the RP atmosphere (in real life you can see/feel someone making a left movement, you don't need to constantly remind each other) or hinder it (by adding a magic arrow on top of the players).

I guess it doesn't really come up that much so it doesn't matter if it's a slow process.
That's indeed how it would work -- a little arrow.

I've also considered other solutions: for instance, if you're an ally, you might implicitly trust the person who does the first direction and automatically perform the same direction. It's still floating.
personally, i like the 'automatically drop the object, but if the object is not valid for that location, it tumbles randomly around the local area until it finds a valid tile to enter, causing blunt injuries to anyone it collides with.' idea.

i would think you could limit the amount of damage, considering the object would bang into most people's feet for a very short while until it stopped. and no reason why it can't stop at the feet of someone (same tile), is there? would be easier to pick up if that were the case.
That's exactly how it works. Beings are not included in the stack limit. When an object is "thrown into" a location, using the moniker that occurs in the code when an object has to tumble to find a legal position, each object in the location -- including the originally thrown object -- has a percentage chance of suffering damage. Beings are guaranteed to suffer damage.

The hypothetical "no legal move" situation I was talking about would occur if, say, someone entered a room where every tile was filled to its bulk limit with stools. Someone else shuts the door behind the animal and then the animal runs out of Stamina. The object lands in the tile and it isn't legal, so it bounces to the next tile, which isn't legal either, and so on and so forth infinitely. Every time the object bounced into the person who ran out of Stamina, the person would suffer an injury. Since the object would never stop bouncing because it would have no legal locations, it would kill the person unless someone opened the door and managed to make a legal location for the object to land in.

Under the current implementation, it can still be deadly to a given person, but because objects can suffer damage the chain reaction will eventually produce destroyed furniture and the tumbling cacophony will eventually end with all of the objects in legal positions.
Heh, don't drop that knife! Or rather that box of knives :-O

One potentially odd unforeseen consequence- players may use this to try to kill one another or break someone else's stuff (because players always try to do that). Wouldn't that be odd? Stacking up chairs to form an ambush....
Stacking up chairs to form an ambush....

Very Wacky Races...

or something. I just like Mutley.
Particularly devout readers of Newikitopia would have noticed that I updated the Sanctuary article to add the taboo of stepping over existing furniture when lifting a bulky object. ;-)
Jtgibson wrote:
The object lands in the tile and it isn't legal, so it bounces to the next tile, which isn't legal either, and so on and so forth infinitely.

that bothers me - i mean, come on Jt: you expect a squirrel dropping a small bag of nuts in the above situation (or JMurph's knife in his post below) to be pummeled to death by said object? definitely not going for reality there.

i'd rather expect the bag of nuts to have a chance of dropping on the squirrel's foot, and that's the end of it.
You can't violate the rules of physics -- you can't just drop a bag of nuts into a solid block of furniture and expect it to come to rest. However, the fact that you can enter a tile that is overloaded with objects is a nod to gameplay. I could just as easily prevent anyone from entering a tile that is at its stack limit, but I'd prefer not to do that because it destroys a bit of gameplay: instead of just walking to the back of your storeroom and picking up that stool you were going to sell, you'd have to move every single object to get to it. Great for realism, terrible for gameplay.

I don't think you're fully grasping just how extraordinarily rare this hypothetical situation really is. The only case in which it would happen is if someone deliberately made it happen. And in those cases where someone deliberately made it happen, their character would be the one that got killed by it, not anyone else's.

Besides, a bag of nuts is a small object and doesn't even apply to the lifting/carrying system. The system applies only to bulky objects like furniture. ;-)
You know, actually, I'm starting to consider preventing the player from entering the tile if it has over 50% of its stack limit, as opposed to whether it is at its stack limit. This would make it a pain in the ass to maximise space, as mentioned below, but would encourage people to make use of arches (double the stack limit in an arch tile) and containers (well above double the stack limit, though they can't carry bulky objects).