Team Comtress 2 Versions Save

Team Fortress 2, but with a lot of fixes, QoL improvements and performance optimizations!

0.1.7

3 years ago

Team Fortress 2 changes

  • Added thread priority boosting to job threads during a job run and notify
  • Optimized particle data parsing which improves load times
  • Optimized HUD rendering
  • Restricted cl_interp_ratio to integer values, so aligning to tick is enforced in all systems
  • Optimized frame limiting logic to get more accurate timings (more stable fps_max and server framerate)
  • Re-introduced an optimization to target IDs
  • Disabled flexes on in-game player model HUD elements (scoreboard and player status)
  • General optimizations to player model HUD elements
  • Forced class menu player model to be invisible when class menu is not open
  • Added a cache to decorated items for their wear, which was being checked every frame
  • Experimentally allow for client side use of their local inventory for their own player, for optimization purposes
  • Optimized GPU thread priority API to only be set once per valid device state

Team Comtress 2 fixes

  • Fixed cl_updateinterval not being used properly
  • Removed console warnings about missing economy and particle definitions
  • Fixed HDR fix from 0.1.6 causing overhead each frame
  • Updated the localization files

0.1.6

3 years ago

Team Fortress 2 changes

  • Made context switch return immediately if there was no thread to switch to
  • Greatly optimized thread events:
    • Waiting for 0 seconds (just initial check) no longer enters a sleep condition
    • Fixed many more cases of freezes, which allows for restoring the more optimal infinite sleep condition state
    • Waiting for all events now does not take another, recursive lock in order to handle event listeners
  • Greatly optimized sound loading from cache to correct order of loading and reduce redundant cache interaction
  • Implemented Steam Chat filter button in advanced options
    • Fixes advanced options not displaying options past "Enable text chat"
    • Button is implemented with improved style compared to live TF2
  • Fixed various issues with the game alt-tabbing on startup and map loads
    • Fixed 3 redundant material cache + resource eviction upon map load
    • Fixed HDR being off on game start, causing HDR to be initialized upon loading an HDR map
    • Fixed mat_debugalttab not reporting anisotropic filtering values correctly
    • Fixed the initial window resolution set causing Source to think the resolution changed, which makes it reinitialize the window a second time
    • Fixed anisotropic level being reset back to 1 and then back to the original value some time later when the render state was reset on init
  • Made evict managed resources queued (taken from CS:GO)
  • Enforced hardware sync even if the render thread finished quickly on the CPU

Team Comtress 2 fixes

  • Cleaned up launch .bat scripts
  • Fixed some issues with fixed recoil spread
    • Fixed recoil spread was enabled even when there was no fixed seed
    • Fixed Minigun recoil spread seed not being per bullet when fixed
    • These two issues being fixed should resolve Minigun accuracy problems
  • Removed new shader pathways introduced in 0.1.4, as they were faulty

0.1.5

3 years ago

Team Fortress 2 changes

  • Fixed a crash when a sub rect material does not specify a shader due it using a DX6 shader as a fallback, which doesn't exist anymore

Team Comtress 2 fixes

  • Fixed a crash when playing demos
  • Fixed Jungle Inferno upgrades showing up for every weapon in MvM

0.1.4

3 years ago

Team Fortress 2 changes

