Latest News

The Making of KOTH Frigid

September 29, 2023 - Waugh101
We like to start our maps out by basing them around clear, distinct ideas. Usually, our maps are made with the intent of improving upon a perceived flaw with an existing map or mode, or are just built around a strong and interesting central premise. In the case of Frigid, it was initially intended to be a Four-Team, three-point Domination map. However, as the layout came together, the central arena started looking more like a KOTH map. It was decided very early on (before the layout was even complete!) to scrap the other two points and instead focus solely on the central point. This change was primarily made to reduce development complexity, and had the added benefit of introducing a new gamemode to the Four-Team map pool, which is something we’re always interested in.

The map's early versions​

With this new gamemode variant also came a new environment theme. The Arctic theme was chosen so we could try a style that isn’t often seen amongst TF2 environments. There’s plenty of snowy maps, but not many that go the extra mile with the icy cliffs and wide-open expanses that you might expect from the Arctic. As with existing environment themes, the Arctic theme carried the advantages of providing an immediately recognizable setting. Importantly for our limited development resources, it didn’t require a large amount of new assets to bring to life, too. It also allowed for similar styles of industrial structures seen in other maps, which helps to maintain the game’s visual identity. As with the alpine theme, we’ll be looking for new spins to put on it with future levels.

The architectural style itself developed in multiple ways as well- originally intended to be much more Brutalist, imposing, and neutral-oriented, it was slowly worked into the current, more industrial research station aesthetic the map has today. As well as the overall style shift, there were also smaller shifts as the map was developed alongside our Four-Team architecture guidelines that put it more in line with what we expect from Four-Team maps.

Evolution of Frigid's visuals​

Notice the shift from pure concrete to a mix of somewhat more setting-appropriate materials. From there, the move away from trapezoidal shapes to more grounded and rounder ones.

We thought it might prove fun to provide some development insight through our blog like this. We have more ideas for future topics that we look forward to sharing soon!

2.1.2 Patch Release

September 6, 2023 - bobatealee
The 2.1.2 Patch for Team Fortress 2 Classic has been released. To apply this update to TF2 Classic, use the latest version of our downloader. The major changes include:

Important Changes:​

  • We have removed support for DirectX 8.0. This effectively breaks support for SDK2013's map compiler tools (vbsp, vvis, vrad). Please consult our wiki guide on how to update your toolset.
  • HDR is now forced-enabled by default. This should reduce map compile time and file size, as you no longer need to compile LDR cubemaps and lightmaps.
  • All stock materials have been updated to use newer versions of the LightmappedGeneric, VertexLitGeneric, and WorldVertexTransition shaders from Mapbase. These resolve some previous incompatibilities while adding new features. Custom materials may have rendering issues inside of fog without modifications. Assets can be converted using the Mapbase Multi-Tool.
  • We have temporarily disabled some optimizations regarding the Attribute Manager, in order to debug some crash related issues. This may negatively affect performance for the time being.

Weapon Changes:​

  • Updated the Brick:
    • Increased base damage to 65 (from 50)
    • Overhauled first person animations (Ventrici)
    • Overhauled trail particle (boba)
    • Overhauled impact sounds (Raptor Dan)
    • Projectile trail now gets removed upon collision
    • Fixed projectile colliding with teammates and map brush entities, sometimes causing it to not deal damage to enemies
    • Fixed projectile being deflectable by airblast after impact
    • Fixed missing min-viewmodel offset
  • Updated the Anti-Aircraft Cannon:
    • Reduced bullet hull size to 6.5HU (from 10HU)
    • Increased base damage to 58 (from 55)
    • Fixed the Heavy's voicelines and expressions not playing while revved and firing
  • Updated the Sniper Rifle:
    • Updated tracer particle appearance (boba)
    • Extra damage dealt from headshots no longer contributes to the random crit chance bucket
  • Updated the Revolver
    • Reduced damage penalty against sapped Sentry Guns to -33% (from -66%)
  • Updated the Tranquilizer Gun:
    • Overhauled trail particle appearance (boba)
  • Updated L'Escampette:
    • Added +100% cloak regeneration rate (hidden stat)
    • Simplified "+100% cloak consumption rate" and "+100% cloak regeneration rate" to "-50% cloak capacity"
    • Fixed missing phongwarp texture

