• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Better Backgrounds

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.
 
I can make "everyday people" models if such are desired. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />


Regarding dialogue that can be used by anyone of the right nation, I look to Morrowind:

The rumour selected (when askign about any rumours) is random, but they all have set topics you can ask anyone about. Most give a specific type of answer, but some differ - however, these need to be set seperately.


Also, I would love to be able to see someone standing outside the tavern when I ask for directions to it actually 1) mentions that I am outside it, 2) gives me a weird look, 3) laughs or 4) just shakes their head and leave, mumbling about dimwits, blind folks or such! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile2.gif" style="vertical-align:middle" emoid=":))" border="0" alt="smile2.gif" />


And one thing that bugged me about those pick-pockets, if they came to me at a door I tended to tap space to catch them - and end up leaving! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/modding.gif" style="vertical-align:middle" emoid=":modding" border="0" alt="modding.gif" /> They would then be gone, of course... So, "town people" would be nice, heheheh! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/dev.gif" style="vertical-align:middle" emoid=":d:" border="0" alt="dev.gif" />
 
Hmm. For coolness, we could write down the XYZ coords of all important townlocations in the town define, and check char position vs. loc position in dialog. You could even do 'head left/right' based on that + char angle.

Re: Morrowind. That's already done for rumors (ironically, before I ever played MW). <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" /> In general I am Not Impressed by MW's dialog system, or really its script system in general; they seem terribly weak compared to POTC...
 
Excellent idea with the locations! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/me.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="me.gif" />


Heheh, well, the rumours merely was random as they already are here, they aren't that much, but what I meant with the dialogue in Morrowind is that it do tie in with the races (and their locations), not saying it is well done or anything. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" />

In fact, it is a bit annoying and limiting, the way it works there, editing dialogue... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/rolleyes.gif" style="vertical-align:middle" emoid=":rolleyes:" border="0" alt="rolleyes.gif" />

So, uh, I guess I only repeated what you said... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/oops3.gif" style="vertical-align:middle" emoid=":eek:ops2" border="0" alt="oops3.gif" /> I'll be quiet now.

<span style='font-size:8pt;line-height:100%'>For a bit...</span>
 
Morrowind has a system that works for it, and it's not a system I'm terribly familiar with anyway, so I shouldn't comment so; but I'm enough of a POTC partisan that I had to get my digs in. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/happy.gif" style="vertical-align:middle" emoid="^_^" border="0" alt="happy.gif" />
Nothing pointed your way, at all. :\
 
I could try to make a few boring models - I doubt I would be very good at "interesting" ones. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/happy.gif" style="vertical-align:middle" emoid="^_^" border="0" alt="happy.gif" /> But it's sleepy time now, so all the work is left to "waking-up-time" tomorrow. (saying morning would be a lie <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/rolleyes.gif" style="vertical-align:middle" emoid=":rolleyes:" border="0" alt="rolleyes.gif" />)

G'night! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/diomed.gif" style="vertical-align:middle" emoid=":dio" border="0" alt="diomed.gif" />
 
C'mon, I'm sure you could do some good models! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" /> Anyhow - g'night! Sleepy time here too! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile2.gif" style="vertical-align:middle" emoid=":))" border="0" alt="smile2.gif" />


...maybe I should sleep then... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />



And don't worry, Nathan, I am certain that you can come up with a far better system, I merely meant to point to what information is used by several characters, but I guessed it was just cake on cake and all that... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/oops3.gif" style="vertical-align:middle" emoid=":eek:ops2" border="0" alt="oops3.gif" />


Anyway, nappie-time!
 
Rico: "'waking-up-time' tomorrow. (saying morning would be a lie)"
ROTFL, that's a _perfect_ way of describing it. I'd always wondered what to call 'this morning' when it's not (and for me too it's mostly -not-).
I too would love to see what you come up with. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
 
Lol, I haven't played PotC since December, and I looked at the textures and wondered why only the Build ones were there. I uninstalled it! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/mybad.gif" style="vertical-align:middle" emoid=":facepalm" border="0" alt="mybad.gif" /> So, could someone send me a compressed version of the "/RESOURCE/Textures/Characters" folder, with all original textures? <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/huhh.gif" style="vertical-align:middle" emoid=":eek:k" border="0" alt="huhh.gif" />

My addy is <b>rgmchambers@t-online.hu</b>. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/me.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="me.gif" />

