Jump to content

Let's think of a way to underclock mods


Recommended Posts

Alright, alright, I know this has been suggested countless times, I'm sure you know what it means, and the response we got from Rebecca is that being able to underclock mods would add too much info per player. And it seems like they store mod data awkwardly.

So what's the point of this post? To see if we can conceptualize the most efficient way to store mod data for underclocking.


These ideas are going off of these assumptions (as noone outside of DE knows what the source code is):

Regular Mod data is stored like so:
Each mod has an ID, which connects to all the data of the mod (attributes, drain, polarity, max rank etc.)

Mod inventory is a list/2d array, starting with the ID, the rank, and amount. (which means a new entry for new ranks, but same entries for duplicate mods)

Warframe mod builds are stored like so:
Per Loadout, there is a list/2d array of 10 entries, first two are aura and exilus, while the other 8 are regular mods (im excluding arcanes for now).
Each entry consists of a polarity, then the mod ID, with the rank.

The other possible way to look at this, is that each mod creates a new ID in your inventory if it's unique, then the warframe/weapon build is just a list of 8-10 numbers.

Either way, one of the ways I can see adding mod underclocking, without confusing the entire system, is to add one more value to the build entry. You might be like, well yeah, just add the value you want to underclock at. Well yes, that is true, but if it was that simple, we would have mod underclocking already.
Instead, let's look at it like this: What if we didn't care what rank the mod was at in the entry. (I mean, we do, but bear with me).

Lets try this, we have two values: the interval (which equals the rank of the mod), and the effective rank. The interval is a integer ranging from 0 to the max rank, while the effective rank is a percentage. The interval determines how many changes we can make to the effective rank. interval of 0 would mean the effective rank is 0% (or 100, doesn't really matter), while an interval of 5 means the effective rank can be 0%/20%/40%/60%/80%/100%, or an interval of 3 means the effective rank

This would mean underclocking is loadout/build based, and not mod based.

This means we can simply check the effective rank along with the interval to determine what rank the mod should be at.

Now to figure out data costs

65 warframes, 363 weapons, 91 misc moddable items (zaws, archwings, pets, etc.)
Is 519, now if we aren't a lunatic with 120 mags, if a player had every item, we would need to allocate 519 extra blank for this data.

So what data type do we use? If we want to cheat, we can just use an unsigned byte/char, by rounding our "percent" and making a scale out of 100, costing us 1 byte.

If we want to be exact, and use a float, it would cost us 4bytes.

4(or 1) bytes * 9 slots to underclock * 65 warframes + 4(or 1)bytes *8 slots to underclock * 451 items....

Which means, (with these assumptions), mod underclocking could cost DE anywhere between on avg, 4.19 to 16.77KB per player. At 50Mil players, we're looking at an extra 209.6-838.6GB in terms of data storage just for underclocking.

Not to shabby, but that just puts into perspective how costly one change can be.

Mod underclocking can be mod based, with us holding the current rank, then the underclocked rate, but then we would need to reserve that for every mod that exists in your inventory, rather than the ones you use, i.e. much more costly, or harder to figure out which ones are being underclocked or which ones aren't


Edited by pazon123
Link to comment
Share on other sites

I would 100% tie the saving of the underclocking to the build in question, rather than the mod itself. Underclocking is specific to a build. Multiple builds could (and would, it's the entire point of this feature request) use the same mod at different "clockings".

The mods don't need to change one bit. They establish the max mod rank it can have based on how high you've raised the rank.

Underclocking a slot only needs to know how many ranks high the mod in that slot can go, and then save the rank at which you want to set it at. I don't know how the mods store or provide their stats for a build. It's possible each rank of a mod is an entirely different mod, in reality, behind the scenes. Without knowing the back-end, it still seems possible to have an underclocking feature be able to access the lower ranked versions of the slotted mod, and effectively use that mod's stats for the build instead of the max rank mod you have slotted (or whatever current maximum it has).


The datacost analysis was quite interesting, and puts things in perspective. (I think the alternative of owning a separate mod for each rank you want to use, like I try to do, generally - unranked, half ranked, max ranked at least - for mods that you can realistically have more than one of - unlike Umbral mods, for contrast, already chews up triple the normal data storage for one mod, (and more if they can be shared between main and sentinel, in case I have builds that overlap their use) if it's really their data storage that they seem to be concerned about.)


Link to comment
Share on other sites

5 hours ago, (PS4)AyinDygra said:

. I don't know how the mods store or provide their stats for a build.

This was the one thing I was concerned about, and is why I chose a roundabout way of doing underclocking. I don't know whether or not mod attributes are tied to a rank, a percentage or something completely different. Obviously, if just setting the rank was the thing, I feel like we would've had it by now.


On the topic of datacost, It's still weird to me to think that one (albeit tiny) feature requires 1 TB of extra space, that constantly needs to grow as the game grows.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...