branchsbox-tabletennis-vr/mastercancel
183 Commits over 731 Days - 0.01cph!
Remove debug BallSpawnThrowResponse
Quick hack to update client values to server values when authority changes to you
Pack our ball velocity into the usercmd as well so the server/other client can take it over
Properly fixed up paddle hit / ball bounce reporting
Fixed SinceLastHit never being set on the server
Fix nametag rotation in VR
Server and other clients know about ball bounces and paddle hits
Delete active pawn if we're becoming a spectator
Upped maxplayers
Wrap debug code around DebugBallPhysics
Cleanup, decreased spectator fly speed
Add SpectatorPawn, SpectatorCamera, assign player as spectator if teams are full.
Alternating client authoritative networking
* Implement an alternating client authoritative model - whichever clients side of the table the ball is on gets complete authority over the ball position and velocity.
* Physics are simulated entirely on the current authoritative client now. Pack the ball position into the UserCmd and the server sets the ball entity's position so the other client can see it and takeover when authority switches.
* Substep the physics at fixed(ish) 0.005ms steps within FrameSimulate's delta time, each step moves the ball and checks against the paddle sweep. This may be unconventional but it gives us a perfect result and never misses.
* Fix paddle collision sometimes sending the ball backwards because of a negative velocity length, added an abs.
Parse HMD rotation and show it on the head model
Increase drop ball threshold for grip
BallPhysics in server tick temporarily
Upped decibels on most of the sounds
Cleanup, fixed inverted finger presets, knuckles users rejoice
Programmatically assign audio reverb
Serve paddle sound differs from hit responses
Style the name tags based on team
Fixed who gets the score after 1 bounce
More work on solidifying game flow
Quick and nasty reset button on the VR controller
Teach the player about serving if they can't serve properly
Bunch of work on game state and game init
Split out game debugging stuff, added more debug options
Hooked up paddle hits, work on deciding who wins a round
Add blue hand material override
Can hold the ball, and throw it
Serve the data properly instead of speculating
Add preset animations for non-knuckles users
Network finger data so you can flip off your opponent
Set GrabMode correctly, hands are now animated
Parse finger data, push it to anim parameters
Re-save out the paddle sound
Kill paddle serverside, stops error on game destroy
Fixed up UI anchor position
Add Game.OnBallBounce, track ball bounce count for game loop
Add serving hand for testing
Cleanup, network GameState. Document shit a bit more.
Define game states
Clear team score on Team.Reset
Moved game loop code into specific partial class, introduce OutOfBoundsZ
Don't render the head model if our camera viewer matches the client