Page MenuHomeSchine - Phabricator

Starmade | carrier recall drones unable to redock properly and get stuck in a loop caused by non physical rails
Closed, FinishedPublic

Description

Drones that are being recalled, often get stuck in a loop of "check for collisions" "move away if too close", this causes them to almost never get close enough to the pick up point and trigger an auto dock event.

The collision checks are thrown by the non physical rails and potentially the boundary box of the main ship itself but that's harder to see.
I've put rails far, far away from the main ship yet the same thing still happens, it's also obvious that the non physical rails are being considered in collision checks.

Example, deep within the boundary box of the main ship:


Example, at the edge of the boundary box of the main ship:

It also depends on the angle, often when they come from the point where nothing would obstruct them, they manage to quickly dock.

Details

Task Type
Bug
Testing Results
Affected Gamemode(s)
Single and Multi
Reproducible
Yes
Last tested (version)
0.19616 (Dev)
Category
Fleets
First occurrence (version)
0.19592
Hardware/Software/System
OS-Specific
No
Hardware-Specific
No
Video Card Vendor
uncertain
Steps to reproduce

Included a blueprint, if the drone comes flying in from the top, it will often succeed docking, but from almost all other angles it won't.

  1. make a fleet out of that ship and its 1 drone
  2. try out carrier recall from different angles and notice how the pick up point/rails are causing "collisions"
Tester information (Internal use only)

I'm unsure if the fix for this caused it but docked entities refuse to move on rails now. You can dock and undock them, they just don't move.

Tried in MP and SP, same result. Also tried with normal rails. Should hopefully be easily reproduced.

Serverconfig (server.cfg)
<replace this line with the file content>
Clientconfig (settings.cfg)
<replace this line with the file content>

Event Timeline

lancake updated the task description. (Show Details)Mar 14 2016, 2:01 PM
lancake shifted this object from the S1 Public space to the S3 Starmade space.
lancake changed the visibility from "Custom Policy" to "Public (No Login Required)".
lancake changed the edit policy from "Task Author" to "Starmade (Project)".
lancake changed Category from none/unspecified to Fleets.
lancake set First occurrence (version) to 0.19592.
lancake edited Serverconfig (server.cfg). (Show Details)
lancake edited Clientconfig (settings.cfg). (Show Details)
lancake set Last tested (version) to 0.19604 (Dev).
lancake edited Steps to reproduce. (Show Details)
lancake added a subscriber: lancake.
lancake created this task.
lancake raised the priority of this task from to Urgent.
Restricted Application added a project: Issue Navigation. · View Herald TranscriptMar 14 2016, 2:01 PM
Restricted Application added a subscriber: AndyP. · View Herald Transcript
lancake set Task Type to Bug.Mar 14 2016, 2:01 PM
lancake set OS-Specific to No.
lancake set Hardware-Specific to No.
lancake set Video Card Vendor to uncertain.
lancake set Affected Gamemode(s) to none/unspecified.
lancake set Reproducible to uncertain.
lancake moved this task from New / Unconfirmed to Confirmed on the Issue Navigation board.
lancake changed the task status from Open to In Queue (Game).
lancake claimed this task.
Restricted Application edited projects, added Starmade, Game Development; removed Issue Navigation. · View Herald TranscriptMar 14 2016, 2:01 PM

This is true even when the pickup block is much more accessible. Ships are unable to dock no matter the size/position of rail unless they get lucky and dock thanks to the inertia.

schema added a subscriber: schema.Mar 17 2016, 10:16 PM
schema changed the task status from In Queue (Game) to Resolved.
Restricted Application edited projects, added Quality Assurance; removed Game Development. · View Herald TranscriptMar 17 2016, 10:16 PM
lancake changed the task status from Resolved to In Queue (Game).Mar 18 2016, 1:14 PM

-QA Testing-

I'm unsure if the fix for this caused it but docked entities refuse to move on rails now. You can dock and undock them, they just don't move.

Tried in MP and SP, same result. Also tried with normal rails. Should hopefully be easily reproduced.

Restricted Application edited projects, added Game Development; removed Quality Assurance. · View Herald TranscriptMar 18 2016, 1:14 PM
lancake changed Last tested (version) from 0.19604 (Dev) to 0.19609 (Dev).Mar 18 2016, 1:14 PM
lancake edited Tester information (Internal use only). (Show Details)
lancake raised the priority of this task from Urgent to Release Blocker.
schema changed the task status from In Queue (Game) to Resolved.Mar 18 2016, 4:56 PM