Game Changes

  • Added Ultimate TF2 Visual Fix Pack
    • Note: at this current time, these asset fixes are not compatible with pure servers. This will be fixed in a future release.
  • Fixed many reflect bugs (@wgetJane)
    • Fixed many reflect kill icons not showing: stunball, ornament, cleaver, flare, arrow headshot, burning arrow, burning arrow headshot
    • Fixed many reflected projectiles not showing the correct team color: shattered ornament particle effect, stunball trail, ornament trail, flare, crossbow bolt, repair bolt
    • Fixed reflected Sandman not damaging
    • Fixed reflected ornament not causing bleeding
    • Fixed repair bolts not healing buildings
    • Fixed reflected Scorch Shot flares not dealing splash damage on impact with a non-player surface
  • Fixed slopes sometimes cancelling momentum from blast jumping/surfing (@namishere)
  • Fixed Flamethrower compression blasting the Passtime ball not being lag compensated correctly
  • Crit canteen sentry firing speed now actually is a 200% base bonus, rather than 250%.
    • It's not entirely clear why the bonus was 250% instead of the described 200%, but it was likely a result of trying to convince the broken firing speed code to work noticeably with crit canteens. Now that firing speed is fixed, this is no longer necessary. Furthermore, because TC2 replicates Wrangler firing speed from live TF2, by changing the bonus depending on the gun, crit canteens will still have strictly better firing speed than the wrangler in all cases (except mini sentries), which keeps Widowmaker builds viable.
  • Fixed Gunslinger prediction being incorrect due to lack of lag compensation (@wgetJane) (https://www.youtube.com/watch?v=jM0C-Hyq2Es)
  • Fixed hardcoded space on localized item quality names (@RockyTV) (https://user-images.githubusercontent.com/1251067/95074826-7728d280-070f-11eb-9127-616fb6545783.png)
  • Fixed air dash issues on classes other than Scout (@FlaminSarge)
  • Limited sv_client_max_interp_ratio to 2, so that server operators cannot set it to an unideal value of 1 (@Zionner)
  • Fixed references to DX8 shaders which were missing, thus causing crashes
  • Implemented support for DX8/lowend versions of the following shaders within DX9 mode: Cable, Modulate, ParticleLitGeneric, WorldVertexAlpha
  • Made console still open when modifier keys are down

Optimizations

  • Removed 3 expensive Steam realtime API calls from client-side player creation
  • Removed HUD updates for competitive state changes, as the HUD does not change when competitive state changes
  • Optimized Pyrovision particle replacement, which was making all particle creation more expensive
  • Optimized weapon stat access, which was making weapon precaching more expensive
  • Greatly reduced overhead and improved performance of thread event system in many places
  • Fixed a few more cases of freezing caused by the thread event system
  • Re-enabled the KeyValues cache system, now with sv_pure support! This will make many data read operations much faster, like material info, attribute data, and more
  • Fixed an issue preventing scaling to 64 threads (yield only working with 62 jobs)
  • Slight optimization for yielding on a single job
  • Slightly optimized FPS cap to be even more consistent
  • Optimized server network encodes (based on CS:GO branch)

Team Comtress 2 fixes

  • Implemented some Scout projectile changes from Jungle Inferno (@wgetJane)
    • Flight time for ornament to crit reduced by 20%
    • Long-range cleaver hits no longer mini-crit, gives 1.5s of charge instead
    • Flight time for cleaver to reward charge is halved
  • Disabled Steam Cloud storage for development purposes, so that TF2 settings do not mix with TC2
  • Restored proper vertex limits, the absence of which were causing glitchy meshes in a variety of complex scenarios, especially while screenshotting
  • Updated the localization files for Scream Fortress 2020

0.1.3

3 years ago

Team Fortress 2 changes

  • Ported a Linux thread scheduling change over to Windows for a performance benefit and reduction in CPU usage
  • Changed sentry gun firing speeds to be their de facto base values now that firing speed has been fixed
    • Wrangler: Mini: 200%, Level 1: 166%, Level 2 & 3: 150% (these are all de facto from a base firing speed)
    • Mini Sentry: 125% (de facto speed, was coded to be 133% in live)
  • Added a decay to firing speed boosts for the sentry gun (MvM firing speed upgrade, Crit Canteen Boost, Wrangler)
    • This should make firing speed boosts for sentries in MvM more balanced and within the realm of DPS values in the live game
    • This is because sentry DPS had a hard cap before, due to incorrect firing speed calculations and technical limitations. Now that all firing speed boosts are correct and are unbounded by technical limits, they needed to stack in a better way to retain their functionality while still being balanced in combination with each other without a DPS cap as a result of a technical limitation.
    • Each firing speed boost stack above 1 adds a decay of 94.5%
  • These Sentry Gun changes result in the following base bullet DPS in MvM:
    • 3 firing speed + Wrangler = 240 DPS (in live 356 DPS)
    • 3 firing speed + Crit Canteen = 320 DPS (in live 356 DPS)
    • 3 firing speed + Wrangler + Crit Canteen = 536 DPS (in live 356 DPS)

Team Comtress 2 fixes

  • Fixed a dead lock in threading code which was causing freezes/crashes, especially at high framerates
  • Fixed a few cases where not firing for a while would cause a single burst shot once you did fire
  • Fixed a bug where an idle Sentry Gun (wrangled or otherwise) would accumulate fire time, causing the first bullet fired after idling with the Wrangler to deal massive damage

0.1.2

3 years ago

Team Fortress 2 changes

Team Comtress 2 fixes

  • Reduced MvM robot chance on main menu from 5% to 1%
  • Fixed tf_infinite_ammo not actually working
  • Fixed Minigun having pre-Jungle Inferno spread nerf
  • Fixed a crash while rendering inventory (reverts an optimization, will be added back later)
  • Fixed a rendering glitch when there are many renderables (usually particles) on screen

0.1.1

3 years ago

Team Fortress 2

  • Firing speed fix v2 for guns and sentries

Team Comtress 2

  • Added support for custom number of MvM players
  • Added server side enforcement for Mannup sound force mode
  • Fixed various rendering issues
  • Adjusted class model position on main menu

0.1.0

3 years ago

Team Fortress 2 changes

  • Added live player model to main menu
  • Fixed lighting issues in player model panels (class selection, etc)
  • Fixed voice icons on top of enemy cloaked spies (@Thestickman391)
  • Restored functionality for tf_parachute_maxspeed_onfire_z (@FlaminSarge)
  • Fixed Loose Cannon pushing players back on truces
  • Added tf_infinite_ammo
  • Enabled robot headshot/backstab animations
  • Optimized wrangler trace
  • Added support for func_monitor (https://www.youtube.com/watch?v=l1I9-86GBTU)
  • Fixed Announcer voicelines getting cut off by countdown in MvM
  • Enhanced MvM money pick up lines for context between expiring money and normal money
  • Increased maximum threads to 64
  • Added support for binding F13 - F24 (@iBoonie @treacherousfiend)
  • Added support for MvM freeze panels hints when you die to a specific enemy

Team Comtress 2 fixes

These changes fix bugs introduced in previous versions of Team Comtress 2.

  • Fixed a memory leak in event based waits
  • Fixed various crashes/freezes from event based waits
  • Fixed scaled models (like giants in MvM) being normal scale
  • Fixed facial animations not working
  • Fixed demos recorded in TC2 not playing in live TF2
  • Fixed weapons not being inspectable
  • Fixed snd_mix_async being not disableable. This allows for easier comparison between threaded and non-threaded sound.
  • Fixed a networking system crash
  • Fixed an async filesystem crash
  • Fixed MEDIC! bind not working (missing +helpme command)
  • Reverted sv_restrict_aspect_ratio_fov back to 1 (@Margen67)
  • Fixed an irrelevant debug log on map load
  • Fixed new MvM tank voice lines not playing correctly
  • Fixed spam for MvM encourage upgrade voice lines
  • Fixed batch scripts not closing CMD on app exit

0.0.17

3 years ago

Team Fortress 2 changes

  • Changed to event-based thread scheduler
  • Fixed matchmaking dashboard constantly updating mouse and keyboard input
  • Fixed players being able to use blank/"evil" characters for their name, disrupting chat and allowing for name stealing
  • Limited max lag compensation to 200ms (CS:GO default), from 1 second
    • This forces tighter lag compensation and limits the extent of backtracking
  • Added D3D9Ex features to improve performance:
    • Increased queued matsys thread priority for DirectX
    • Disabled waiting for Present frame submission in DirectX since we do frame sync anyway
    • Tell DirectX that we only want 1 frame of latency
  • Force disabled buffered meshes, as they were causing huge performance issues with particle rendering and other systems
  • Optimized sleeps during spin-waiting to better interact with the Windows scheduler
  • Tuned frame syncing to work much more smoothly
  • Added experimental cvar: r_reduce_frame_latency 1. Forces frame syncing for the current frame.
  • Further slightly optimized the event based texture streamer
  • Fixed recursive mutexes in the memory debug system
  • Further optimized passtime throw animation
  • Fixed many unused/broken MvM voicelines (thanks to rabscootle for the report):
    • Fixed Mann Up first wave announcer line getting cut off sometimes
    • Added functionality to play unused wave win voice lines
    • Added missing currency pickup voicelines for Heavy, Engineer, Soldier, and Medic
    • Added functionality to play unused attack the tank voice lines
    • Added functionality to play unused voice lines for killing the tank while deploying
    • Added functionality to play unused voice lines for encouraging going to an upgrade station
    • Added functionality to play unused voice lines for destroying rockets
    • Fixed Heavy Rage using a battle cry voice line instead of the unused Rage voice lines
  • Fixed MvM money getting stuck on robot spawn ledges

Team Comtress 2 fixes

These are changes which fix things introduced in earlier Team Comtress 2 releases.

  • Fixed cursor getting stuck in window during alt-tabs
  • Fixed decals not appearing on world surfaces
  • Possibly fixed target IDs not appearing on certain players
  • Fixed glitchy water reflections
  • Increased max backpack slots to Smissmas 2017 levels (3000 from 2500)
  • Fixed medigun sounds not playing
  • Fixed queued model decal adds not being aligned properly, causing some performance issues across the board, and crashes on macOS

0.0.16

3 years ago
  • Completely eliminated thread pool bottlenecks by switching to C++ standard threading APIs for mutexes
    • This resolves stutters, frame drops, etc, due to poor scheduling within the Windows APIs
    • These stutters were very heavily associated with particle simulation, since that system was queued within the thread pool
    • Before, particle simulation start and finish could be delayed by up to 10 milliseconds!
    • There are still some frame stutters and drops associated with D3D9 device calls, but work is ongoing to fix these as well
  • Fixed inefficient recursive thread locking in various places
    • When a thread already had a lock, in some cases, it would try to get that lock again, due to incorrect placement of locks
    • This generally makes locking/mutexes faster
  • Tuned some thread timing parameters
  • Removed debug overhead in threading from release builds
  • Fixed MvM Heavy Rage voice lines not being used
  • Optimized renderable bounds computation (now cached and only computed once per frame)
    • This optimization was ported from CS:GO
  • Fixed all player animation being less efficient due to an inefficient check for the Passtime ball
  • Fixed the Jag doing very low damage to enemy buildings except for Sappers (https://www.youtube.com/watch?v=Poa-YjPFs9k)
  • Fixed various crashes commonly encountered due to old settings from live TF2
  • Now compiled with the C++latest standard (with MSVC permissive mode)
  • Fixed some C++latest standard non-compliance (work is ongoing to be compatible with non-permissive mode)
  • Set r_fastzreject back to 0 as intended

Known issues:

  • Medigun heal sound does not play
  • Facial expressions do not play (facial expressions)