As a wild guess, you may not have disabled the Nagle algorithm on the TCP socket? Aggregation and delay of data in the outgoing queue does cause an effect that can be reported as "blinking". On Thu, Jul 16, 2020 at 03:27:18PM -0700, Darrell Root wrote: > Thank you! This bug is now resolved thanks to your help and Bill Balcerski’s > bug report! > > It looks like the explosion gets animated in the EXPLODE state. Then there is > a pause in the DEAD state allowing torpedoes to run out. But then I needed to > migrate the user to the OUTFIT state to get back to the “select ship/quit” > screen. I chose 1 second for each of those two states. > > I think most of the “client blinking” in the x86 client (that Bill reported) is > resolved. But I’m seeing a huge quantity of “stuff blinking” on the COW client > running in a Parallels VM on my Mac. > > I’m not sure whether the “stuff blinking” is an artifact of the Parallels VM or > a real problem. In the x86 client case, I was sending unnecessary updates to > the client, resulting in continuous redraws. > > If someone could pop up a COW client on a native Linux box, point it at [1] > netrek.networkmom.net, and report if they see planets/ships on the screen > blinking too much, I’d appreciate it. > > Darrell > > On Jul 16, 2020, at 2:19 PM, James Cameron <[2]quozl at laptop.org> wrote: > > Looking at Gytha's __init__.py which contains a paste of the protocol > definition; > > SP_PSTATUS, indicates PDEAD state > client animates explosion > > SP_PSTATUS, indicates POUTFIT state > clients returns to team selection window > > Looking at Gytha's PhaseFlight class, the event loop exits on POUTFIT > "# no longer flying". > > Looking at Gytha's nt_play_a_slot "keep playing on a server, until > user chooses a quit option, or a list option to return to the server > list", play continues until POUTFIT. > > On Thu, Jul 16, 2020 at 01:55:03PM -0700, Darrell Root wrote: > > Netrek-dev, > > My Swift Netrek server has a compatibility problem with COW and Windows > clients. > > When a person dies, the clients do not pop up the “choose team” screen. > So > people have to disconnect to respawn. > The clients also do not show the “you were killed by [WEAPON] from > [PLAYER] > message when connected to my server. > > What message/flag sent from the server triggers that window / message? > > I was assuming it was the whydead and whodead fields in the SP_YOU, but > so far > I haven’t been able to get it working. > > Here’s a sequence of SP_YOU messages from [1][3]pickled.netrek.org. > These can be > assumed to be correct. I’ve put the death and respan in BOLD > > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags > 33562624 damage > 64 shieldStrength 100 fuel 10000 engineTemp 0 weaponsTemp 0 whyDead 0 > whodead > 6" > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags > 33562624 damage > 103 shieldStrength 100 fuel 10000 engineTemp 0 weaponsTemp 0 whyDead 2 > whodead > 6" > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags > 33562624 damage > 103 shieldStrength 100 fuel 9980 engineTemp 5 weaponsTemp 0 whyDead 2 > whodead > 6" > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags > 33562624 damage > 103 shieldStrength 100 fuel 9960 engineTemp 10 weaponsTemp 0 whyDead 2 > whodead > 6" > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags > 33562624 damage > 103 shieldStrength 100 fuel 9940 engineTemp 15 weaponsTemp 0 whyDead 2 > whodead > 6" > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags > 33562624 damage > 103 shieldStrength 100 fuel 9924 engineTemp 19 weaponsTemp 0 whyDead 2 > whodead > 6" > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags > 33562624 damage > 103 shieldStrength 100 fuel 9908 engineTemp 23 weaponsTemp 0 whyDead 2 > whodead > 6" > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags > 33562624 damage > 103 shieldStrength 100 fuel 9892 engineTemp 27 weaponsTemp 0 whyDead 2 > whodead > 6" > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags > 33562624 damage > 103 shieldStrength 100 fuel 9876 engineTemp 31 weaponsTemp 0 whyDead 2 > whodead > 6" > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags > 33562624 damage > 103 shieldStrength 100 fuel 9860 engineTemp 35 weaponsTemp 0 whyDead 2 > whodead > 6" > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags > 33562624 damage > 103 shieldStrength 100 fuel 9848 engineTemp 38 weaponsTemp 0 whyDead 2 > whodead > 6" > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags > 33562624 damage > 103 shieldStrength 100 fuel 9836 engineTemp 41 weaponsTemp 0 whyDead 2 > whodead > 6" > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags 2049 > damage > 0 shieldStrength 100 fuel 10000 engineTemp 0 weaponsTemp 0 whyDead 2 > whodead 6" > "Received SP_YOU 12 1 hostile 13 war 0 armies 0 tractor 0 flags > 33556481 damage > 0 shieldStrength 100 fuel 10000 engineTemp 0 weaponsTemp 0 whyDead 2 > whodead 6” > > Here’s a sequence of SP_YOU messages from [2][4]netrek.networkmom.net. > > "Received SP_YOU 12 16 hostile 14 war 14 armies 0 tractor 0 flags 2048 > damage > 78 shieldStrength 100 fuel 9460 engineTemp 5 weaponsTemp 0 whyDead 0 > whodead 0" > "Received SP_YOU 12 16 hostile 14 war 14 armies 0 tractor 0 flags 2048 > damage > 118 shieldStrength 100 fuel 9460 engineTemp 5 weaponsTemp 0 whyDead 2 > whodead > 0" > "Received SP_YOU 12 16 hostile 14 war 14 armies 0 tractor 0 flags 2048 > damage > 118 shieldStrength 100 fuel 9460 engineTemp 5 weaponsTemp 0 whyDead 2 > whodead > 0" > "Received SP_YOU 12 16 hostile 14 war 14 armies 0 tractor 0 flags 2048 > damage > 118 shieldStrength 100 fuel 9460 engineTemp 5 weaponsTemp 0 whyDead 2 > whodead > 0” > > …large number of identical messages deleted… > > "Received SP_YOU 12 16 hostile 14 war 14 armies 0 tractor 0 flags 2048 > damage > 118 shieldStrength 100 fuel 9460 engineTemp 5 weaponsTemp 0 whyDead 2 > whodead > 0" > "Received SP_YOU 12 16 hostile 14 war 14 armies 0 tractor 0 flags 2048 > damage > 118 shieldStrength 100 fuel 9460 engineTemp 5 weaponsTemp 0 whyDead 2 > whodead > 0" > "Received SP_YOU 12 16 hostile 14 war 14 armies 0 tractor 0 flags 2048 > damage 0 > shieldStrength 100 fuel 10000 engineTemp 0 weaponsTemp 0 whyDead 0 > whodead 0” > > (Looks like I need to fix whodead, but 0 is valid so I don’t think > that’s the > cause). > > Could it be PFREFIT? > > For reference, here’s the p_flags fields. While my current > implementation is > missing red/yellow/green, I don’t see anything relevant. > > /* bit masks of p_flags */ > #define PFSHIELD 0x0001 /*!< shields are up */ > #define PFREPAIR 0x0002 /*!< repairing damage or shields */ > #define PFBOMB 0x0004 /*!< bombing planet while orbiting */ > #define PFORBIT 0x0008 /*!< orbiting planet p_planet */ > #define PFCLOAK 0x0010 > #define PFWEP 0x0020 > #define PFENG 0x0040 > #define PFROBOT 0x0080 > #define PFBEAMUP 0x0100 > #define PFBEAMDOWN 0x0200 > #define PFSELFDEST 0x0400 > #define PFGREEN 0x0800 > #define PFYELLOW 0x1000 > #define PFRED 0x2000 > #define PFPLOCK 0x4000 /* Locked on a player */ > #define PFPLLOCK 0x8000 /* Locked on a planet */ > #define PFCOPILOT 0x10000 /* Allow copilots */ > #define PFWAR 0x20000 /* computer reprogramming for > war */ > #define PFPRACTR 0x40000 /* practice type robot (no > kills) */ > #define PFDOCK 0x80000 /*!< docked to a base, p_dock_with > valid */ > #define PFREFIT 0x100000 /* true if about to refit */ > #define PFREFITTING 0x200000 /* true if currently refitting > */ > #define PFTRACT 0x400000 /* tractor beam activated */ > #define PFPRESS 0x800000 /* pressor beam activated */ > #define PFDOCKOK 0x1000000 /* docking permission */ > #define PFSEEN 0x2000000 /* seen by enemy on galactic > map? */ > /*#define PFCYBORG 0x4000000 a cyborg? 7/27/91 TC */ > #define PFOBSERV 0x8000000 /* for observers */ > #define PFTWARP 0x40000000 /* isae -- SB transwarp */ > > References: > > [1] [5]http://pickled.netrek.org/ > [2] [6]http://netrek.networkmom.net/ > > _______________________________________________ > netrek-dev mailing list > [7]netrek-dev at us.netrek.org > [8]http://mailman.us.netrek.org/mailman/listinfo/netrek-dev > > -- > James Cameron > [9]http://quozl.netrek.org/ > _______________________________________________ > netrek-dev mailing list > [10]netrek-dev at us.netrek.org > [11]http://mailman.us.netrek.org/mailman/listinfo/netrek-dev > > References: > > [1] http://netrek.networkmom.net/ > [2] mailto:quozl at laptop.org > [3] http://pickled.netrek.org/ > [4] http://netrek.networkmom.net/ > [5] http://pickled.netrek.org/ > [6] http://netrek.networkmom.net/ > [7] mailto:netrek-dev at us.netrek.org > [8] http://mailman.us.netrek.org/mailman/listinfo/netrek-dev > [9] http://quozl.netrek.org/ > [10] mailto:netrek-dev at us.netrek.org > [11] http://mailman.us.netrek.org/mailman/listinfo/netrek-dev > _______________________________________________ > netrek-dev mailing list > netrek-dev at us.netrek.org > http://mailman.us.netrek.org/mailman/listinfo/netrek-dev -- James Cameron http://quozl.netrek.org/