Changeable equipment in 3rd person shooter -- modular items workflow question

Maybe this isn’t precisely a game design question, but you’ll see why I put this here rather than a more technical focused forum.

So, like any other 3d tactical shooter, I want the player to be able to take clothihng and gear from defeated enemies, and equip it on their character. This seems like such an essential gameplay feature, I just can’t fathom not implementing it. The problem is the workload that this introduces on my team of two artist – one being myself who is a beginner.

My theory about how to tackle this problem in the most efficient way is such:

Enemy soldiers will always be a single material. Their equipment is what will be the modular assets for our friendly playable characters, but the enemies wont be changing equipment. So, all their clothing and equipment is combined into a single 2k map. But, that clothing and equipment I will extract and keep as a separate mesh, with its own map. Perhaps a 1k map or less for small or camouflaged equipment that will look muddy anyway.

Then, these separate meshes, I will adjust to fit the player character models, so for every combination of gear and clothing we would need an adjusted rig, but also this would mean each player character would be composed of several materials. One for the face, one for equipment, one for different pieces of equipment, etc.

And I can’t think of any way around that without making a single material character for every possible gear combination. Right? But for the rigging, perhaps there is some method that allows new meshes to be applied to a rig and function properly without needing to bring in a new character entirely?

Now, in the beginning we can keep the amount of equippable items at a minimum, and expand from there, but my theory is good in general? I’m sure somebody here has done something similar, so hopefully they’ll be kind enough to share any lessons learned.

Multiple materials is normal. Depending on how many characters doing this are visible at any given time it could be a totally acceptable performance cost. Less, or one material, is clearly preferable and you can do all kinds of good stuff to make that happen at runtime but the real question before you consider doing that is “does this actually affect performance in an unacceptable way?”.

1 Like

Right. That is the big question. But one I can only theorize about at this point based on what I’ve read.

But I know that we will be wanting to put enough environmental detail into the game to demand that we optimize as much as possible, and when it comes to enemies and friendly AI there would usually be at least 20 NPCs and possibly hundreds of raycast happening at once not to mention AI scripts running in the background.