Left 4 Dead 2 - Kerry
An update has been released for Left 4 Dead 2.

- Fixed a crash when skipping the intro movie with a controller
- Set FOV value as archived
- Inverted brightness slider to be more intuitive
- Fixed a crash caused by an out-of-bounds memory write in the common infected shader
- Improved performance of "IsL4D1Campaign" query, and exposed the call to script
- Water slowdown is disabled only when playing L4D1 Versus or L4D1 Coop mutations in original L4D1 maps. New script variable "WaterSlowsMovement" can manage the feature for other custom modes.
- Numerous security and exploit fixes
Counter-Strike: Source - erics
An update to Counter-Strike: Source has been released. The update will be applied automatically when you restart Counter-Strike: Source. The major changes include:

  • Numerous security and stability improvements
Portal 2

Kim Swift, lead designer on Portal, has joined Xbox Game Studios to work on its publishing programme.

Xbox announced the hire today via a Twitter post which mentioned Swift's role would be to "accelerate our innovation and collaborate with independent studios to build games for the cloud".

Swift is most famous for her stint at Valve, which began when her portal-based game demo Narbacular Drop impressed Valve bosses and she was roped on board.

Read more

Jun 15, 2021
Left 4 Dead 2 - Kerry
An update has been released for Left 4 Dead 2.

Bug Fixes
- Fixed file path for CricketBat.Miss sound event.
- Fixed muzzle flash occurring if you melee immediately after shooting.
- Fixed a crash on zero-byte VPKs.
- Fixed a startup crash on Linux.
- Fixed some memory leaks in VGUI.
- Fixed text corruption when using emojis in player names or text.
- Fixed some text corruption related to UTF-8 conversion in some instances on Linux.
- Fixed some out-of-bounds reads with weapon indices.
- Fixed fps_max being reset when loading a new map.
- Fixed custom maps with no lights disabling lighting for the rest of the play session (mat_fullbright).
- Fixed addon info being truncated much earlier on Linux.
- Fixed selecting certain audio/video options via navigation via arrow keys or controller.
- Fixed Widowed (No Border) option on Linux.
- Fixed a crash if a script call to QueueSpeak() didn't pass any modifiers.
- Fixed a possible crash if a script-defined forbidden target is destroyed.
- Rebuilt gas can physics to fix an issue with falling through the world.
- Fixed an issue in Rocket Dude with a player getting moved to spectator after a level transition.
- Fixed two malformed player clips in c4m1 and c4m5.
- Fixed some incorrect place names in Cold Stream nav.
- Restored some missing commentary entities in c5m5.

Features and Updates
- Added a Vulkan render backend (currently accessible through the -vulkan command line parameter).
- Better support for ultrawide monitors in the UI and game (requires Vulkan if using Linux)
- Marked the game as DPI-aware for high DPI displays.
- Improved default settings for window size and type.
- Improved full-screen quad rendering performance.
- Made captions anti-aliased
- Marked fps_max and viewmodel_fov as FCVAR_RELEASE.
- Cvars 'survivor_incap_health' and 'survivor_incap_decay_rate' can now be changed after startup.
- New cvar 'charger_pz_claw_damage'; functions the same as equivalent melee cvars for other specials.
- New archived cvar "addons_hide_conflict_dialog" suppresses the warning dialog in the addons screen. Any conflicting addons will still be highlighted in red with conflicts printed to the console.
- Added an FOV slider to the Multiplayer settings.
- Added a +bench_demo [name] <stats output>  command line parameter which will run a demo, and quit after it is finished.
- Added a -bench_settings [name] command line parameter to load a cfg/video_bench_{name}.txt file containing settings to load. There are a set of defaults provided, very_high_4k, very_high, high, medium and low.
- Lobbies that connect via a forced server IP are not considered for "Official Only" Quick Match searches.
- Overhauled UI usability on controller
• Added controller button icons across the UI.
• Made confirmation prompts accessible on controller.
• Now able to select mutations on controller.
• Now able to fully manage lobbys on controller.
• Now able to manage addons on controller.
• Now able to browse achievement details on controller.
• The game instructor (in-game hints) now shows controller buttons and hints.
• Added a flashlight binding to the default controller config.
• Made the intro video skippable by any button on a Steam Controller.