<!--QuoteBegin-NathanKell+Jun 30 2005, 06:41 AM--><div class='quotetop'>QUOTE(NathanKell @ Jun 30 2005, 06:41 AM)</div><div class='quotemain'><!--QuoteEBegin-->Rico: "'waking-up-time' tomorrow. (saying morning would be a lie)"
ROTFL, that's a _perfect_ way of describing it. I'd always wondered what to call 'this morning' when it's not (and for me too it's mostly -not-).
I too would love to see what you come up with. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
<div align="right">[snapback]120052[/snapback]</div><!--QuoteEnd--></div><!--QuoteEEnd-->
<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/happy.gif" style="vertical-align:middle" emoid="^_^" border="0" alt="happy.gif" />
 
Thanks! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/me.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="me.gif" />
 
Rico's becoming a modeler ! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" />
 
That would in fact enhance the atmosphere and draw-in-factor a lot. For many citizens the schedule would be split at the same times. During day they'd ply their original trade. During the evening they might be at some "social events": in the tavern drinking and brawling, around some fireplace chatting, the rich ones at a reception in the townhall or the pious ones at church. And at night in some house with a "Why do you wake me up?" dialog.

This could be done by adding two attributes to the characterdefinitions:
ch.location = "Oxbay_port";
ch.location.evening = "Oxbay_tavern";
ch.location.night = "Oxbay_houseR7";

and by rewriting the code that logs the characters in upon locationloading so that during evening or night it would use the appropriate alternate locations. Locators could IMHO be random.

Also the dialog could use appropriate nodes based on the daytime.

One could also use different "walk to" locators for different charactertypes: watchmen could walk from reload to reload lctr "checking doors", housewifes from merchant to merchant "shopping", workers could shuttle between carts and stockpiles carrying loads, i.e. sacks and barrels tied to the gun- and sword- locators.
 
<!--QuoteBegin-CouchcaptainCharles+Jul 3 2005, 12:34 PM--><div class='quotetop'>QUOTE(CouchcaptainCharles @ Jul 3 2005, 12:34 PM)</div><div class='quotemain'><!--QuoteEBegin-->That would in fact enhance the atmosphere and draw-in-factor a lot. For many citizens the schedule would be split at the same times. During day they'd ply their original trade. During the evening they might be at some "social events": in the tavern drinking and brawling, around some fireplace chatting, the rich ones at a reception in the townhall or the pious ones at church. And at night in some house with a "Why do you wake me up?" dialog.
<div align="right">[snapback]121058[/snapback]</div><!--QuoteEnd--></div><!--QuoteEEnd-->
Precisely!

<!--QuoteBegin-CouchcaptainCharles+Jul 3 2005, 12:34 PM--><div class='quotetop'>QUOTE(CouchcaptainCharles @ Jul 3 2005, 12:34 PM)</div><div class='quotemain'><!--QuoteEBegin-->This could be done by adding two attributes to the characterdefinitions:
ch.location = "Oxbay_port";
ch.location.evening = "Oxbay_tavern";
ch.location.night = "Oxbay_houseR7";

and by rewriting the code that logs the characters in upon locationloading so that during evening or night it would use the appropriate alternate locations. Locators could IMHO be random.
<div align="right">[snapback]121058[/snapback]</div><!--QuoteEnd--></div><!--QuoteEEnd-->

Yeah, though that doesn't allow day-of-week based locations.
Ah!
Idea. We don't need to fully describe locations, just start with the most specific and move down (I got into the same trouble, and found this same solution, in coding IT).
So we have:
ch.schedule.loc1 = (name of location)
ch.schedule.loc1.daymask = bitmask for days;
*.timemask = bitmask for 2hr blocks (0-2, 2-4, and so forth)
*.chance = 1, or <1 if only possibly there.
If the day/time is not correct, or if frnd() > chance, we look at loc2, and so forth.

We could add locators if needed.


<!--QuoteBegin-CouchcaptainCharles+Jul 3 2005, 12:34 PM--><div class='quotetop'>QUOTE(CouchcaptainCharles @ Jul 3 2005, 12:34 PM)</div><div class='quotemain'><!--QuoteEBegin-->Also the dialog could use appropriate nodes based on the daytime.<div align="right">[snapback]121058[/snapback]</div><!--QuoteEnd--></div><!--QuoteEEnd-->
Exactly!

