MegaMek / megamek

MegaMek is a networked Java clone of BattleTech, a turn-based sci-fi boardgame for 2+ players. Fight using giant robots, tanks, and/or infantry on a hex-based map.
http://www.megamek.org
GNU General Public License v2.0
297 stars 287 forks source link

Skid/sideslip PSR fail when flanking often makes unit unusable for rest of the movement phase #3044

Open mjog opened 3 years ago

mjog commented 3 years ago

Environment

Megamek 0.48.0 Clients: Windows Oracle Java 8 & Linux OpenJDK 11 Dedicated server: Linux OpenJDK 8 VM on a Linode-like web host Game setup: two players, ~100 units each, 2x2 64x64 maps, fully double blind, simultaneous movement enabled

Description

When a unit fails a PSR for skidding/sideslip when moving after a turn when running/flanking, it has a pretty good chance of becoming unusable for the rest of the movement phase. It's not possible to end it's turn, and can't move any further even if it has remaining MP (big problem for e.g. VTOLs in close combat).

This reliably happens on games with the map size given above (128x128 hexes), but will dramatically smaller number of units (have seen it with ~12 units per two players). Nothing shows up in the logs when it happens, but I'll keep an eye out for it again.

I've been trying to reproduce on a smaller map hosted locally (i.e. no dedicated server), but without success. I wonder if it's actually a race/timing problem given the size of the map and the fact that the dedicated server is on a VM 1000km away?

Files

This is the game settings we use: mjog-gameoptions.zip

mjog commented 3 years ago

Just happened again, there actually was a log message on the dedicated server:

20:46:38,559 ERROR [megamek.server.Server] {Packet Pump} 
receiveMovement(), line 4903 : error: server got invalid movement packet from connection 0, Entity: Peregrine Attack VTOL (Standard)
mjog commented 3 years ago

We've now encountered this with ground conventionals and Mechs skidding, so it's not just VTOL-specific.