branchsbox-tabletennis-vr/mastercancel
183 Commits over 731 Days - 0.01cph!
Changed serve grip behavior, now you hold then release, instead of just gripping.
Fixed game end not actually resetting state
If the paddle is hit by a player, and the ball hasn't bounced yet - award the serving team a point.
Better scoremaking decision for illegal shots
Use SetGameResult to send win/loss metrics
Fixed up Score Widget anchor for Red team
Fixed VrAnchor relativity
Fixed both teams informing the server of a bounce
Update .addon to include /UI/* folder
Truncate score widget names if they're too long.
Thanks, Eagle One Development Team
Re-fetch player elo's when a game starts
Set the default serving team when teams are constructed
Restyled score widget, added gamestatechanged event
Start recording game events for Elo
Let the game know if a player left the game too early, and also restart the game.
Record some scores
Add RankComponent, grab player's Elo if possible when they join
Add a cheap and nasty rank decision system
Add RankComponent.RankImage
Cleanup, create rank component on join
Grab rank icons from pool
Show player's rank on their nametag
https://files.facepunch.com/devultj/1b1411b1/sbox_5Agq9P2S3r.png
Add Ranking & Elo
- Start recording game events for Elo
- Add ranks, show them on the player's nametag
The game will end properly at 11 points. There's a few seconds between each point now too.
First draft at VR anchor editing. This is additive of any native playspace config you may have.
https://files.facepunch.com/devultj/1b1311b1/sbox_3ErsfgO5pd.mp4
Fixed client prefs error, added button styling, defaulted paddle angle to 90
Paddle Hand is visible - can turn it off in client prefs.
Cleaned up game loop, cleaned up serve decisionmaking
Hacky hack for preventing the paddle sound playing twice locally
Initialize anchor to prevent runtime errors
Add VrAnchor, started work on client anchor preferences.
Refactored paddle hit to include hit position, should fix sounds from non-local paddle impacts
Send a hint to the serving player if they fail to serve properly
Fix realm for returning the ball on a failed serve
Re-enable giving serving ball in game loop
Calculate drag properly, remember that we use kg/in³ and in/s² - fuck knows how what I was doing before worked in the slightest, this feels much better
Bounce a bit higher
Only use this paddle sound, it's cooler
Default Paddle Angle to 0
Client prefs will update paddle angle successfully
Fixed error on load with hand materials, fixed up hold position on right-handed serve
Remove UnitAttribute, renamed Flip Hands to Left-Handed, add MinMax and Step to PaddleAngle
Cleaned up hand switching, add save button to prefs
Remove hacky velocity code, set up ball velocity and angular velocity from hands
Support hand switching for the paddle
Send client prefs update when a value changes
Add ray helper for client preferences window, minor fixes.
Implement IHoldable, VrPlayerHand, very much a WIP
Simplify InGrip, InTrigger - simulate input to drop held entity if we can.
Delete FocusWorldPanel, it's unused
Set up client preferences system
Clients save the data as a cookie. When the game starts up the client informs the server of their preferences. Ideally this'll be good for flipping the paddle hand, changing the paddle angle and adjusting the VR anchor.
Work on ClientPreferencesWidget
Set up WorldInput ray
Gut out the ServeHand so stuff still compiles
Set up PaddleHand, ServeHand to use VrPlayerHand
Fixed up paddle ownership
Kill off IHoldable, removed more useless code
Fixed serve hand anim
Toggle ClientPreferences widget with joystick press
Hand rewrite, client prefs
Keep cleaning / refactoring, keep game logic seperated from everything else, isolate RPCs for future lag comp
Tidy up, remove any concept of serverside balls, isolate all physics logic to its own class
More sync fixes, got a better idea though
Adjust networking even more, this is very playable now, but I think I can still do better
Don't bounce on carpet, scale bounce sound w/ velocity
Client decides when it wants to take control, various other desync fixes
Haptic feedback when hitting ball
Make the ball completely clientside with a backing server entity for sync, make all of serving clientside too
Add tt_togglespectator cmd