Skip to the content.

Media

Changelog

v17.2

  • change some smoke parameters:
    • HEGrenadeEffectDuration: 4 -> 3
    • HEGrenadeSmokeIntersectionRadius: 4 -> 7, with distance curve
    • gravity weight: 1.5 -> 1.75
  • batch voxel raycasts into 1 trip to managed code
    • no difference in performance

v17.1

  • some performance improvements
    • reduce m_ShadowCascadeCount from 4 to 1
    • reduce m_ShadowDistance from 150 to 55
    • reduce m_SoftShadowQuality from High to Low (doesn’t make any visual difference)
    • disable m_ConservativeEnclosingSphere - shadows look slightly better, no impact on performance
    • disable Camera’s depth texture
  • allow negative time when converting from GameTick
    • fixes projectiles that were created before demo recording started
  • performance improvements for smoke rendering
    • some smokes took as much as 100 ms to render (when inside of smoke), now they render in ~ 2 ms
    • switched to a custom-lighting shader which doesn’t sample additional lights
  • add smoke_export_voxels_all, smoke_export_voxels_alive commands

v17.0

  • create colliders for physics objects
    • changed Hulls to be convex meshes, other meshes are concave
    • be consistent when reversing triangles - do it the same way for both render & collision meshes
    • bake mesh for Physics engine during importing, rather than later when creating GameObjects, because we can accurately measure time
  • implement volumetric smoke effect
    • create intersection with Smokes using grenade explosions
    • grenade explosions are fading out
    • made smoke expansion (and rendering ?) deterministic
    • display smoke grid on Minimap
  • Utility-throw mode can seek to projectile detonations, and can follow projectiles during their flight

  • fix pre-processing of Projectiles whose Pawn is dead at moment of creation of Projectile

  • set smoke effect duration to 22

  • allow drawing on Minimap

v16.1

  • add support for running multiple commands (separated by ; or new line) at once

  • fix camera icon disappearing after team switch

  • fix non-visible ProgressBar when opening demo

  • adjust Broadcast re-fetch intervals based on KeyframeInterval
    • fixes playback for Major servers, which have KeyframeInterval set to 1, so playback kept hitting edge of buffer
  • cache HttpClients on proxy, which results in much faster (3x, from 1.7 to 0.55 seconds) requests

v16.0

  • fix for Smoke circular timer on MiniMap while seeking

  • automatically resize Big MiniMap when display size changes

  • close MiniMap when demo closes

  • fix for missing RoundStart events ; fix seeking through rounds 1 by 1 ;

  • add “players” command

  • clear selection when player is clicked in HUD - fixes selection box staying on previous players

  • add “Auto choose Spectator” ContextMenu item in player HUD

  • add commands: spec_player, spec_player_by_accountid, spec_mode, spec_choose_spectator

  • fix outdated camera position on MiniMap
    • use LateUpdate() for updating MiniMap
  • add ability to follow POV of players, including their spectated players
    • once per match, auto choose Spectator player as focused player
    • display text for focused player, below spectated player HUD
    • disable AutoDirector by default because it doesn’t fit in
  • change how TeamNumber is obtained when creating Pawn : use Pawn’s TeamNumber, instead of PlayerController’s

  • add “spec_pos”, “spec_goto” commands

v15.8

  • change default value of snd_weaponvolume from 1 to 0.5

  • switch to Forward renderer on Web platform, during build pre-processing step

  • fix for reading Inferno positions on old demos

v15.7

  • display HUD for currently spectated player, with additional info: health number, ammo numbers

  • display Inferno (Molotov) on MiniMap

  • display C4’s beeping-circle on MiniMap

  • display HE grenade explosion effect on MiniMap

  • display Flashbang detonation on MiniMap

  • fade-out Smoke on MiniMap

  • change MiniMap toggle key to CTRL

  • forbid toggling MiniMap to “None” visibility