Gameplay Changes:​

  • Updated the Spy:
    • The Spy now has a +20% damage resistance and reduced debuff duration while cloaked
  • Fixed cases of Flame Thrower flames going through thin walls or floors (Nito)
  • Added an option that allows projectiles to fire from the center of the screen, like the Original (enabled via tf2c_centerfire_preference, disabled by default)
  • #239 - Fixed Huntsman fire arrows not applying afterburn on taunt kill

Map Changes:​

  • Updated pl_jinn (abp, 14bit):
    • Adjusted scaffolding at A to allow for jump pad shortcuts
    • Increased RED's initial respawn wave time by up to 3 seconds
    • Increased max round time from 10 minutes to 11 minutes
    • Adjusted the position of some ammo and health packs around the last point
    • All modular pipe props (and the potted plant!) now have skins for all teams
    • Fixed lighting issues with some props
    • Brightened lighting on A Point
    • Removed some unused props
  • Updated dom_krepost (Suomimies55):
    • Added new arrow signs to help players exiting after leaving forward spawns
    • Adjusted cap point model locations to be consistent
    • Fixed missing rock prop around YLW mid and braziers from YLW and RED
  • Updated vip_badwater (Sniffy194, abp):
    • Added a new exit for BLU team's forward spawn next to B point
    • Added a new pathway that connects RED team's lower and upper spawnrooms on last point
    • Severely reduced the amount of fog present on the skybox
    • Added Parallax Correction to cubemaps in some indoor areas
    • Improved lighting across the map, using light_directional
  • Updated dom_hydro (Sniffy194, abp):
    • Overhauled lighting across the map, now featuring a new sunset setting, achieved with light_directional
    • Overhauled the appearance of water across the map, now featuring the new WaterFlow shader
    • Added Parallax Correction to cubemaps in some indoor areas
    • Many smaller clipping changes and visual fixes across the map
  • Updated ctf_2fort (Sniffy194):
    • Overhauled the appearance of water across the map
  • Added class and team options for env_instructor_hint
  • Added filter_tf_flagholder entity filter
  • Added light_directional to the FGD file
  • Added a handful of new water materials to the new "liquids" folder. These all use real-time reflections, and are based on the new WaterFlow shader. Area9800 liquid materials were created by Arjen de Graaf.
  • Some Portal 2 models have been selectively added to the game assets where they were deemed generic enough to be useful - see props/techdeco, props/miscdeco, props/utilities, props/floor, and props/railings
  • Stuffy360's tree packs are now included with the game, and can be found under props/forest
  • #227 - Fixed arena maps not playing arena class selection music

Shader changes:​

  • The default shaders have been overridden with the equivalents from Mapbase. Custom materials should prefix SDK_ to their shaders, such as replacing LightmappedGeneric with SDK_LightmappedGeneric. This can be automated using the Mapbase Multi-Tool.
  • Radial fog is now globally enabled. This should make fog rendering look much nicer, and behave consistently instead of moving with your view angle
  • Parallax-corrected cubemaps are now available for cheap, realistic reflections on brush surfaces. See the Valve Developer Community for documentation. This requires our new set of custom map compilers
  • The WaterFlow shader can now be used on materials. This is an updated version of the default Water shader using newer code from Alien Swarm, which includes all changes from Left 4 Dead 2 (flowmaps, lightmap water fog, skybox-only reflections) and most of the changes from Portal 2 (a basetexture "sludge layer", custom fresnel values). This code was originally backported by DownFall.
  • $blendmodulatetexture now renders properly in Hammer
  • $basetexturetransform2 now works properly when using DirectX 9
  • $phongdisablehalflambert can be used to enable Full-Lambertian lighting on model materials with phong shading
  • Brush materials can receive phong shading if lit by a projected texture
  • $treesway should now be functional on SDK_VertexLitGeneric materials

