So the long-lasting 1.2 is finally upon us! Quite a few changes have occurred!
We'll be going in to beta for this one to ensure things are stable as a lot of things have changed under-the-hood.
Let's go through a bit of history
Over the years people have given great passionate feedback about their balancing concerns. This has been both exciting to see and also a very fine line to walk as everyone has a different perspective.
We started with just one "Reflex" and modified the game accordingly. After a while we split Reflex into two rulesets, "casual" and "competitive". This allowed us to have a "casual" version for new/casual players while keeping the high end play wrapped up in the "competitive" mode.
After some time with this setup we wanted to try out different balancing options. We didn't want to just change the "competitive" ruleset around often for two reasons: it was used for competitions, and we wanted a standard known Reflex. So what we added here was an "experimental" ruleset which we could change more quickly without affecting things, and it would allow us to iterate faster with the community.
This worked rather well, but it took up a lot of time. We only had a very small team, and it was easy to be spend a full day or more balancing / testing things. And while we were going through this, people wanted quicker turn-arounds, and different groups of people wanted to try different options. We needed another solution.
From here, we went to "experimental plus". This idea of "experimental plus" was to allow the community to modify the games "experimental plus" ruleset themselves. We had different feelings about this. Allowing the community to try/test rulesets was fantastic, it was near-instant turn-around, and different groups could try different settings as they pleased. At the same time however, we were concerned people might break the game doing silly things. So we limited the "experimental plus" builds to a small group of players who were giving the most gameplay feedback. We kept it to this group only as the games presentation means a lot to us, we want to be seen & experienced in the best and most consistent way.
So this catches us up to recent times.
What's happened recently is the experimental plus build was obtained by quite a few people and they started tweaking the game as they desired. On one hand this was great to see and it had more people playing! On the other hand it was dividing the community and complicating the user experience with the requirement of special builds and servers. Ultimately it feels unfair as not everyone gets to play with it. We had some discussions / decisions to make. The last point release disabled the experimental plus build, and we continued our internal discussions.
We had a lot of feedback in the discord which was great. We also had a lot of internal discussions about this. To us, modifying rulesets is people wanting "modding". While full modding is out of scope for us, it is an interesting way to look at it. At which point we pivoted and started to consider delivering the system in that fashion.
So what did we do?
Going with this new thought, we've integrated custom rulesets directly in to the game. You can now create a ruleset_fred.cfg in your game/ folder, and set a whole lot of variables in it to define your ruleset. This will allow you to "callvote ruleset fred", and correctly present ruleset "fred". Any client can connect & will have the ruleset correctly applied on their client. Rulesets will appear in the server browser so it's obvious what you're joining in to. We have also exposed the stakegun to the game constants, so people are able to play with this if desired too.
The official matchmaking servers will continue to run the internal "casual" and "competitive" rulesets. But this will allow the community to update / refine their own rulesets & experiment as they have desired.
New Weapon Skins + Curated Workshop:
We have planned to add curated workshop support to Reflex for a long time. With 1.2 we have achieved this! Players can now create their own skins and submit them to the workshop to be voted on and ultimately added to Reflex. We've added an in-game forge where you can tweak & see live updates of your custom skin. Please check out the documentation provided here for how to create your own:
We're greatly looking forward to see what the community comes up with!
To prepare for this, all (non melee) weapons have been further optimised, uv'd and had full art passes in readiness for community skins. We have also added dozens of official weapon skins to be collected.
As seen in other Steam titles, curated content that makes it into the game has the opportunity to earn the creator money from marketplace sales. We're also considering selling community group items directly on the store to help support their efforts.
Purity checks / sv_pure:
Purity checks essentially ensure people are running non-modified assets on their client. Such assets could include modified sounds, lua scripts, damage counting widgets, particle effects etc. The goal of this is to ensure an equal playing field for all parties.
This is desired for high level play as obviously it is an unfair competition if one player is playing the stock game, and another is playing the game with lighting disabled + damage counters + armor timers + mega airhorn sounds + etc etc.
So the big question is how should Reflex handle this. Internally we've discussed & tried quite a few different options / solutions.
We started off with a solution which would simply prevent you joining the game if the server was set to pure mode and you had custom addons. This functionally worked but it required players to manually uninstall all their addons, which completely fails on usability.
Extending this, we had Reflex hot loading/unloading assets as you join sv_pure servers / normal servers. This way the user can have all their addons installed, and it just hot-unloads them all for sv_pure servers. This was good, and we took it further by hiding sv_pure and associating it with the competitive ruleset.
While functioning, this ran into further issues, where now the user has to maintain two HUDs. Their "normal" custom one, and a stock HUD. While implementing solutions to this, things really didn't feel right.
A lot of what makes Reflex unique is customization. People love their custom huds, sounds, weapon packs, extra addons. The majority of these addons add to the game without pushing past the bounds of giving an unfair advantage. Just forcibly disabling all addons really fights directly with what Reflex is all about.
At this point we discussed other solutions such as white listing (which was rejected as it's going to turn into a nightmare - both technically and socially). We discussed simply blocking certain assets being modified only in sv_pure. But really none of them fully work.
At the same time, we didn't want to break all the addons in the workshop + force people to update things.
So that pulled us back to the drawing board, we had a solid thought about what Reflex is. Really what it offers right now is great. Rather than coming along with a sledgehammer and totally changing things, we can take smaller steps to remove things people are doing we disagree with, and keep the entire ecosystem people have grown to love still functional.
So the decision we came to was to prevent modification of several assets we deem core to the game. These include weapons, sounds etc. Armor, Mega respawn & fade sounds will be locked down, as part of this we've tweaked and increased the mega expire sound volume, as yeah it's been a little too on the subtle side.
We recognise that a large portion of the community has been playing with reduced particles for a while now, and while we're not totally fond of it, it is very popular (top in addon workshop), so we'll be leaving that one alone for now.
Also, we've restricted access to lm_clear inside the level editor as it was made for the level editor, NOT the game. To combat the "darkness" people are complaining about, we've increased the upper limit on the gamma slider.
We'll also be hiding damage done (per weapon) during match to combat damage counting widgets.
Ultimately, we want Reflex to be a fair environment to compete in, but we need to be careful to not to remove what makes Reflex unique.
- Change log -
Winter Camo Burstgun
Black Honeycomb Burstgun
Neon Grunge Burstgun
Winter Camo Shotgun
Black Honeycomb Shotgun
Radiant Grenade Launcher
Winter Camo Grenade Launcher
Polygonal Grenade Launcher
Black Honeycomb Grenade Launcher
Scorcher Grenade Launcher
Radiant Plasma Rifle
Winter Camo Plasma Rifle
Polygonal Plasma Rifle
Black Honeycomb Plasma Rifle
Neon Plasma Rifle
Radiant Ion Cannon
Winter Camo Ion Cannon
Polygonal Ion Cannon
Black Honeycomb Ion Cannon
Unit Ion Cannon
Radiant Rocket Launcher
Winter Camo Rocket Launcher
Polygonal Rocket Launcher
Black Honeycomb Rocket Launcher
Carbon Rocket Launcher
Winter Camo Boltrifle
Black Honeycomb Boltrifle
Abandoned Shelter (DP4) has had an official art pass
more cable variations
standard signage font
Implemented new menu flow
Implemented custom rulesets
Thumbnails now baked in game rather than generated on load (to reduce VRAM usage)
Implemented texture streaming, r_texture_memory_stream_cache controls cache size seen as "Texture Stream Cache" in settings
Added ability to load separate .cfg file for each ruleset (eg ruleset_frag.cfg)
gconst_ cvar's now always exposed and attached to active ruleset
callvote ruleset will report on client list of available rulesets
Added gconst_stakelauncher_enabled cvar
Added ruleset column in server browser
Asset system will now (silently) ignore assets that are modified but not allowed to be
Assets in internal_skins/weapons/* are not allowed to be modified
Prevent megaspawn & megacooldown sounds from being modified
Prevent armor pickup sounds from being modified
.ttf fonts can now hot-update
.wav files can now hot-update
Updated megahealth expire sound
Accuracy / stats are now hidden from players during game
Increased r_gamma range from 1.4 -> 3, to 1.4 -> 4
r_lm_clear / r_lm_build now only available in editor mode
Rare error in Menu.lua when opening last crate
Visual clarity addon is being blocked when it shouldn't
RL has visual issues in preview with r_mesh_quality 0
Speed legs cause issues on ragdoll/gib