v15.6

  • fix bug when loading Vertigo : add OBJECT_TYPE_BAKED_GEOMETRY flag

  • fix bug when loading Anubis, Ancient, Office : add OBJECT_TYPE_OVERLAY flag

  • upgrade VRF library (8884d7204e650e5b83ecf4b1b7db3d8f0d7f3eec, 02-Nov-24)

  • add logo

v15.5

  • disable splash screen

  • switch to Master C++ configuration for Windows IL2CPP

    • seems to speed up map loading by 7-13%

v15.4

  • display status text in MatchBrowser

  • fix for Console not scrolling down when game is paused
    • but Console’s automatic scroll is still broken because of Unity bug
  • set Console.maxNumLogMessages to 200 (was 100)

  • remove “Online” tab in MatchBrowser

  • disable WebGPU

  • close demo in library as soon as it’s closed in game
    • this stops TV http broadcast requests immediatelly
    • this reduces memory usage from previous demo file
    • not sure why this wasn’t done before
  • unload game resources after closing demo
    • this was done to remove & unload currently loaded map

v15.3

  • cache big data file on first page load - as soon as ServiceWorker is installed

  • fix for not being able to write to Clipboard on Web

v15.2

  • minimap textures are available even when game files are not

  • fix caching on Web

    • move entire website (except index.html and ServiceWorker) into a versioned folder
    • distribute 2 large files from Storage
    • ServiceWorker only caches big data file, the rest is cached by Browser
    • delete old caches on start

v15.1

  • add support for CORS proxy for CSTV broadcasts

  • add “Copy match link” and “Copy playcast command” buttons in match’s ContextMenu

  • change default “fps_max” value on Web to 61
    • seems that certain values (such are: 15, 20, 30, 60) cause the Unity’s FPS limiter on Web to misbehave: limiting the app to different FPS, taking some time from frame, preventing app from running in background. But other values seem to be fine (eg. 61), so we choose to limit to 61 by default, rather than having max CPU/GPU usage with unlocked FPS
  • provide better error message for HTTP timeout, otherwise Channel Task will be simply marked as cancelled

v15.0

  • switch back to Forward+ renderer

  • fix Warmup timer (it was always displaying duration of Warmup instead of time left)

  • display live matches in Match Browser

  • don’t create new message boxes for the same title

  • when focusing on player by user action, if current mode is ThirdPersonAnchor, switch to FirstPerson

  • add ContextMenu for players HUD

  • add ContextMenu in MatchBrowser for live matches

    • add button to open match page
    • add button to open match in CS2

v14.0

  • add support for CSTV http broadcasts
    • add “playcast” command
    • fix for playing round-end sound for streaming demos
    • assign Timeline slider based on last available (buffered) tick
    • display streaming latency in Timeline
  • fix demo restarting : properly store last opened demo file path, and store dialog file path separately

  • when choosing which ServerName to display, give priority to HostName

  • fix parsing “SLOTNAME” in chat messages

  • fix for: wrong weapon displayed as active in HUD, when player picks up a rifle while holding a pistol

v13.3

  • fix for: A & B site remain on Minimap after demo unload

  • fix for: color of player’s death icon on MiniMap is wrong when seeking and when team changes
    • from now on, use TeamNumber from pawn itself, not from it’s CSPlayerController
  • use <OptimizationPreference>Speed</OptimizationPreference> in library

v13.2

  • disable data caching on Web, to try to make it possible for Browser to fetch new version

  • switch IL2CPP configuration to Master, on Web platform

v13.1

  • display MiniMap even if game files are not available

  • close demo when unloading game resources

  • fix players’ voice on Web, by using separate AudioSource for every chunk of audio data

    • needed because AudioClip.SetData() doesn’t work correctly on Web
    • increase AudioBufferLatency to 0.15

