Where to start on discovering the types?
Posted: Mon Aug 21, 2023 12:19 pm
I have stated I wanted to first determine the different types that uox will use, and try to group related data/functionality together. But how to go about it, and where to start.
Nouns are a good place to start. Look over the code or the problem, and start describing it in terms of nouns. Those nouns are a place to examine.
Let's take an example. In UO/UOX3 one has SKILLs. That can be used as a noun, let's examine it a bit closer.
What is a skill:
There is a type (what skill is this).
It has a value
It has a limits (a range of what the value can vary between).
It has an attribute(lock) that can influence if the skill value can vary (up, down, constant)
And it has a way to influence its advancement though some defined mechanism (more on this later).
The first I noticed, is that among this set of description, there is a subset of groups.
Value seems to be closely associated , with the limits, and lock.
And the concept of a limit (range) seems pretty defined all by itself( and might be generically useful).
So it would seem, that this "might" break down to:
range
RangeValue (a value,range,lock)
Skill (type definitions, collection of RangeValues for each type, and a collection of advancement items).
One can organize many ways, but this is how I decomposed it, and my thought process.
So now lets look at that.
Nouns are a good place to start. Look over the code or the problem, and start describing it in terms of nouns. Those nouns are a place to examine.
Let's take an example. In UO/UOX3 one has SKILLs. That can be used as a noun, let's examine it a bit closer.
What is a skill:
There is a type (what skill is this).
It has a value
It has a limits (a range of what the value can vary between).
It has an attribute(lock) that can influence if the skill value can vary (up, down, constant)
And it has a way to influence its advancement though some defined mechanism (more on this later).
The first I noticed, is that among this set of description, there is a subset of groups.
Value seems to be closely associated , with the limits, and lock.
And the concept of a limit (range) seems pretty defined all by itself( and might be generically useful).
So it would seem, that this "might" break down to:
range
RangeValue (a value,range,lock)
Skill (type definitions, collection of RangeValues for each type, and a collection of advancement items).
One can organize many ways, but this is how I decomposed it, and my thought process.
So now lets look at that.