New Scripting Hooks

Global
FindRescueAreaTrigger() - Returns the trigger entity for the rescue area
GetDifficulty() - Returns the current difficulty as a numeric value
GetDifficultyString() - Returns the current difficulty as a string
HasConfigurableDifficultySetting() - Returns true if the mode supports more than a single difficulty
IsMissionFinalMap()
GetScavengeItemsGoal()
GetScavengeItemsRemaining()
SetScavengeItemsGoal()
SetScavengeItemsRemaining()

TheDirector
AreAllSurvivorsInFinaleArea()
AreTeamsFlipped()
GetMapNumber()
IsAnySurvivorBypassingTank()
IsAnySurvivorInExitCheckpoint()
IsAnySurvivorInStartArea()
IsFinale()
IsFinaleEscapeInProgress()
IsFinaleVehicleReady()
IsFirstMapInScenario()
IsPlayingIntro()
IsSessionStartMap()
GetTotalElapsedMissionTime()
IsFinaleWon()
GetMissionWipes()
IsLocationFoggedToSurvivors( vLocation )
GetTimeSinceSpecialZombieKilled( iClass )
GetClosestActivePipeBomb( origin )
RegisterForbiddenTarget( entity ) - Bots avoid damaging forbidden targets.
UnregisterForbiddenTarget( entity )

CTerrorPlayer
IsIT()
IsAdrenalineActive()
IsGettingUp()
IsImmobilized()
IsInCombat()
IsOnThirdStrike()
IsFiringWeapon()
IsStaggering()
IsDominatedBySpecialInfected()
GetSpecialInfectedDominatingMe()
GetAliveDuration() - Returns the time the character has been alive (only valid when alive).
HasEverBeenInjured( team ) - Returns true if the character has ever been injured by a member of the given team.

CBaseEntity
GetCenter() - Get world space center of object - absolute coordinates
TakeDamageEx( hInflictor, hAttacker, hWeapon, vecDamageForce, vecDamagePosition, flDamage, nDamageType )

CBaseCombatCharacter
GetLastKnownArea() - Return the last nav area occupied - NULL if unknown.

NavMesh
GetNavAreaByID( areaID )
GetLadderByID( ladderID )
GetNavArea( origin, flBeneath ) - given a position in the world, return the nav area that is closest to or below that height.
GetNearestNavArea( origin, maxDist, checkLOS, checkGround ) - given a position in the world, return the nearest nav area that is closest to or below that height.
GetNavAreasInRadius( origin, radius, table ) - fills a passed in table of nav areas within the radius.
FindNavAreaAlongRay( startpos, endpos, ignoreAreaID )
GetNavAreaCount() - return total number of nav areas.
GetAllAreas( table ) - fills a passed in table of all nav areas.
GetObstructingEntities( table ) - fills a passed in table of all obstructing entities.
GetAreasWithAttributes( bits, table ) - fills a passed in table of all nav areas that have the specified attribute bits.
NavAreaBuildPath( area, area, goalPos, flMaxPathLength, teamID, ignoreNavBlockers ) - returns true if a path exists.
NavAreaTravelDistance( area, area, flMaxPathLength ) - compute distance between two areas. Return -1 if can't reach 'endArea' from 'startArea'.
GetLadderCount()
GetAllLadders( table ) - fills a passed in table of all nav ladders.
FindLadderAlongRay( startpos, endpos, ignoreArea )
GetNavAreasFromBuildPath( table ) - Fills table with areas from a path. Returns whether a path was found.
GetNavAreasOverlappingEntityExtent( entity, table ) - fills passed in table with areas overlapping entity's extent.
RegisterAvoidanceObstacle( entity )
UnregisterAvoidanceObstacle( entity )