v13.0

  • initial support for POV demos
    • entities don’t work correctly, as they are deactivated
  • implement players’ voice
    • add “snd_voipvolume” cvar
    • add “tv_listen_voice_team” cvar
    • add voice indicator to HUD
  • upgrade DemoFileNet library (eec87931ad770ac249a9bdfeb622d869537c6737, 08-Oct-24, v0.24.1+)

  • changes in library:
    • when deleting entities, set them to null, instead of immediately removing from list
    • serialize GameRules as entity, fixes a bug where old reference was kept in list
    • don’t try to seek through rounds if PreProcessingResult is not available
    • limit number of GameEvents and Messages per marshal to 64
      • this fixes a bug with POV demos where 10K sounds were played on 1st tick
  • fix for: projectiles that were created before demo recording started, can have sound starting time < 0

  • fix KillFeed UI bug: there was an empty UI element on top

  • fix: don’t try to create dynamic props when map is not loaded, because model hashes are not calculated

  • introduce MaxNumConcurrentSounds and set it to 100

  • log chat messages to Console

  • add support for more chat messages (those found in POV demos)

  • use separate game clock, and sync it with demo’s clock, with max 0.2 seconds difference
    • this fixes faster time elapsing (eg. when demo recorder has less than 64 FPS)
  • invoke GameEvents and Messages with the correct SubTick assigned

  • switch to using EventNonAlloc during demo update
    • slightly reduces mem allocs
  • add “sv_ignoregrenaderadio” cvar

  • minimap window consumes input

  • add “snd_weaponvolume” cvar

  • upgrade VRF library (951ba65f71abef8f99583235f77b7b69047daac2, 12-Oct-24, 10.2+)
    • needed because of new format of EntityLump

v12.0

  • implement MiniMap

  • add commands: getpos, setpos, setang

  • “Restart” button can now open last opened demo, even after game restart

  • use object pooling in KillFeed UI

    • reduces mem alloc on KillFeed event from ~ 100 KB to 300 B

v11.1

  • add commands: exit, quit, echo, status, demo_info, exec

  • add aliases or rename commands: playdemo, disconnect, demo_gototick, demo_timescale, spec_autodirector

v11.0

  • implement dynamic prop entities

  • add “demo_seek_expr”, “entities” commands

  • don’t create selection colliders for anything other than players, weapons, and projectiles

v10.4

  • add Highlights auto-seek mode, which goes through all highlights (frags) on the match

  • add Utility-throw auto-seek mode, which goes through all thrown utility on the match

v10.3

  • locate CS2 folder based on Steam library config

v10.2

  • release for Web version

  • re-embed files

  • some UI adjustments for Web version:
    • disable “Drag folder” text
    • disable “Current folder” text
  • disable confirmation dialog when game files are not loaded

  • disable shadows by default on Web

  • upgrade DemoFileNet library to v0.18.1

  • add multi-threading support for library on Wasm, but only for 1 background Task
    • pre-processing time is ~ 11 seconds

v10.1

  • fix NRE on startup

v10.0

  • play sounds from demo file

  • load additional sounds needed for all footsteps, weapons, physics and world SoundEvents

  • when starting a sound, immediately start it (if conditions are satisfied), don’t wait for next frame

  • choose sound index (inside of SoundEvent) deterministically based on sound’s starting time
    • it’s still not perfect
  • play weapon reload sounds

v9.3

  • bullet tracers now use correct direction

  • reduce bullet tracer duration to 0.05 (from 0.0833)

  • fix reading “Pitch” property of SoundEvent - fixes sound for AUG

  • remove memory allocation from SoundManager.Update()

  • disable warnings logged by TMP - needed because sometimes it constantly spams the Console when unknown characters appear in the Console itself

  • upgrade DemoFileNet library to v0.17.1

v9.2

  • add flashed (blinded) indicator in HUD

  • display chat messages

  • fix for : sometimes, current match state in UI is “Timeout” or “Match paused”, even while round is still playing

  • “trigger_hurt” and “world” in Kill Feed are displayed using “suicide” icon

v2.1

  • recalculate vertex normals on import
  • add profiler commands

v2.0

  • integrate UGameCore : Console, commands, UI, windows, folder picker

v1.5

  • more camera controls (zoom, pan)
  • add runtime inspectors for Material, Shader, Mesh
  • implement selection history + undo/redo
  • don’t use light temperature

v1.4

  • greatly reduce size of meshes
  • use mesh colliders for selection