Moving objects doesn't respect to collisions

Bug #178576 reported by Alexey Torkhov
2
Affects Status Importance Assigned to Milestone
Cyphesis
Invalid
Undecided
Unassigned
Ember
Fix Committed
Undecided
Erik Ogenvik

Bug Description

Moving objects doesn't respect to collisions. For example, on amber server you can move boulders whereever you want, even if on that place there is an other entity.

Revision history for this message
Erik Ogenvik (erik-ogenvik) wrote :

This is because the cyphesis server currently only has very rudimentary collision detection. Al knows more on how to tackle this.

However, it also touches on how Ember allows for object movement. Currently movement of entities in Ember works like this:
1) When clicking on any entity except the world a "move" menu option is presented.
2) After choosing "move", Ember lets the player move the object on the client. No information of this is sent to the server yet.
3) After the player has moved the object he/she presses the left mouse button (or esc to abort the movement). An op is sent to the server telling it to try to update the "pos" attribute of the moved entity. Ember also starts a three second timer event.
4) If the server allows the movement, the updated "pos" attribute is transmitted to all clients (including our own), and the timer event is aborted. However, if the server doesn't allow the movement, nothing is transmitted, and the timer event will trigger. This event will reset the position of the entity to the original one. You can see this behaviour if you try to move a large structure such as a tree when logged in as a normal user (an admin user can move everything).

This works pretty well, but it's a bit strange that the "move" option appears on stuff that very much can't be moved by the user (any large structure). If I remember correctly the ability to move something is determined by the mass of the entity being moved. So if the client knew the max mass for movable entities for the current avatar, we could disable the "move" option in the Ember menu for nonmovable entities. I assume it's inferred from the "strength" attribute?

Changed in ember:
status: New → Confirmed
Revision history for this message
Al Riddoch (alriddoch) wrote :

The server side collision detection in cyphesis does lack this capability by design. In fact it may in some cases be desirable for a collision system to have this property. As I improve the collision system I hope to make it more configurable, and don't anticipate that many games will require collision detection between two moving objects.

Revision history for this message
Erik Ogenvik (erik-ogenvik) wrote :

Though the issue here isn't between two moving objects, it's when the player moves and places one object on the client.

Revision history for this message
Al Riddoch (alriddoch) wrote :

Oops, I missinterpreted the bug title. The collision system in cyphesis only handles objects in motion, with a velocity, and when they collide with static objects. It does not attempt to deal with intersection of static objects, because there are too many situations where intersection is desirable or required. World editing tools should provide the option to automatically prevent intersection of newly placed objects.

Revision history for this message
Erik Ogenvik (erik-ogenvik) wrote :

Ember already has an integrated collision detection system (Opcode) which currently is used only for mouse picking, but which could easily be used for this. I'll look into it.
The move functionality in Ember however both serves as a world authoring tool and a regular user functionality. Normal uses should also be able to move smaller stuff (acorns, clothing etc.).
Any thoughts on how to on the client recognize those entities that can't be moved for the current user (and thus disabling the move menu option for those)?

Revision history for this message
Al Riddoch (alriddoch) wrote :

I am marking this as invalid for cyphesis for the reasons explained.

Changed in cyphesis:
status: New → Invalid
Revision history for this message
Erik Ogenvik (erik-ogenvik) wrote :

While it's indeed correct to mark this as invalid for cyphesis when dealing with world authoring, I do think it's a valid bug for normal users. I.e. if a user moves and object, or drops an object from inventory, it should correctly interact with the geometry in the world.
However, I think that this is something which will be solved once we get a correct physics simulation in the server.

Changed in ember:
assignee: nobody → Erik Ogenvik (erik-ogenvik)
status: Confirmed → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.