Multiple whole Materials/Textures on One Mesh.

Hello, I’m not too sure if this is the wrong place to put this, so I’ll just give it a shot, I am in the process of making Objects for a game, and in this game there are several objects that look the same, but have completely different Materials/Textures. I wish to know if it is better to either;

a) Duplicate the object and make each duplicate a different Material and spawn the items into the game using the name of the object eg. Bat.001, Bat.002 so on.
b) Make one object and somehow make a python script that will spawn the item in and during the spawn also assign it a material/texture.

P.s I am not worried about how These will be spawned into the game, I just wish to know if it would be better to create multiples of the same object, or one of the same object and change the mesh upon start of the game.

Thank you:)