Miscellaneous changes:​

  • Added a Spywalk indicator on the Disguise HUD (enabled via tf2c_spywalk_hud, enabled by default)
  • Added a slider to the video options for controlling the intensity of bloom, with 0 completely disabling it (Azzy)
  • Added an option to display the backpack icon of the currently active weapon next to the ammo HUD (enabled via tf2c_ammobucket, disabled by default)
  • Added the beam_effect visuals tag in the item schema, for custom Medi Gun and Flame Thrower particles
  • Added unique sound scripts for Brick impact, namely Weapon_Brick.ImpactSoft and Weapon_Brick.ImpactHard
  • Added a class selection sound for the Civilian (boba)
  • Added the Expiration Date soundtrack back to the list of main menu music tracks (boba)
  • Improved main menu keyboard/gamepad navigation (boba)
  • Improved bot_teleport console command (angles optional, placed where crosshair is pointing when no position provided)
  • Updated Death & Taxes achievement icons (Hunter R. Thompson)
  • Coilgun's charging loop sound can now be customized using sound_special3 in the item schema
  • Fixed nail and syringe projectiles playing impact sounds when touching friendly buildings
  • Fixed being able to taunt while having the shield charge condition
  • Fixed resistance buff condition having a missing particle for GRN and YLW team
  • Fixed Huntsman not respecting mod_sniper_zoom_while_jumping value
  • #135 - Fixed top section of the "resume game" button not being clickable (boba)
  • #154 - Fixed music in the main menu not being affected by the music volume (boba)
  • #189 - Fixed burning arrows not getting extinguished underwater
  • #225 - Fixed custom_projectile_model not precaching gibs
  • #232 - Fixed electrifying crocodiles
  • Fixed a VPK packing regression that negatively impacted load times
  • Added 20+ new attributes
  • Updated medals
  • Updated the localization files
    • Added Ukrainian translation (panfractal, Coffee Bean)
  • Added easter egg™

Sunsetting LDR and DirectX 8 Support

August 12, 2023 - bobatealee
The year is 2023, and Team Fortress 2 is a very old game. Back in 2007, the Wii was still in its prime, the GeForce FX5500 was a good card, and the future of PC gaming was Games for Windows – LIVE.

After 16 years, the environment has changed. As we aim to improve the TF2 Classic experience for modern PCs, we've planned out some major changes we're hoping to slowly roll out in the near future. Today, we're here to talk about some of these changes.

Forcing HDR (Patch 2.1.2)​

Believe it or not, HDR (High Dynamic Range) rendering in Source is completely different from what would be considered HDR today. It simulates HDR internally and collapses the image down to LDR. Practically speaking, if you have HDR enabled, that means you're using LDR with bloom and auto-exposure effects.

However, due to HDR and LDR coexisting, every map has to be built twice. This is extremely inefficient, as it makes maps take longer to compile and take up more disk space. Furthermore, if a mapper accidentally only built HDR data, lighting wouldn't work at all for players using LDR.

As such, we are forcibly enabling HDR rendering in Patch 2.1.2. This should not have a big performance impact. Additionally, this update will add a slider to our video settings that will allow the user to tweak the bloom effect. If completely disabled, the game should look the same as it did with HDR disabled.

Ending DirectX 8 Support (Patch 2.1.2)​

Older Source games usually allow users to set a lower DirectX level using a launch option like -dxlevel. This forcibly disables a number of graphical features, and is popular among configs and users trying to squeeze out extra frames.

Unfortunately, this has heavy implications for development. Shaders have to be written twice, once for DirectX 8, and once for DirectX 9. DirectX 8 shader development is a lot of effort only to supplement a small user base.

To make matters more complex, there are two "shader models" for Source, Shader Model 2.0b and 3.0, and shaders also have to be written according to the shader model the game is using. Video cards limited to SM 2.0b were already considered "low-end" back in 2008.

Due to all of this, we are standardizing and forcing DirectX 9 with SM 3.0 in Patch 2.1.2 (also known as "dxlevel 95") for TF2 Classic. This is primarily due to a major upcoming shader overhaul that will add new capabilities, fix countless issues, and improve rendering performance.

For mappers, the end of DirectX 8 support means we will also discontinue support for SDK 2013's map compiler tools (vbsp, vvis, vrad). If you're still using these, please consult our wiki guide on how to update your toolset.

Ending Native Linux Client Support (Soon)​

Some time after we roll out the first two changes in Patch 2.1.2, we are planning to eventually end native Linux Client support. The aging OpenGL wrapper that Valve used when porting the game to Linux is incredibly restrictive, as it does not support SM 3.0, preventing us from fixing some graphical issues or adding new shader features.

The OpenGL renderer in itself has several Linux-exclusive rendering and performance issues that we are unable to address. As such, we will instead pivot towards supporting Proton, Valve's compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it.

Proton's Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users. Note that this change will NOT affect Linux servers.

Final Notes​

In short, we are force-enabling HDR rendering, forcing the use of DirectX 9 SM 3.0, and dropping support for stock SDK 2013 map compiler tools in Patch 2.1.2. Additionally, we are planning to discontinue native Linux support for clients at a later date.

We're very excited for all of these changes, and will be looking into adding new video options (possibly even graphical presets!) that provide a more accessible and reliable way to get playable frame rates on low-end machines.
Page 1 of 9