MS Ryz0n  [developer] Oct 11, 2013 @ 10:24am
Public Performance Beta (10/11/2013)
PUBLIC BETA NOTES
To opt into this beta, right click on the game in your library, select "Properties", then choose the beta from the drop-down in the beta tab. You may need to restart steam to see the beta visible. The game will automatically update. As always, should you run into any issues, it may be advisable to delete your player profile in game and create a new one.

From Skybox Labs: All of the performance changes we made to this patch are compatible with users of the live 2.8 patch, so you can opt into this public beta and play against people with 2.8 without triggering MP desyncs. This is the first time we have ever attempted to do this. We found the first 2.4 public beta was a bit of a failure because people had troubles finding anyone to play. Once we feel safe moving forward with these changes and dial in the most appropriate values, we'll release it officially as a 2.9 patch for everyone. Please note, if playing multiplayer games with people not in the beta, some of the performance features may not be noticeable since the game requires all players to be in sync.

ELO CHANGES
Players with bugged ELO values in the millions (all ~40 of you) are encouraged to run the beta. Playing a game on it will reset the value to your previous ELO before the erroneous value.

GENERAL PERFORMANCE
  • Main game processing loop was rewritten preventing several redundant draw calls, especially involving the UI and responding to mouse clicks. This contributed to waypoint lag and is eliminated now.

  • Optimized various special case code branches to improve loop speed.

  • Frame rates have new constraints to decouple performance from game impact:
    • Minimum frame rate for the game is 5fps. Whenever the frame rate dips below this threshhold, Command processing is aborted in order to render a frame. The original game had an effective minimum frame rate of 0fps, which allowed players to endlessly queue expensive commands stalling the game for everyone. This should remove command lag caused by rapidly spamming long palisade walls or rapidly queuing a lot of farms.
    • Max frame rate is 60fps

  • The game throttling timers use a much higher precision timer now so the game should feel more stable now when you can easily manage 60fps. For example, the original timer only had a resolution of approximately ~1-5ms, making it impossible to have a perfect 60fps which requires16.66667ms per frame.

  • We reduced forced the UI update rate from 10fps to 1fps. The game also updates the UI whenever information changes, such as resources, or construction/research progress, so your effective UI framerate is much higher. This should improve general performance for low end machines by reducing unnecessary UI redraws.

  • Advanced Users Only Disclaimer: Editing the registry is not recommended for normal users and can result in system instability if done improperly. Those who are comfortable making changes can customize these settings in the registry and entries are created automatically if they don't exist. If you have a slower machine that can't keep up to 60fps, then changing the maxfps to 30 can improve stable gameplay experience. HKEY_CURRENT_USER > Software > Microsoft > Age of Empires II HD
    • MinFps (minimum 0.00, defaults to 5.00)
    • MaxFps (minimum 1.00, defaults to 60.00)
    • UiFps (minimum 0.00, defaults to 1.00)

  • The actual frame rate in the game is now accurately measured by FRAPS. The reason why FRAPS frame rates would show much higher values at times was because of all the redundant draw calls.

  • The 2.8 patch introduced a new option that allows users to enable/disable the 3D water. If you suffer from performance problems, disabling this is a good idea. The 3D water performance affects all maps, including land only.



SCROLLING

  • Diagonal Scrolling now perpendicular with map edges, so it should feel more natural now.

  • Diagonal Scrolling speed is now the same speed as scrolling horizontally or vertically. Pythagoras for the win!

  • Scrolling is now using higher precision timers that should mitigate jumpiness. Unfortunately this is still a problem if you can't quite maintain the max frame rate. 60fps feels really smooth, but if it dips down to 59fps even for a moment, the scrolling will feel jumpy. Maintaining a stable frame rate by adjusting the maximum lower can help mitigate these issues.


SPRITE OPTIMIZATIONS

The original retail game's database defining all the animations for all the units and structures has been optimized. Previously some objects were drawing redundantly, and many objects were attempting to reference several graphics that didn't exist. As a result, it had detrimental effects on performance in certain situations with many items on screen. One of the worst offenders was the wall which drew itself twice, plus one shadow, plus one non-existent graphic. If you fill a 1920x1200 screen with walls, it could drop a game from 60fps down to 9fps. Post fix, we’re seeing maximum drops down to about 35fps. This was accomplished by writing code to debug all the sprites in real time and fix the database. So be on the lookout for any missing graphics and submit a support ticket if you see any.

Last edited by MS Ryz0n; Oct 11, 2013 @ 10:39am