NathanKell
...
Better Background
Improving the background environment of POTC.
We've touched on this in the Text and Voice thread--adding new sound clips, fixing background noise, people in church--but let's address this as an issue itself.
When you come right down to it, POTC really doesn't have that very good background characters--even though there are a bunch of voiceclips, they're played almost at random (amount of accent, timbre of voice, etc., can change one dialog to the next with _the same person); and there's only so many 'townsfolk' models--two or three old men, one old woman, and so forth.
Let's change that. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid="" border="0" alt="smile.gif" />
We have, thanks to a great bunch of modelers and skinners, a whole bunch of new characters. But unlike new ships, which are used automatically, new characters (new entries in the models array) aren't. Except for those few who have been added in new quests (or replaced generic models in old quests), they're really only available at the shop for player and officers.
However, most new models--understandably--are 'character' (to reuse the term) models--for distinctive people, not 'background' models. Understandably, because, well, it's more fun to make interesting people.
So, for you oh skinners who have time & inclination, I have a request. Boring models.
Well, not really boring; generic people can be interesting too. But characters without the heavy weight of story behind them, without specific 'hooks'.
---------
That's graphics.
Now, let's talk about sound. With voiceclips we have much more variety, but as I mention above that's almost worse than uniformity because the voiceclips are not organized by voice type, they're all in one big random pile.
So we need to split up voice clips into groups where the person sounds the same, and then only pull from one group per NPC.
--------
Non-uniformity.
The way the scripts work now, citizens start the game with a name and a model. If killed they get a new random name, but other than that they never change. Conversely, fantoms (bandits, dungeon enemies, etc.) are random each time they are created.
Neither approach is sufficient for a living world, though each have their uses in such a world (major NPCs for the former, miscellaneous banditry/vagabonds for the latter).
What we need, and what CCC and I did some work on, is something halfway between. For the Vice City mod, they're known as location fantoms, because while they are created as fantoms, some data (model, name, type--rich/poor, good/bad fighter) is stored in the location's definition. When a new location that needs them is opened the first time, they are created; each following time, the date is checked vs. their creation date, and at some point they are replaced with new people.
However, there is a problem with that approach. The problem is that they are then attached to a single location. This is not good enough for towns, where you want people to be at home, on the streets, at church on Sunday, etc. So we need...town fantoms. Again, stored outside the characters array because we don't need to store a full character-profile's worth of data, and because doing it that way is much faster (paging through the characters array is THE biggest time-use in the game).
And we need a way to set up schedules for them.
--------
Schedules.
Akella already has basic scheduling support. That is, you can set a start time and an end time for each character, and if the time of day is < start or > end, the character is not logged on.
There was also some beginnings of support for moving characters to church on Sunday and then back home, but it was neither complete nor used.
So we need to, under the townfantom define, have some way of storing:
Location
->start and end time to be in location
->days to be in location
->chance to appear if above conditions met.
However, what about, say, being at home? We need both a chance to be at home during the day, _and_ a certainty to be at home during the night. I can't at the moment think of an easy way to handle that.
--------
The models array.
I mention above how the ships array is good because whenever a ship is added, it is automatically used in encounters.
We need to do the same for models.
That is, rather than listing the specific models that a certain chartype or event can draw from (landenc and monster creation--that is, all the jungle encounters, all the vagabonds and bandits, all the dungeon monsters, and all the house residents), we need to say in each model define what it can be used for.
Then whenever we add a model, and set what things it can be used for, it will then automatically go in the random pile and be able to be chosen.
---------
Revamped citizen dialog.
We need to rewrite the citizen dialog to be more dynamic.
At best, I'd like to see it be totally generic--so you can take any NPC and give them citizen dialog, and stick them in any town, and they will talk correctly for their nation and town, and for the people in the town.
This will require the writing of a people-info system (Akella planned one, you can check how ask-about-people was originally handled), a merging of all the citizens' dialogs into one master file (and the nationality determining the text used), putting all town description in the town define rather than the town citizen's dialog, and listing all major NPCs in the town in the town define (for access from the people-info system).
At the same time, we shouldn't only use Akella's randphrase system (where it's different every time you enter dialog), we should also use semipermanent random dialog. That is, choose a formality level in dialog based on how the character was generated (model, wealth) and record that in the townfantom define. Then the next time you talk, the language will be, while not the same (due to randphrase), of the same style.
Improving the background environment of POTC.
We've touched on this in the Text and Voice thread--adding new sound clips, fixing background noise, people in church--but let's address this as an issue itself.
When you come right down to it, POTC really doesn't have that very good background characters--even though there are a bunch of voiceclips, they're played almost at random (amount of accent, timbre of voice, etc., can change one dialog to the next with _the same person); and there's only so many 'townsfolk' models--two or three old men, one old woman, and so forth.
Let's change that. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid="" border="0" alt="smile.gif" />
We have, thanks to a great bunch of modelers and skinners, a whole bunch of new characters. But unlike new ships, which are used automatically, new characters (new entries in the models array) aren't. Except for those few who have been added in new quests (or replaced generic models in old quests), they're really only available at the shop for player and officers.
However, most new models--understandably--are 'character' (to reuse the term) models--for distinctive people, not 'background' models. Understandably, because, well, it's more fun to make interesting people.
So, for you oh skinners who have time & inclination, I have a request. Boring models.
Well, not really boring; generic people can be interesting too. But characters without the heavy weight of story behind them, without specific 'hooks'.
---------
That's graphics.
Now, let's talk about sound. With voiceclips we have much more variety, but as I mention above that's almost worse than uniformity because the voiceclips are not organized by voice type, they're all in one big random pile.
So we need to split up voice clips into groups where the person sounds the same, and then only pull from one group per NPC.
--------
Non-uniformity.
The way the scripts work now, citizens start the game with a name and a model. If killed they get a new random name, but other than that they never change. Conversely, fantoms (bandits, dungeon enemies, etc.) are random each time they are created.
Neither approach is sufficient for a living world, though each have their uses in such a world (major NPCs for the former, miscellaneous banditry/vagabonds for the latter).
What we need, and what CCC and I did some work on, is something halfway between. For the Vice City mod, they're known as location fantoms, because while they are created as fantoms, some data (model, name, type--rich/poor, good/bad fighter) is stored in the location's definition. When a new location that needs them is opened the first time, they are created; each following time, the date is checked vs. their creation date, and at some point they are replaced with new people.
However, there is a problem with that approach. The problem is that they are then attached to a single location. This is not good enough for towns, where you want people to be at home, on the streets, at church on Sunday, etc. So we need...town fantoms. Again, stored outside the characters array because we don't need to store a full character-profile's worth of data, and because doing it that way is much faster (paging through the characters array is THE biggest time-use in the game).
And we need a way to set up schedules for them.
--------
Schedules.
Akella already has basic scheduling support. That is, you can set a start time and an end time for each character, and if the time of day is < start or > end, the character is not logged on.
There was also some beginnings of support for moving characters to church on Sunday and then back home, but it was neither complete nor used.
So we need to, under the townfantom define, have some way of storing:
Location
->start and end time to be in location
->days to be in location
->chance to appear if above conditions met.
However, what about, say, being at home? We need both a chance to be at home during the day, _and_ a certainty to be at home during the night. I can't at the moment think of an easy way to handle that.
--------
The models array.
I mention above how the ships array is good because whenever a ship is added, it is automatically used in encounters.
We need to do the same for models.
That is, rather than listing the specific models that a certain chartype or event can draw from (landenc and monster creation--that is, all the jungle encounters, all the vagabonds and bandits, all the dungeon monsters, and all the house residents), we need to say in each model define what it can be used for.
Then whenever we add a model, and set what things it can be used for, it will then automatically go in the random pile and be able to be chosen.
---------
Revamped citizen dialog.
We need to rewrite the citizen dialog to be more dynamic.
At best, I'd like to see it be totally generic--so you can take any NPC and give them citizen dialog, and stick them in any town, and they will talk correctly for their nation and town, and for the people in the town.
This will require the writing of a people-info system (Akella planned one, you can check how ask-about-people was originally handled), a merging of all the citizens' dialogs into one master file (and the nationality determining the text used), putting all town description in the town define rather than the town citizen's dialog, and listing all major NPCs in the town in the town define (for access from the people-info system).
At the same time, we shouldn't only use Akella's randphrase system (where it's different every time you enter dialog), we should also use semipermanent random dialog. That is, choose a formality level in dialog based on how the character was generated (model, wealth) and record that in the townfantom define. Then the next time you talk, the language will be, while not the same (due to randphrase), of the same style.