Reflex Changelog 0.30.x

From Reflex Wiki
Jump to: navigation, search

Changelog 0.30.x - New! Improved! Netcode!

0.30.2, January 16th 2015

Overview (for clients)

The new Reflex netcode uses a combination of extrapolation and backwards reconciliation in attempt to keep what you're seeing consistent across clients and servers.

This lag compensation has an upper limit of 80ms -- if you have more than an 80ms ping, you'll need to lead by ping - 80ms. I.e, if your ping is 100ms, you'll need to lead by 20ms.

Our backwards reconciliation has the same limit -- if your enemy has a ping of over 80ms, they won't be able to shoot you from 500ms in the past.

We use these upper limits to avoid the drawbacks of each. For example, with extreme extrapolation values, you get error prone, warpy players. With extreme backwards reconciliation, you get laggy enemies shooting you long after you were safely behind a wall. In Reflex, these drawbacks are minimized.

We have several ideas which we'd like to investigate in the future which would further improve the netcode (notably client-side knockback prediction, client-side prediction of projectiles and compression). These features will require significant research and testing so for now, we're going to focus on other areas of the game.

We've had very good reports from our private testers with this netcode and we are open to any feedback you have. We are gamers too and we'd like the best possible solution for everyone!

Overview (for server admins)

The new netcode uses more CPU than previous versions so keep an eye on your CPU load (especially when running multiple servers on a single box).

We've increased sv_fps to 70 so bandwidth requirements have (almost) doubled.

Known Issues

  • Client crash at end of connecting to server.
  • Animations aren't working correctly with extrapolation
  • Players can push dead players around
  • Pickups can block jumppads/teleports/otherpickups
  • Players take 1 tick of damage on respawn after dying in lava
  • Players in lagstate freeze in mid air


  • Removed com_idlesleep command (AEon: removed with 0.29.0 already).
  • Improved connection stability client<->server (should fix issue with clients getting dumped from local server).
  • Implemented lag state. If client stops responding, they go into a lag state, when the return, they do a small download to catch back up to game. This also fixes disconnection issues when map is undergoing many simultaneous edits.
  • Increased default (and recommended) sv_fps to 70.
Game Balance
  • Reduced Ion Cannon damage (from 9 to 7)
  • Reduced Ion Cannon knockback (from 1.1 to 0.5)
  • Added per-weapon death messages
  • Added combat text for damage
  • Added Aerowalk/CPM22 greybox (thanks to Hubster and Preacher for letting us include this)
  • Added DP4 community map
  • Added XADM1 community map
  • Added end-game camera to xadm1
  • Added biased random spawns
  • Added player joined / left arena messages to HUD
  • Fixed pain effect particles based on damage.
  • Toned back IC impact effects.
  • Updated hit sounds.
  • Updated player landing sounds
  • Fixed problems with hit sounds not always being audible
  • Adjusted damage ranges for hit sounds
Bug Fixes
  • Smoothing on local client (aka error decay), this significantly reduces local player jitter when knocked around.
  • Lava damage now done when first entering lava, not after delay.
  • Fixed client side prediction of pickups, previously if you stood on pickup when it spawned, it would keep spawning on your local client even though not really there on server.
  • Fixed potential server lockup with grenade trajectory
  • Fixed very rare gamestate delta bug where variables weren't synced to client, will increase server CPU load though [:(]
  • Fixed crash bug which occurred when spectating a client that disconnected (if they were the only other client)
  • Fixed bug with server projectiles going through players (this also appeared as grenades bouncing off other players on the client).
  • Removed double jump flag on spawn.
  • +commands work on mousewheel now.
  • Clamped outgoing packets to 125 (previously it was unclamped, so at 1000fps you'd send 1000 packets/second).
Damage reporting
  • Created internal damage entity to help report damage type / amount etc in a more consistent way.
  • Ion cannon hit beeps now correctly reported at higher pings.
  • Damage numbers now displayed on screen.
  • Damage numbers for SG / Burstgun are grouped together and displayed in one number, currently toggleable via cl_text_group.
  • Added custom death messages by damage type.
  • The hostile pain sound is now only applied once when all 16 shotgun pellets hit one target.
  • Built lagmeter to help debug spikes cl_show_lagmeter 1
    • Scene delay is how far behind the server your client view is.
    • Extrapolation is how far ahead of time your client pushed the view
  • Built traffic meter to help debug tragic use cl_show_traffic 1
    • Shows outgoing traffic in red, incoming traffic in green
    • Shows dropped/missing packets in both directions (missing sent packets is only known once server informs you).

0.30.3, January 20th 2015


  • Fixed issue where download UI was stuck on screen after starting replay.
  • Replay editor no-longer crashes.
  • Hacked fix for replay editor to display weapon correctly.
    • Note: The replay editor still need some major maintenance after the netcode changes. Use it at your own risk.


  • Added force respawn -- after 5 seconds dead, players are automatically respawned.
  • Fixed missing health pickup on CPM22.
  • Burst Gun damaged reduced (from 18 per shot to 10).
  • Reduced bias of near spawns from 5 to 2.5.

Bug fixes

  • Players joining TDM games now are properly connected as spectator.
  • Fixed bug where connecting spectators could telefrag people.
  • Fixed bug where connecting spectators would make a spawn sound.
  • Added minimum time between jumps (to avoid mousewheel spam issues).
  • Fixed several bugs under extreme conditions at connection handshaking time.
  • Fixed rare crash bug which occurred during gamestate download.
  • Gamestate download speed is now greatly improved over high ping connections.


  • New installations of Reflex will now be installed to Steam/common/reflexfps to prevent stomping of RefleX.


  • Restored com_idlesleep (client only, despite name), stops CPU spinning in client, defaults to 1.
  • Changed internal timing method. This improved dedicated server responses. Please let us know if this effects jittering people were seeing in any way! (I don't think it's related.)
  • Adjusted servers to report players in format "name (steamid:ip)" to console.
  • Dedicated server title bar now contains useful information.
  • Dedicated server CPU load should be lower.

0.30.4, January 25th 2015

Bug fixes

  • client: reworked how grenade trajectory was recorded client side as it was the cause of many overnight crash reports.
  • server: titlebar should now only update once per second.