Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
Used in:
Used in:
Used in:
,Indexed by "joinIndex", we try to compress the "single player input" into 1 word (64-bit for 64-bit Golang runtime) because atomic compare-and-swap only works on 1 word. Although CAS on custom struct is possible in Golang 1.19 https://pkg.go.dev/sync/atomic@go1.19.1#Value.CompareAndSwap, using a single word is still faster whenever possible.
Indexed by "joinIndex", same compression concern as above
Used in:
Jargon reference https://www.thegamer.com/fighting-games-frame-data-explained/ ALL lengths are in world coordinate
Used in:
for offender
Used in:
,Used in:
"velX" and "velY" is used to record the accumulated effect by inertia and accelerations (including gravity)
this is the instantaneous scalar attribute of a character, different from but will be accounted in "velX" and "velY"
by design a standalone field only inferred by the collision result of "applyInputFrameDownsyncDynamicsOnSingleRenderFrame" instead of "characterState", because we need check the transition for "characterState" from this field, i.e. "inAir (prev -> curr)"
number of frames elapsed in the current character state
like "inAir", it’s by design a standalone field only inferred by the collision result of "applyInputFrameDownsyncDynamicsOnSingleRenderFrame" instead of "characterState", because we need check the transition for "characterState" from this field, i.e. "onWall (prev -> curr)"
like "inAir", it’s by design a standalone field only inferred by the calc result of "applyInputFrameDownsyncDynamicsOnSingleRenderFrame" instead of "characterState"
Used in:
I don't know how to mimic inheritance/composition in protobuf by far, thus using an array for each type of bullet as a compromise
Indexed by "joinIndex", same compression concern as stated in InputFrameDownsync