CNavLadder
GetLadderEntity()
GetID()
ConnectTo( area, dir )
Disconnect( area )
IsConnected( area, dir )
GetBottomOrigin()
GetTopOrigin()
GetBottomArea()
GetTopArea()
GetLength()
GetWidth()
GetDir() - Return the direction the ladder faces (ie: surface normal of climbable side).
GetPosAtHeight() - Return 2D coordinate of the ladder at a given height.
IsInUse() - Return true if someone is on this ladder (other than 'ignore').
IsUsableByTeam( team )

TerrorNavArea
GetID()
HasAttributes() - Nav area attribute bits
GetAttributes()
SetAttributes(
RemoveAttributes()
HasSpawnAttributes( attributes ) - Spawn attribute bits.
GetSpawnAttributes()
SetSpawnAttributes( attributes )
RemoveSpawnAttributes( attributes )
GetPlaceName()
SetPlaceName( name )

GetCenter()
GetCorner( cornerIndex ) - Get a corner position.
FindRandomSpot() - Get a random origin within the area extents.
GetSizeX() - Return the area size along the X axis.
GetSizeY() - Return the area size along the Y axis.
GetZ( pos ) - Return Z of area at (x,y) of 'pos'.
GetDistanceSquaredToPoint( pos ) - Return shortest distance between point and this area.
IsRoughlySquare() - Return true if this area is approximately square.
IsFlat() - Return true if this area is approximately flat.
IsDegenerate() - Return true if this area is badly formed.
IsVisible( point ) - Return true if area is visible from the given point.
IsUnderwater()
IsCoplanar( area ) - Return true if this area and given area are approximately co-planar.
IsEdge( dir ) - Return true if there are no bi-directional links on the given side.
Contains( area ) - Return true if other area is on or above this area, but no others.
ContainsOrigin( point ) - Return true if given point is on or above this area, but no others.
IsOverlapping( area ) - Return true if 'area' overlaps our 2D extents.
IsOverlappingOrigin( pos, tolerance ) - Return true if 'pos' is within 2D extents of area.

GetAdjacentCount( dir ) - Get the number of adjacent areas in the given direction.
GetAdjacentAreas( dir, table ) - Fills a passed in table with all adjacent areas in the given direction.
GetAdjacentArea( dir, n ) - Return the n'th adjacent area in the given direction.
GetRandomAdjacentArea( dir ) - Return a random adjacent area in the given direction.
IsConnected( area, dir )
ConnectTo( area, dir ) - Connect this area to given area in given direction.
Disconnect( area ) - Disconnect this area from given area.
GetIncomingConnections( dir, table ) - Fills a passed in table with areas connected TO this area by a ONE-WAY link (ie: we have no connection back to them).
AddIncomingConnection( area, dir ) - Add areas that connect TO this area by a ONE-WAY link.
RemoveOrthogonalConnections() - Removes all connections in directions to left and right of specified direction.
ComputeDirection( point ) - Return direction from this area to the given point.

GetParent() - Returns the area just prior to this one in the search path.
GetParentHow() - Returns how we get from parent to us.
GetLadders( table ) - Fills a passed in table of ladders in direction.
ConnectToLadder( ladder )
DisconnectLadder( ladder )
IsConnectedLadder( ladder, dir )
GetElevator() - Returns the elevator if in an elevator's path.
GetElevatorAreas( table ) - Fills a passed in table with a collection of areas reachable via elevator from this area.
GetDoor() - Returns the door entity above the area.

IsDamaging() - Return true if continuous damage (eg: fire) is in this area.
MarkAsDamaging( duration ) - Mark this area is damaging for the next 'duration' seconds.
IsBlocked( team ) - Return true if team is blocked in this area.
MarkAsBlocked( team ) - Mark this area as blocked for a team.
UnblockArea()
IsBottleneck()
IsCleared( player ) - Returns true if this area has been cleared for the player.
MarkAreaCleared( player ) - Mark this area as cleared for the player
MarkAreaNotCleared()
GetTimeSinceCleared()
IsValidForWanderingPopulation()
IsSpawningAllowed() - Returns true if spawning is allowed in this area.
IsPotentiallyVisibleToTeam( team ) - Return true if any portion of this area is visible to anyone on the given team.
IsCompletelyVisibleToTeam( team ) - Return true if given area is completely visible from somewhere in this area by someone on the team.
HasAvoidanceObstacle( maxheight ) - Returns true if there's a large, immobile object obstructing this area.
MarkObstacleToAvoid( height ) - Marks the obstructed status of the nav area.
GetAvoidanceObstacleHeight() - Returns the maximum height of the obstruction above the ground.
GetPlayerCount( team ) - Return number of players of given team currently within this area (team of zero means any/all).
DebugDrawFilled() - Draw area as a filled rectangle of the given color.

Defines
"LADDER_UP"
"LADDER_DOWN"
"NAV_NORTH"
"NAV_EAST"
"NAV_WEST"
"NAV_SOUTH"
Jun 2, 2021
Portal 2 - Kerry
An update has been released for Portal 2

- Fixed the game failing to launch on OSX.
- Fixed some controller glyphs
Portal

A movie version of Portal is back on track, Star Trek and Lost director J.J. Abrams has said, nearly a decade after we first heard of its existence.

The project still sounds far-off, and there's no word on what has been holding up development - but the wheels now seem to be turning.

"We actually do have a script that's being written for the Portal movie now at [Warner Bros.]," Abrams said today (thanks, IGN) "We're really excited about the take and the pitch, so it feels like that thing's finally on the rails.

Read more

May 19, 2021
Portal 2 - Kerry
An update has been released for Portal 2

- Fixed a recent physics bug that caused some turrets to fall over on map start.
May 17, 2021
Portal 2 - Kerry
An update has been released for Portal 2 game and Authoring Tools

- Fixed custom maps with no lights disabling lighting for the rest of the play session
- Fixed Model Viewer and Face Poser not opening
- Fixed demo playback for workshop maps
- Fixed some text corruption related to UTF-8 conversion in some instances on Linux
- Moved the 32-bit Linux binaries into linux32
- Misc. rendering and other optimizations
- Removed the 100MB workshop level file size limit
- Added a +bench_demo [name] <stats output> command line parameter which will run a demo, and quit after it is finished.
- Added a -bench_settings [name] command line parameter to load a cfg/video_bench_{name}.txt file containing settings to load. There are a set of defaults provided, very_high_4k, very_high, high, medium and low.
Mar 2, 2021
Portal 2 - Kerry
An update has been released for Portal 2 game and authoring tools:

Bug Fixes:
 - Fixed a bug with broken voice overs in languages that have voice localizations (Russian, French, Spanish and German)
 - Fixed the audio settings being unusable in languages other than English
 - Compiled cubemaps on a3_crazy_box
 - Fixed a bug with broken text on the PeTI map selection
 - Potentially fixed motion pack DLC failing to launch
Mar 1, 2021
Portal 2 - Kerry
An update has been released for Portal 2.

Improvements:
  - Improved Vulkan implementation
    - Overall performance improvements
    - Massively improved performance with Anti-Aliasing (MSAA) on AMD
  - Made the intro video skippable by any button on a Steam Controller
  - Added controller glpyhs to the main menu when using a controller
Bug Fixes:
  - Fixed the Super 8 teaser not playing on Linux
  - Fixed certain Unicode characters being displayed as garbage on Linux
  - Fixed text corruption in the challenge mode UI on Linux
  - Fixed a crash that could occur wrt. networking on Linux
  - Fixed the text color in advanced video settings not respecting the dark panel UI variant
  - Fixed Model/Texture detail defaulting to Low in Vulkan mode
  - Fixed the challenge mode timer being cut off
  - Fixed a crash after trying to play a demo without having the respective map
  - Fixed a crash when trying to load invalid VPKs
...