caused by different issue (not on phab) where dones would get NaN values if they immediately undock after docking without completing the full docking procedure and initializing their matrices

Restricted Application edited projects, added Quality Assurance; removed Game Development. · View Herald TranscriptMar 18 2016, 4:56 PM
lancake closed this task as Closed.

-QA Testing-

Pickup points too close to the main ship still cause a "loop" but that's to be expected.
The rest is fixed, non physical rails don't trigger collision warnings anymore and in all cases I've tested it docks just fine.

Restricted Application removed a project: Quality Assurance. · View Herald TranscriptMar 20 2016, 1:17 AM
Restricted Application removed a subscriber: AndyP. · View Herald Transcript
lancake changed Affected Gamemode(s) from none/unspecified to Single and Multi.Mar 20 2016, 1:18 AM
lancake changed Reproducible from uncertain to Yes.
lancake changed Last tested (version) from 0.19609 (Dev) to 0.19616 (Dev).
lancake renamed this task from carrier recall drones unable to redock properly and get stuck in a loop to carrier recall drones unable to redock properly and get stuck in a loop caused by non physical rails .Mar 20 2016, 5:00 AM
AndyP moved this task from Unclassed to Archived on the Starmade board.Mar 20 2016, 9:15 AM
Restricted Application removed a subscriber: AndyP. · View Herald TranscriptMar 29 2016, 12:00 PM

Before I go cluttering up the bug tracker, I wanted to ask here as a comment first.

Below is a gif of a mining carrier, where the mining drones are having trouble docking in the same manner as is described here. The rail docker on these drones is located on the very end of the nose, to minimize collision opportunities. The drones dock just fine if they simply continue moving forward nose first (which is the front of the ship).

If there are no adjacent drones either on approach or in adjacent docking ports, then they dock fine. There's plenty of room for them to dock, they just rapidly tilt 90 degrees at the last second which aborts what would otherwise be a successful docking.

I'm currently running v0.197.51, and this was recorded last night, on v0.196.24.

Should this be its own bug report, or should this one be reopened?

Those are some really short pickup rail lines in your gif... I would try making them longer.

Those are some really short pickup rail lines in your gif... I would try making them longer.

But isn't that just a work around for this bug? If the drones don't abruptly turn, they dock fine. A long pickup line is functionally okay, but when building at scale, that's a lot of extra work. This carrier, for example, carries 64 drones.

Finally, the longer the pickup lines, the easier it is to fly past idle ships and magnetically pick them up as docked entities without intending to do so. It's just messy and unnecessary just to work around the fact that the AI isn't yet smart enough to determine it's own collision area beyond a rough cube shape, which seems to be the case today. It perceives the space around the nose of those drones as being 'part of the ship' and so it tries to avoid a collision. If it was smart enough to know that is unoccupied space, it wouldn't swerve.

Those are some really short pickup rail lines in your gif... I would try making them longer.

But isn't that just a work around for this bug? If the drones don't abruptly turn, they dock fine. A long pickup line is functionally okay, but when building at scale, that's a lot of extra work. This carrier, for example, carries 64 drones.
Finally, the longer the pickup lines, the easier it is to fly past idle ships and magnetically pick them up as docked entities without intending to do so. It's just messy and unnecessary just to work around the fact that the AI isn't yet smart enough to determine it's own collision area beyond a rough cube shape, which seems to be the case today. It perceives the space around the nose of those drones as being 'part of the ship' and so it tries to avoid a collision. If it was smart enough to know that is unoccupied space, it wouldn't swerve.

You'd have to be really unlucky to get your pickup points within 3 block radius of those ship's dockers. The drones most likely turn to properly orient their docker with the pickup rail, since that's what actually "connects", not when the drone touches the pickup point.

In T1238#53620, @Keptick wrote:The drones most likely turn to properly orient their docker with the pickup rail, since that's what actually "connects", not when the drone touches the pickup point.

Hmm. The drones dock straight ahead, so there is no need to orient the docker with the rail. If they perceive a need to do so, that itself feels like a bug. When there are no nearby drones, they don't exhibit this behavior. They only do this when an adjacent docking location is occupied (e.g. crowded).

Restricted Application added a project: Fleets. · View Herald TranscriptMar 10 2017, 6:15 PM