Multiple Object Dilemma

Being an upcoming video game programmer, I have come across something that frustrates me. You know how, in say, Dark Souls, there are many many types of enemies? Or lots of different kinds of items?

How do they make each item or monster unique? Do they make an entire class file and header for each item and enemy, or is there something else here that I'm not understanding?
Even in old text-based RPGs most of them had an object inventory system from which everything was assigned a unique id, which would keep track of 100 otherwise identical "wooden club"s. In most of the systems I saw this number was indeed the only thing making the instances unique.
Usually only completely different kinds of enemies gets own class. Other has their appearance/behavior/name altered thought data. For example skeleton with sword, skeleton with bow and huge purple skeleton with mace are probably of the same class, but they have different weapon equipped, buff applied or some property "color tint" modified.

Same with items. For example in minecraft there is only one sword (class defining behavior of the swords). All different kinds of swords are created on startup (prototype pattern) by setting different sprites and damage values to them.

In Starcraft 2 almost every unit, item or ability is data-driven.
Topic archived. No new replies allowed.