DEVELOPMENT BLOG
RECENT TWEETS
Tweets From OpenFortressPatch 21, Hotfix
OF Team | July 21, 2024
Heya everyone!
This is a bit of a smaller one, we originally intended to make an update 1 week after the last to do some final polishing on the jetpack's visuals, however, there were some issues that arose so we had to postpone it untill now.
On the good side though, this let us add a bunch of little goodies in the meantime, we hope you enjoy!
We decided to give some insight on our thought process behind some of the changes this time around.
[Balance]
[Powerups]
"Due to the jetpack powerup frequently being dropped high in the air, we took another look at how powerups behave when dropped, and decided to make them all float down after a while."
- Dropped powerups now float downwards after a short period
- Dropped powerups are now dropped slightly spread out if you have multiple
[Weapons]
"While we're personally quite happy with how the Railgun functions and plays, we have noticed many players having trouble fighting it.
The statistics don't indicate that it's overperforming it's use case, however it still seems to be frustrating to fight against.
One big reason it might feel annoying to deal with is the fact that you sometimes can't notice that someone's even attempting to shoot you, so we're trying out giving it more feedback pre and post shot so you always know when you're in danger."
- Railgun
- Added noticable draw and hum sound that is audible in third person
- Added dynamic lighting to the coil
"Internally, we've also been taking a look at the Chaingun and Lightning gun, in particular, their ammo economy, we're happy with how it's going but it needs a slight tuning before we feel comfortable releasing it."
"Lastly, the long awaited Flamethrower rework has started development, not far enough along to be playtested yet however."
Cosmetics
- Added a Familiar Face
"Back in the day we'd say this looked top of the line, nowadays we call it a Classic"
Maps
- Cleaned up mapcycle and our maplist
- Adding missing maps to the mapcycle
- Removing some abandoned or accidental maps
[New/Reworked Maps]
- duel_badplace_dev_pigeon
[Updated Maps]
- dm/mdom_angeles_dev
Left is the new version, right is the old
- dm_marine_dev
- dm_fotia_dev
Left is the new version, right is the old
- dm/mdom_radiowave_dev
- dm_lumberyard
- dm_mannworks
Left is the new version, right is the old
- dm_painhouse
[Removed Maps]
- dm_bailey_dev
- dm_forgecall_dev
- dm_hungry
"Bailey and Hungry are likely not coming back, Forgecall was commited by accident and it was never in the mapcycle."
[Audio Visual]
[Powerups]
Added new pickup model for the jetpack powerup
Added unique pickup sound for the jetpack
Updated deploy and fly sounds for the jetpack
Updated jetpack particles to use a unique particle entries:
- Jetpack_thrust, jetpack_exhaust and jetpack_overheat
- Visually they're still the same for now
Updated Shield powerup player model to be more visible
"Further updates to the visibility of the shield powerup are coming at a later update"
[Mapping]
Added Shooting range sign textures:
- sign_blastjumping
- sign_bunnyhopping
- sign_shootingrange
- sign_surfingandtrimping
Pine tree models by stuffy360
- prop_forest/tree_tallpine01a-f
[System]
- Added spanish localisation
"While we're glad that server owners continue to improve their servers and the play experience with custom plugins,
if pretty much every server feels like it needs to run a plugin that replaces a function that exists in the game, that is a massive failing on our part.
One such function is voting for the next map.
We have a system in place to call a vote for the next map when a round is nearing it's end, however it's been quite buggy,
often times it doesn't call a vote when it should, and even moreso calls a vote before it should.
And even if it does call the vote correctly, the maps it displays are lackluster, to say the least.
The way the system worked was keep track of the playtime of each map, rank them accordingly, pick the 5 leased played maps and put them in the vote.
The problem with this was that, once you pick one of the maps, the other 4 leased played maps will stay the leased played maps, so the same ones will be suggested again.
What this means is, you'll pretty much always get the same few choices over and over again, which definitely felt boring and restrictive.
For these reasons, server hosts preffer using the 'nativevotes' plugin on their server, which offers other benefits such as rock the vote and map nomination.
To address these issues of our core system, we reworked how the map picking algorythm works and cleaned up the code that triggers nextmap voting to be more consistent.
Last update we already did add a 'rock the vote' option, though we're still thinking about how best to encourage the usage of the vote menu.
Some ideas were talked about like having chat macros work off the gate, adding a search function to longer lists like the maplist, adding a bind to open it or simply making it more obvious in the pause menu."
Updated nextmap vote
- Now uses discrete distribution based on maptime
- In short, this means that it picks the maps randomly, but it's biased towards maps that haven't been played much on the server
Cleaned up the way automtic nextmap voting works
- Now properly respects mp_maxrounds and
mp_maxrounds_ffa
- No longer accidentally starts during waiting for players and at the start of the round
- When using
mp_timelimit
, the game used to forcibly end if the time left was less than 5 minutes and a round ended in order to not start a round that will likely not end in time- This time has been lowered to 2 minutes and can now be adjusted using
mp_timelimit_cutoff
- This time has been lowered to 2 minutes and can now be adjusted using
- Now properly respects mp_maxrounds and
"Another big issue with community servers we've noticed is the very frequent usage of mp_weaponstay and of_spawners_resupply.
Weapon and ammo economy is something we've been messing around with since Deathmatch was first started, managing it is a big part of how we want OF to play.
Unfortunately though, our smaller playerbase usually necessitates that play sessions converge into a single server, meaning those servers need to contain more players than intended.
More players means some of those players wont be able to find a free weapon to take, leading to a less than ideal play experience, so, easiest fix for most seemed to simply disable weapon respawns.
Disabling respawns is usually acompanied by enabling of_spawners_resupply, which lets you get ammo from weapon spawners, usually they'd go on cooldown once they give you ammo, but with cooldowns disabled, you essentially get full ammo for whichever weapon you picked up instantly.
A few updates ago we tried solving this issue by introducing dynamic weaponstay, which hastens weapon respawn times the more players are on a server, however, it seems that server owners have ignored this command.
Once again that is our fault, we didn't properly communicate this change, and furthermore, it's disabled by default, with no frame of reference to what values would work.
We playtested and adjusted this value on our internal servers and we decided to enable this command by default with a value that should suit most needs.
We encourage you to try and use these settings on your servers for a bit.
The commands are prefixed with of_spawners_dynamic_"
Updated the default value of
of_spawners_dynamic_max_mult
to be 0.2Updated the default value of
of_spawners_dynamic_player_start_count
to be 6Fixed dynamic weaponstay continuing to increase rapidly after the max cutoff was reached
Updated jetpack and powerup convars to show notifications when changed
Fixed some jetpack convars being marked as cheats
Fixed superweapons not always dropping on death
Fixed quadlauncher dropping before the last rockets stop homing
Fixed TDM not enabling Merc only
Fixed stuttering on local servers when walking, related to the jetpack
Fixed hint hud not always working as its supposed to ( for example when using Sourcemod )
Fixed certain convar autocompletion functions reading memory they're not supposed to
Fixed bots spamming softzoom cvar errors in the console when developer mode is enabled
Fixed crash related to projectiles despawning during map change
Fixed crash related to entities being removed when changing maps
Fixed crash related to weapon statistic tracking
Fixed crash related to headshots
Fixed crash related to lightning gun sounds
Fixed crash related to weapon and animation particles
Cleaned up many unneeded dx80 and sw files
Fixed and cleaned up several textures with incorrect parameters and broken strings
Fixed an error in the predifined cosmetic vmts that gave certain cosmetics incorrect lighting
Playtest Wave TRIPLE!
OF Team | July 17, 2024
YOU STILL WANNA PLAYTEST WITH US???
Tired of d... HELLO AGAIN! We are once again searching for fresh meat to playtest our silly little creation! As we've said before, previously submitted applications may be looked at again for this wave, so if you've already applied but want to change something about your application, go right on ahead and do that!
Interested? Quit reading and get applying!!!
Welcome to the Mile High club
OF Team | June 22, 2024
Ding
This is your captain speaking. Our flight out of Sestero Grand International Airport is packed to the brim with antsy passengers. My flight crew and I all understand that a long haul flight to China is very taxing for the average passenger, but we've come prepared with ample in-flight entertainment to tide you over until our arrival. Please, fasten your seatbelts and keep all smoking in the appropriate part of the cabin. We hope you enjoy your flight.
Now then, for our first piece of in-flight entertainment: Some kind of cartoon featuring a colorful horse and cat-like creature, discussing various high-tech futurey stuff that’s way over our heads! What even is an “internet?” Is that something they made up for the show? We don’t know! And thanks to our close ties with the fellas involved with the production of this silly cartoon, everyone on-board gets complimentary garments like the ones worn by these weird animal creatures! We hope you enjoy the show, and be sure to pay close attention, this has some surprises you won’t want to miss! You might even see a familiar face or two!
(Loveweb tie-in cosmetics by Arsen, based on concept art by Shadok)
Speaking of garments, some long-awaited new fashion has arrived onto the scene! And for participating in this flight, everyone on-board gets it free-of-charge! Ahem, free forever, of course. Enjoy showing off the latest fashions to your friends and coworkers, and make them jealous for not participating in this premium aviation experience! Now, one of my flight attendants reminded me a moment ago that these were all bought by corporate in bulk from a Dillard’s. So please, enjoy the free luxury garments.
(Welding gloves, overalls, hoodie, and sweatpants by Wendy, based on concept art by OverlordLettuce)
(Tennis visor, dirt bike helmet, and redone Quake gloves by Arsen, the helmet being based on concept art by Extra Ram)
Next, check out this refinement to a well-used piece of weaponry: The China Lake! Beefier, sturdier, and much more intimidating, this tried and true piece of ordnance is now better than ever! Send your foes running in fear as you rain hellfire on them from above!
(Model by Arsen, based on concept art by HypnOS 1999)
And we’re not done yet, going along with our theme of showcasing the technology of tomorrow, get ready to hear the new and improved VOX automated announcement system! Now he can say many more words with better clarity, so you shouldn’t have as much trouble understanding what he says! They really ought to start fitting our DC-10s with these, would save me some hassle.
Thanks to the discovery of FlexTalk, our ol' pal VOX has finally gotten the revamp he deserves! Brand new lines, more consistent audio quality and levels, and in general his dialogue is a lot more faithful to how he speaks in Half-Life and TFC! Coming next update! pic.twitter.com/xu2apyq0KD
— Open Fortress (@OpenFortress) May 14, 2024
Finally, look up! Look down! Look out! We don’t just have in-flight entertainment, for the first time ever experience a live demonstration of a brand new, state of the art piece of equipment: The Jetpack! A cutting edge device demonstrated by none other than the captain of danger himself, the Mercenary! As you exit the cabin, watch the skies above Wushu as the Mercenary goes where no man has gone before! On their lonesome, anyhow.
Thank you for flying Danielle Airlines on this long haul journey of ours! We do hope you appreciated your lengthy stay with us, even if our seats were packed a bit tightly over in the economy class cabin. The one expense we do spare is space on our economy class tickets, much apologies. However, for those of you returning to the states with a ticket to “LAX”, we heard that the roads in Los Angeles have gotten a (much) needed re-paving over the last few months. So on your return home, you can burn rubber like there’s no tomorrow!
Farewell, travelers! Wherever your journeys may take you, we’re sure they’ll be more than thrilling. There’s many different places to land these days, so we hope you tell us about your potentially hazardous travels yourselves some day. Now go out there and witness that beautiful, burning world!
Bon voyage!
Revision 20 Patch notes
OF Team | June 22, 2024
[Balance]
- Nailgun
- Increased projectile hitbox size
- Lowered gravity
- Same speed but they travel slightly further and more straightforward
[Maps]
[New Maps]
- dm_radiowave_dev/mdom_radiowave_dev
[Reworked Maps]
- dm_angeles/mdom_angeles Complete rework
- dm_fotia_dev Complete rework
- dm_lumberyard Visual rework and gameplay polish
[Updated Maps]
- dm_facility_dev
- dm_deadlock
- mctf_obzen_dev
- dm_monthu_dev
- dm_marine_dev
- dm_wushu_dev Added jetpack
- dm_rig Added jetpack
- dm_acrophobopolis_dev
- dm_mannworks
[Removed maps]
- dm_oldcastle
- dm_hungry
[Audio Visual]
[Announcers]
- Reworked VOX Announcer with higher quality and more lines
[Cosmetics]
Added back cosmetic category, which now includes the backpack
Added the following cosmetics:
- Rocky Hoodie
- Rocky Pants
- Welding Overalls
- Welding Gloves
- Cybermare Ballcap
- Manon glasses
- Dirt Bike Helmet
- Tennis cap
Updated the quake gloves to be more in line with the rest of the gloves
Adjusted shine on Heavy-styled fingerless gloves
Changed several cosmetics colors to be closer to the default mercenary coloration:
- Driver Jacket and Pants
- Floral shirt
- Two piece suit
- Namshirt
[Weapons]
New china lake model and animations
Adjusted Revolver and Quad launcher reload anims to match their reload speed better
- Actual reload speed unaffected
- Animations are temporary
Fixed centered pistol offset
Updated bucket icons for the following weapons:
- Chainsaw
- Dynamite
- Grenadelauncher
- Railgun
- Revolver
- Rocketlauncher
- Shotgun
Renamed the "Gatling Gun" to "Chaingun" due to popular usage and copyright issues
[Bots]
- Added some bot names
[Mapping]
Added custom MCTF flag model ( not used on maps yet )
Added extol pack textures by idolon
Added deadsimple skybox texture
Added soundstage camera prop by wendy
Added dump truck and front loader models requested by LN95
Updated the FGD to standardise certain things like pickup heights and timers
Updated the gameplay zoo to accomodate these changes
Updated several material tags:
- OF skyboxes no longer appear under the tf tag, and instead under skybox
- Added the tf tag to tf2 styled textures that did not have it
- Removed the tf tag from several textures that cluttered the texture browser
- Signature decals now have the signature tag along with the tf tag
- Probably missed a few, create thread or github issue to report these
[System]
Added
of_dm_gamemode
, replaces:- of_infection
- of_duel
- of_arena
- of_mutator GUN_GAME
Added
mp_maxrounds_ffa
- Used instead of
mp_maxrounds
when in free for all modes
- Used instead of
Removed
of_forceclass
,of_allow_special_classes
andof_forcezombieclass
Now replaced with individual classlimits:
- A limit of -1 is unlimited, anything else limits the classes to that specified number
- May be used like the following:
- of_classlimit_classname -1
- of_classlimit_classname -1 4 2
- First parameter is mandatory, sets the default limit (-1 for unlimited)
- Second is BLU specific limit, Third is RED specific limit, both are optional
Re-added mat_picmip, of_picmip and mat_picmip serve the same purpose
Added the following voteissues:
- Change Gamemode
- Rock the vote
Successful voteissues no longer time out the voter, only failed ones do
Added autocomplete to the following commands:
- give_weapon
- addcond
- removecond
Added tintmasktexture param to OF_VertexLitGeneric
- Lets you define a seperate texture to use for coloring instead of using the alpha
[Gameplay]
Added the jetpack powerup
- "Back" type cosmetics are hidden with the jetpack enabled
- Added
of_jetpack 1
ConVar to spawn with it
Updated airstep detection such that it allows for trimping and surfing
Added "ProjectileSize" and "ProjectileGravity" weapon data for Nail type projectiles
Standardised centerfire projectiles
- Instead of manually setting a different projectile offset, centered projectiles now simply set the y value to 0
Added of_centered_projectiles convar
- Sets the projectiles to be centered even without viewmodels
Viewmodels centered 2 now makes viewmodels centered without affecting the projectiles
[UI]
[New System Capabilities]
Added "MouseInputPassType" and "DoMouseEventsAfterPassing" attributes to HUD elements
- MouseInputPassType settings 0 - Children of this element block it from getting mouse inputs 1 - Children handle mouse event and pass it to the parent element 2 - children pass the mouse event to parent without handling it
- DoMouseEventsAfterPassing
- Manually set of this child element should handle its even before passing it to the parent
Added support for relative child searching where applicable
- ex. "Child1/ChildOfChild/Chilchuck"
- ex2. "../../parentofparent"
Progress bar hud elements (ProgressBar and CExProgressBar) now accept dialog variables ( %variable% ) and update in real time when the variable is changed
CTFImagePanel now accepts dialog variables in the image section
ScrollablePanelList can now be created via res files without code
- Now supports all panel types
- Supports multiple selection
- Can be both horizontal and vertical
- Can be created via res file instead of just via code
- Scroll bar is no longer auto created
[HUD Updates]
Deathmatch modes now only have voice menu options which make sense for the mode
- Since the corresponding number for the voice commands can now differ between modes you can now use a global identifier instead of the number to bind voice commands
- ex. "voicemenu medic" instead of "voicemenu 0 0"
- You may find a list of the tags in scripts/voicecommands.txt
Loadout now has animations to go along with switching categories
%MaxAmmo% and %MaxClip% dialog variables are now created alongside the %Ammo% and %AmmoInReserve% dialog variables
[Bugfix]
- Fixed crash related to viewmodels
- Fixed issues relating to cosmetics appearing in spectator mode
- Fixed ammo packs being removed on pickup even if the player had full ammo if the player has a metal reserve
- Fixed pickups such as weapon spawners not following their parent object properly
- Fixed non default melees such as the lead pipe not being properly granted in arsenal
- Fixed Dance Floor not playing correctly
Playtest wave 2: Electric Boogaloo
OF Team | February 24, 2024
YOU STILL WANNA PLAYTEST WITH US??
Tired of dull sawblades, unexpected... wait, I think we said that last time. Our first wave of playtesters have been very helpful with ironing out bugs and testing out our upcoming features, they've been so diligent in fact that we've decided to go ahead and start another wave! So if you missed out on the first wave, now's your chance to try!
If you've sent us an application before but weren't accepted, now's the time to go back and re-read your responses, perhaps remove that paragraph about "Destroying the dev team and rebuilding it in my image" and clean up your writing.
Certain applications were put in the backlog already and were just waiting for a better time, which could be now!
So what are you standin around for, take that pen an quil and get writing!
Happy birthday to us all!
OF Team | February 14, 2024
Judging by the loud explosion sounds, wet thuds, and the orchestra of crickets on my front porch, it seems that one more year has passed for Open Fortress, not just one in fact, this time, it's FIVE!
For some, everything they could ever wish for, for others, no time at all, but we are OPEN FORTRESS, and this is a cause for celebration!
There is much to say, and to help, I'll consult my trustworthy advisor and Co-General. Let's hear what he has to say:
"Wait, what? Its been five years? IT HAS NOT BEEN FIVE YEARS ALREADY!!
I'm over here fending off polar bears from invading my home in the alaskan wilderness, and you guys are expecting a big anniversary post! Well, guess I better fax you guys this latest info for the occasion! (And hope one of these bears doesn't gnaw my arm off)"
While we wait for the wonders of technology to do their thing, why don't we look at less sentimental tearjerkers and rather at the future!
Indeed, the last couple of months have been quite eventful behind the scenes.
Open Fortress, in its core, is a collection of games and gamemodes with Team Fortress at its heart, so it's been quite saddening to see many of its modes and features forgotten and unplayed, which is why we've been cooking up a new way for the game to flow, which would not only let players experience more that the game has to offer, but also future-proof it for any new games and gamemodes added, for example: Retromode!
Now, not to get your hopes up too much, we're still not actively developing Retromode, our main focus is polishing up and finishing Deathmatch, but this is a big step towards a more varied experience.
Instead of the old and dusty map votes at the end of the game and tucked away vote menus to change the mutator, we now have a brand-new end of round voting screen that includes gamemodes, maps and mutators, all of which are now more customizable than ever, both on our end as well as the server's end.
The commonly used plugin "Rock the vote" now also has an in-game equivalent in the call-vote menu.
From having every single option as a possible vote, to only hosting a single map and gamemode, the system is as customizable as it gets, and we hope to see both regular players, as well as creative server hosts, to make full use of the system.
Of course, we're also working hard to allow old geezers to host servers without this new system so as not to break compatibility with tried-and-true plugins and methods.
The system, mechanics-wise, is mostly done; the only thing left is coding the UI for it, which will come with a few new VGUI updates as well.
The system is quite big, and we want to make sure everything works correctly, as it encompasses the entire game.
Many other changes and updates have been made during its development, and we might want to push those out before it's done, so we can't guarantee the vote system will be in the next update, but it definitely will come soon!
As for actual gameplay changes, you might've caught some teasers of a certain new powerup, the Jetpack!
Look Up! Look Down! Look Out! Mercenary does it everywhere!
The jetpack lets the user soar through the air at will and keep or increase their momentum, and don't worry about your jetpack running out mid-flight, modern medicine has made fall damage a thing of the past.
And before you ask, yes, a certain egg-laying Tachyglossidae is already back on his mission to collect gemstones or something like that, as our modeler James Retro has been hard at work to make this beautiful contraption a reality.
Now that's classy!
Many of our mappers have also been hard at work and wanted to share their progress:
Take a look at this in Dev bloodrun re-artpass by Pigeon!
And something that's been long in the making ( and is still in the making... ), a tutorial map! It's still quite a ways off, but we're making slow but sure progress on it.
A change in scenery is always nice to spice up the day.
Now, let's see how our fax machine is doing.
Ah, here it is.
Five years? It doesn't feel real, yet as I stare at this single gray hair on my head, the reality is beginning to set in that I'm almost thirty. Through working on this project, I've made some amazing friends and had the privilege to work alongside some very talented people, and despite the hardships we sometimes face, it's the wonderful community we've amassed that makes everything worth it. You all are what keep this whole thing going, what keeps me motivated to continue being part of this, and, of course, continuing to perform the part as your favorite masked man. To all of you, in the community and on my dev team both past and present, from the bottom of my heart, thank you all. - Stachekip
Five years... That's over half of Team Fortress 2's development time now, crazy to think about. One day you're opening Visual Studio to figure out what an "Int pointer" is, and next thing you know, you have blood on your hands, a goat horn stuck in your head, and a pentagram beneath you; and also a Project with hundreds of contributors and thousands of fans. The first year was so exciting. I had just turned 16, learning about the engine, figuring out how to make the bare necessities work, then people started joining, and wanting to contribute, and quickly things started developing, the first maps, the first actual playable build, I remember the multi-weapon system genuinely being an accident at first, giving a dozen weapons in each of the first 3 slots.
The Mercenary actually got a model! And his voice actor, now a good friend of mine, also decided to lend his hand and approval.
New UI, the Loadout system, more modes... As the second year dawned, the first big boom happened, and we had so much trouble hosting the downloads due to our non-existent funds.
Hosting is definitely something that is still plaguing us to this day...
Development on Retromode started, but quickly faded, more polish for DM, internal struggles with keeping the mod afloat and the team running, to the point where I left for a bit...
Third year's hazy for me due to my absence, but I know the team bounced back and got into the structure it is today, for the better I feel.
Next Year was the big shut-down, which halted development to a crawl, and finally we're back, trying as best as we can to continue what we started.
I am so thankful for everyone, especially the team, be it people who stuck around till current day, be it the ones that have moved on, and especially the ones who perished on the climb. - Kay