<!--QuoteBegin-CouchcaptainCharles+Jul 3 2005, 12:34 PM--><div class='quotetop'>QUOTE(CouchcaptainCharles @ Jul 3 2005, 12:34 PM)</div><div class='quotemain'><!--QuoteEBegin-->One could also use different "walk to" locators for different charactertypes: watchmen could walk from reload to reload lctr "checking doors", housewifes from merchant to merchant "shopping", workers could shuttle between carts and stockpiles carrying loads, i.e. sacks and barrels tied to the gun- and sword- locators.
<div align="right">[snapback]121058[/snapback]</div><!--QuoteEnd--></div><!--QuoteEEnd-->
That's wonderful, brilliant!
 
<!--QuoteBegin-NathanKell+Jul 3 2005, 01:17 PM--><div class='quotetop'>QUOTE(NathanKell @ Jul 3 2005, 01:17 PM)</div><div class='quotemain'><!--QuoteEBegin-->That's wonderful, brilliant! <div align="right">[snapback]121144[/snapback]</div><!--QuoteEnd--></div><!--QuoteEEnd--> Aye, I'll sign that! VERY nice, to both CCC AND you, Nathan! Sounds great! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/me.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="me.gif" />
 
Indeed it is, Cat! Nothing like watching two brainiacs make their own storm for the brains! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile2.gif" style="vertical-align:middle" emoid=":))" border="0" alt="smile2.gif" />

Like watching a game of tennis, only this is <i>fun</i> to watch <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" /> - and it's co-op rather than vs! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" />

<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/me.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="me.gif" /> to you both, Charles and Nathan! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" />
 
<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" />, Lass. But it's all about /everyone/ throwing their brain-sparks in... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
-
I spoke above about formality level; we can key that to model category (per models thread).
And for citizen and vag and house resident dialog, we can allow or disallow certain nodes--like begging you mentioned--based on model cat.

Also, I'd been thinking about a global news queue; that is, every time something happens (Indians attack a colony, malaria, a new gold mine, whatever) an event gets posted to the news/rumor queue, and you can get a few weeks worth of news from bartenders and passing (friendly) ships; and snippets from locals, who see them as more rumors (and thus as part of the rumor queue for them).

But also--how about for each resident? They can not only talk about town-wide, island-wide, 'pelago-wide, or even world-wide (international-relations) news, but also personal news. Just moved in, moving out soon, house was burgled (perhaps by the player!), whatever.
And such things might lead to quests--need you to get a relative from another island, take the person to another island, protect the house, respectively, or whatever.

Just so they're more individual people, not carbon copies...
 
Having a lot of choices for news, and making the random choice, will indeed make the characters more individual. That's what I wanted to do with my sneaky trader - he says a lot of outrageous things, so when you meet him hopefully he isn't repeating himself. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />

I love this... Nice work! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/me.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="me.gif" />
 
<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/bounce.gif" style="vertical-align:middle" emoid=":b:" border="0" alt="bounce.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/bounce.gif" style="vertical-align:middle" emoid=":b:" border="0" alt="bounce.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/bounce.gif" style="vertical-align:middle" emoid=":b:" border="0" alt="bounce.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/bounce.gif" style="vertical-align:middle" emoid=":b:" border="0" alt="bounce.gif" />
*gets herself so excited over all this so that she has to go attack a few ships*
<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/sailr.gif" style="vertical-align:middle" emoid=":sail" border="0" alt="sailr.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/boom.gif" style="vertical-align:middle" emoid=":boom" border="0" alt="boom.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/duel_pa.gif" style="vertical-align:middle" emoid=":ixi" border="0" alt="duel_pa.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" />
 
Re. citizens sleeping at night: i should be able to make an AI that lets chrs lie flat on their backs "sleeping", but wakes them up if you get to close or perform certain actions. (Would allow you to plunder their chests at night <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/ph34r.gif" style="vertical-align:middle" emoid=":ninja" border="0" alt="ph34r.gif" /> My old sneakymania again <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile2.gif" style="vertical-align:middle" emoid=":))" border="0" alt="smile2.gif" /> )
But that would make sense only if someone could make the beds playable, i.e. (not what you think <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/no.gif" style="vertical-align:middle" emoid=":no" border="0" alt="no.gif" /> ) make "bed" locators for the rooms with beds and extend the chrpatch so that waking chrs could move out of bed.
Is that possible? Is it worth the effort?
 
Back
Top