Progress Report, July 2025 - Four-Team!
[p]We're back for our monthly report, and right on time. This month has easily been the most productive month since we started this port back in February. Lots of new talent has joined EMINOMA, and we've seen the project come together faster than we ever could've hoped for.[/p]
[p][/p]
[hr][/hr]
[h2]Too many colors for a shade of gray[/h2]
[p][/p]
[p]Support for additional teams, one of our hallmark features, has been completely reimplemented and vastly expanded.
Previously, for level designers, enabling four-team in a map was just a single toggle. For our Steam release, we have expanded the team system to be completely modular.
Mappers can now pit any combination of teams against each other, and teams can also be activated and deactivated during an ongoing round. For instance, you could have three-team maps, GRN vs. YLW maps, or maps that have an actual failure condition for teams, causing them to be eliminated and deactivated.
This was spearheaded by the creator of the Mapbase project, Blixibon, who was initially recruited to advise us through the porting process back in February, and was recently promoted to full-time collaborator. This Herculean effort was completed in just a few weeks, and we aim to upstream it back to Mapbase for other projects to take advantage of.[/p]
[p][/p]
[carousel]![]()
![]()
![]()
[/carousel]
[hr][/hr]
[h2]Throwing a bone to artists[/h2]
[p][/p]
[p]Speaking of Mapbase, it has been completely re-integrated and updated for the TF2 SDK, including its modified shaders.
This allows us to retain TF2 Classic's distinctive look by using full Lambertian shading ("beta shading") on player materials, as opposed to the Half-Lambert technique used in retail Team Fortress 2, in addition to many other essential features and staples of our maps, such as parallax-corrected cubemaps.
This isn't the end of our shader improvements! We're also working closely with ShiroDkxrto2, head of the LUX project, aiming to completely rewrite and improve Source Engine shaders.
As a result, we will be introducing more advanced features such as Phong shading for brushes and displacements from static light sources, or lightmapped water with support for flowmaps, but we'll go into more detail on that in a future progress report.[/p]
[p][/p]
[carousel]![]()
![]()
![]()
[/carousel]
[p]In retaining our visual improvements, we've also had to take a closer look at our mapping tools. Previously, we recommended that our mappers use third-party compilers that provided more advanced features from newer Source Engine games-- but we have had a need for clean, first-party implementations of these features.
For Steam, our recommended map compilers can now be improved by us directly, and we've extensively fixed issues and expanded the tools available to level designers. Currently, we have the following (optional!) features:[/p]
[p][/p]
[p]...and many more.[/p]
[p][/p]
[hr][/hr]
[h2]More love for our models[/h2]
[p][/p]
[p]While our programmers have been hard at work bringing everything to the Steam release, some of our artists have been chipping away at pet projects, touch-ups, and newly-added details.
We've implemented proper neck stumps for decapitated enemies, a feature that was previously planned for the Harvester's release but was cut for time. Gross![/p]
[p][/p]
![]()
[p][/p]
[p]Wrinklemaps have been added to player faces, allowing them to be even more expressive. Ease the pain of dying because they had a silly face while killing you! Have another reason to raise your model quality![/p]
[p][/p]
[carousel]![]()
![]()
![]()
![]()
[/carousel]
[p]We've also remade a handful of props from other Valve games for mappers to use, to better fit the style of the game.[/p]
[p]
[/p]
[p][/p]
[hr][/hr]
[h2]Is ASMR classic?[/h2]
[p][/p]
[p]Audio has seen a special focus this month! For the average player, the most significant advancement here is our upcoming Damage Feedback system.
This is a new system that allows for custom sounds to play from a range of different incoming and outgoing damage events. This includes generic and lethal damage, like the existing hitsound and killsound system, but also customized sounds for:[/p]
[p]...and any weapon-specific override you could want.
As we've already implemented feedback sounds for the Nailgun and Syringe Gun previously, we're using this to expand support to the rest of our weapon roster. This can be used alongside your existing hitsound and killsound, so you can get more information while still reliving your Quake 3 halcyon days.
Making our own sounds for these is still in-progress, and we'll cover what that sounds like and what our goals are in a future progress report, but extensibility for modders is a major focus (both for server hosts implementing custom weapons, and regular modders that want something better than hitsounds to work with).[/p]
[p][/p]
[hr][/hr]
[h2]The kitchen sink[/h2]
[p][/p]
[p]Is that not enough? Are you still hungry? Still begging for more progress? A quickfire list of everything that wasn't big enough to get its own spotlight? A progress report on the state of reconstruction after your house was burnt down for the insurance payout? We could never let you down.[/p]
[p]The game is shaping up, and in our playtests, it really feels like TF2 Classic now. Our last major hurdle is our various game menus, which are going to be more than a simple port of what you've already seen.[
Once that's finalized, we will enter a period of pure QA and bug hunting until release, and as always, we will keep you posted on the progress of both.
~ Sniffy, with loving help and feedback from Azzy, Boba, Sam, Blixibon, and Nito[/p]
[p][/p]
[hr][/hr]
[h2]Too many colors for a shade of gray[/h2]
[p][/p]
[p]Support for additional teams, one of our hallmark features, has been completely reimplemented and vastly expanded.
Previously, for level designers, enabling four-team in a map was just a single toggle. For our Steam release, we have expanded the team system to be completely modular.
Mappers can now pit any combination of teams against each other, and teams can also be activated and deactivated during an ongoing round. For instance, you could have three-team maps, GRN vs. YLW maps, or maps that have an actual failure condition for teams, causing them to be eliminated and deactivated.
This was spearheaded by the creator of the Mapbase project, Blixibon, who was initially recruited to advise us through the porting process back in February, and was recently promoted to full-time collaborator. This Herculean effort was completed in just a few weeks, and we aim to upstream it back to Mapbase for other projects to take advantage of.[/p]
[p][/p]
[carousel]
[hr][/hr]
[h2]Throwing a bone to artists[/h2]
[p][/p]
[p]Speaking of Mapbase, it has been completely re-integrated and updated for the TF2 SDK, including its modified shaders.
This allows us to retain TF2 Classic's distinctive look by using full Lambertian shading ("beta shading") on player materials, as opposed to the Half-Lambert technique used in retail Team Fortress 2, in addition to many other essential features and staples of our maps, such as parallax-corrected cubemaps.
This isn't the end of our shader improvements! We're also working closely with ShiroDkxrto2, head of the LUX project, aiming to completely rewrite and improve Source Engine shaders.
As a result, we will be introducing more advanced features such as Phong shading for brushes and displacements from static light sources, or lightmapped water with support for flowmaps, but we'll go into more detail on that in a future progress report.[/p]
[p][/p]
[carousel]
[p]In retaining our visual improvements, we've also had to take a closer look at our mapping tools. Previously, we recommended that our mappers use third-party compilers that provided more advanced features from newer Source Engine games-- but we have had a need for clean, first-party implementations of these features.
For Steam, our recommended map compilers can now be improved by us directly, and we've extensively fixed issues and expanded the tools available to level designers. Currently, we have the following (optional!) features:[/p]
[p][/p]
- An original Ambient Occlusion implementation!
- Support for multiple sources of light from the skybox with light_directional
- A softened cosine term for smoother light blending
- Shadows cast from translucent brushes and displacements
- Chopping texture lights for convincing area lights that cast softer shadows
- More accurate displacement lighting
- Several other improvements and optimizations
[p]...and many more.[/p]
[p][/p]
[hr][/hr]
[h2]More love for our models[/h2]
[p][/p]
[p]While our programmers have been hard at work bringing everything to the Steam release, some of our artists have been chipping away at pet projects, touch-ups, and newly-added details.
We've implemented proper neck stumps for decapitated enemies, a feature that was previously planned for the Harvester's release but was cut for time. Gross![/p]
[p][/p]
[p][/p]
[p]Wrinklemaps have been added to player faces, allowing them to be even more expressive. Ease the pain of dying because they had a silly face while killing you! Have another reason to raise your model quality![/p]
[p][/p]
[carousel]
[p]We've also remade a handful of props from other Valve games for mappers to use, to better fit the style of the game.[/p]
[p]
[p][/p]
[hr][/hr]
[h2]Is ASMR classic?[/h2]
[p][/p]
[p]Audio has seen a special focus this month! For the average player, the most significant advancement here is our upcoming Damage Feedback system.
This is a new system that allows for custom sounds to play from a range of different incoming and outgoing damage events. This includes generic and lethal damage, like the existing hitsound and killsound system, but also customized sounds for:[/p]
- Headshots
- Burning
- Bleeding
- Direct hits from rockets and grenades
- Blocked damage to invulnerable targets
- Reduced damage to targets with resistances
- Damaging an Engineer building
[p]...and any weapon-specific override you could want.
As we've already implemented feedback sounds for the Nailgun and Syringe Gun previously, we're using this to expand support to the rest of our weapon roster. This can be used alongside your existing hitsound and killsound, so you can get more information while still reliving your Quake 3 halcyon days.
Making our own sounds for these is still in-progress, and we'll cover what that sounds like and what our goals are in a future progress report, but extensibility for modders is a major focus (both for server hosts implementing custom weapons, and regular modders that want something better than hitsounds to work with).[/p]
[p][/p]
[hr][/hr]
[h2]The kitchen sink[/h2]
[p][/p]
[p]Is that not enough? Are you still hungry? Still begging for more progress? A quickfire list of everything that wasn't big enough to get its own spotlight? A progress report on the state of reconstruction after your house was burnt down for the insurance payout? We could never let you down.[/p]
- Massive bug fix passes on Scout, Soldier, Pyro, Demoman, and Sniper
- 10 more achievements ported and integrated with Steam
- The Domination gamemode has been reimplemented
- Stuck looping sounds have been (mostly) fixed, after 17 years
- Backported Left 4 Dead's lag compensation system, and soundscape additions
- Fixed and unhid `sv_soundemitter_flush` for modders to flush soundscripts without a game restart
- SVG support for HUD elements (crosshairs are no longer blurry!)
- Spy can, once again, fake-reload while disguised
- The global "gray team" disguise for Four-Team is back, and a little more intuitive
- Material proxies, ported from Reactive Drop, that can be used to localize textures based on the player's language, or change them based on the player's date and time
[p]The game is shaping up, and in our playtests, it really feels like TF2 Classic now. Our last major hurdle is our various game menus, which are going to be more than a simple port of what you've already seen.[
Once that's finalized, we will enter a period of pure QA and bug hunting until release, and as always, we will keep you posted on the progress of both.
~ Sniffy, with loving help and feedback from Azzy, Boba, Sam, Blixibon, and Nito[/p]