unity3d-opencog-game
unity3d-opencog-game copied to clipboard
[Enhancement] Infinite Falls
- Purpose: To minimize the amount of time our user spends restarting the game system, it is proposed that we introduce a script to detect infinite falls, and respawn game entities above the map so they can land safely upon it again.
Use Cases
- The robot is currently making hilarious planning errors where it will build on top of itself and, when the collision mesh for the ground refreshes, it will no longer be standing on any triangles. Summarily, it will fall through the world.
- Option 1: respawn the robot at a height above the map and let it fall onto the tile it had previously been occupying.
- Option 2: respawn the robot at its original spawn location, but at a height so it does not spawn inside a block
- Option 3: Do one of the above, but detect the block to place it at instead of letting it fall.
- Option 4: Alternative solution to detecting infinite falls: detect whether the robot is submerged in a tile in the motor controller. If the robot can be observed to be submerged in a mesh, gravity should not take effect, and the robot should not be marked as falling.
- Many maps are only a tile thick. This tile can be removed and the robot or player can plummet.
- Option 1: Resolve as in Use Case 1.1, 1.2, or 1.3. Assume that the player will press forward to alter their landing location to keep themselves from plummeting infinitely; and that they will rescue the robot should it end up plummeting infinitely (by building a block underneath it)
- Option 2: Alternative solution to detecting infinite falls: make the bottom of the map indestructible (This can also naturally solve 1 if it has its own independent collider, and we simply presume the player can dig the robot out again. However, if the map is deep, this could prove ridiculous).
- It is possible to simply walk off the side of the map.
- Option 1: resolve as in Use Case 1 and 2.1.
- Option 2: Resolve as in Use Case 1 and 2.2 (so there will always be a ground that is indestructable), and create a bounding box at the map edges so that it is impossible to walk off the map