Search the Community
Showing results for tags 'creative writing'.
Found 4 results
ADVERTISEMENT: ADVERTISEMENT: History: Managing a small family Trading Coster is an awkward business on the Sword Coast. Whitehand Trading was no exception. Born (literally, in a wagon trailing into Waterdeep) into the family business, Aran grew up alternating between the open road of Trade Way and the harbor of Baldur's Gate. While his father managed clients and gladhanded trade deals, and his mother organized accounts receivable and drafted contracts, Aran learned the family business from his first word, "bandits". When his younger sister was born, the family rejoiced at the prospect of a new generation of Whitehands building the family business into a worthy competitor for the major trading companies. The varied life suited Aran well, shadowing both his mother and father. The short but fierce oar pulling to load and unload ships, standing watch and training with the hired swords, hard riding, running off bandits and gibberlings, and nightly contract copying and accounting by candlelight fed both body and mind well. If things were not always profitable, Aran was not likely to complain. As he grew, Aran built a strong supportive presence in the family business. Unfortunately, life's dreams and expectations do not always match the measure of a man. Aran was dedicated, strong, and followed his family well. But while his father could charm mithril from a dwarven smith for an elven artist's use, Aran stayed in the backround, acting notary. While his mother could master the intricacies of contract law and work with ombudsmen and creative contracts, Aran copied documents and watched from the sidelines. The hired swords were not the best of teachers, and from them he learned odd lessons, like how to stay silent when you should speak, when to brag when you should be silent, and most of all that laws could be twisted and not always to benefit the greater good. When his younger sister was born, she was the light of his life, but as she grew it became painfully obvious that in comparison Aran was just not smart enough to truly master the diplomacy, leadership, and smooth talking necessary to make a family Coster competitive. Hard work could just not compensate for a lack of innate ability. Aran would have been content with the secondary support role, riding out with caravans and handling the bookkeeping, and letting his sister become the beauty and brains for the business. He idolized his younger sister. Fate plays her tricks on everyone, though. Elena was more gifted than any in the family, and showed precocious magical talent. On a standard trade run, her beauty and intellect caught the eye of a courtier mage to the Lady of Waterdeep. With Elena offered a chance to apprentice with the young woman mage at court, the family faced some harsh economic choices. Establishing Elena in court would take more, and steadier, resources than the family could provide. Reading the future, the family decided to sell the business to a larger Baldurs Gate Trading Coster and abandon their independence. The 14 year old Elena would apprentice, and the family would retain employment with the larger firm in the central offices. 20 year old Aran would finish the last year of his "apprenticeship" in a real apprenticeship with a major trading family. "Either he will learn to work the system", the senior Whitehand said, "or it will work him." Aran lasted two weeks at the larger firm before an unfortunate remark sent a Coster hireling through a window and Aran out on his own. His restraint at not following through on the beating saved the man's life and Aran from prison, but it was obvious that the Company Life was not a good fit. Disliking the harsh dicipline (and wary of being turned into a procurement officer or staff scribe), he avoided the standard Mercenary outfits, and struck out south to build his own trading company. Rowing crew with trade galleys, hiring on with small trade caravans, and selling his services as a copyist, he gradually drifted south seeking an opportunity to begin again. Several years as a hired sword and pen have provided some harsh lessons for Aran, but he arrived finally in Calimport with some experience under his belt. Business plans have been built and abandoned, temporary travel companions come and gone, and Aran now faced a rather uncertain future. He has learned to keep silent, to hit the door with shield and shoulder hard, and to not always look carefully at what he is copying. He has also learned that there are things that he is not willing to do in the name of profit, and that generally people who write things down do not actually mean everything they write. Most of all, he has learned that going it alone is lonely, food is best shared with others, and getting too drunk is not worth the trouble. He is definitely ready for a change and a chance to forge a new direction. Psychology/Interest In the past, mostly humans as adversaries and as companions. Mostly riding travel with some sea rowing in Trade galleys. Slight awe of Elves and Dwarves, sight distrust of Dwarves and Gnomes, solid distrust of halflings. Never seen any other demi-humans. No magical ability at all; not afraid, just convinced he is not smart enough. Prefers to fight cooperativelty with companions and to write alone. Would rather fight than talk, would rather write than speak publically, and would prefer to cooperative ventures to having (or being) a leader. His one (hidden) interest is puzzling out older documents. Not the contents, which he is pretty sure he wouldn't understand anyways, but the form and structure, rebuilding documents and figuring out what should go with what. His one constancy is his letters home to Elena, which he scribes in small script to save paper and keeps (two copies; you never can be too careful, you know) in a parchament case in his belongings, searching for times to send them via post or messenger when opportunity arises. DM Notes: Scrivener rather than Sage, Copyist rather than Writer. Unlikely to tolerate heavily evil actions, but definition of "evil" is slippery, as is definition of law. Letters home are the most telling of inner workings - will be provided as he wries them (Aran is smart enough to keep to himself, but may not be smart enough to avoid snooping eyes, so material will be provided for DM subterfuge in case it is warranted). Outdoor combat oriented; longsword, shield, composite longbow. Favors shield tactics and defensive fighting but is learning other ways. Rather cautious.
Telling stories. I could go into a long intro here about the psychology and sociology of male and female bonding using storytelling, establishment of social hierarchies and patterns of mutual attraction as shown through trading of backgrounds, etc.... but really, it's just a toy, not a thesis. So, stories... folks like them. Let's let Aran have some more to share. We have some little "reveals" in place, where storytelling has a point, like Anomen vs Aran over swearing and the vignette about stuffing a stuffy officer in the hold of a trading ship bound for Calimport; we have a past/former/chick-is-toast story for the romance, and here and there we have other small reveals that slip little bits of insight into the character within the existing mod dialog. But one thing that people do while camping, hiking, sitting around in the workroom/lounge, etc., is tell stories to entertain and distract. War stories in particular, among people who are friends and 'been there, done that". Like singing, or telling jokes, or discussing things, these stories can serve as a distraction or as a way of opening up; most of the time, they don't involve bragging (though I am sure we all have a friend who drives everyone nuts by telling stories that do brag - or worse, things like "So, this one time, at Band Camp"... no points for the cultural referent, and shame on you for watching teen raunch flicks in the first place ). We have an extensive backstory for Aran already available to mine for ideas, and all of the areas he has visited for more ideas - writing the stories is not the problem. Keeping them short enough, putting them deep enough in the dialog structure so only players who really, really want that deep an engagement with Aran's dialog will see them (we don't want action-oriented players to have to be going "crap, he is talking again.... hit the spacebar 12 times quickly, and maybe we can page through all this and get to the good stuff"). We also want some of them to be scattered about, and some of them to be available via PID or friendtalk as a panel of stories, so if a player is in the mood for a diversion he or she can ask for a few of them in a single sitting. There ends up being three or four simple approaches to this. The first is to write a dialog response that asks or leads directly to the story, and never refer to it again: 1. The Straightforward Single-Shot Story CODE ++ ~[PC] So, Aran, tell me about this lost love of yours. Was she pretty?~ + c-arans_lost_love_story This is simple, allows the PC one crack at hearing the story, and even can be varied by allowing players to reference the information later, as other materials in Aran's workthreads around here have already shown: CODE ++ ~[PC] So, Aran, tell me about this lost love of yours. Was she pretty?~ DO ~SetGlobal("c-arans_lost_love_story_told","GLOBAL",1)~ + c-arans_lost_love_story with later on, CODE + ~Global("c-arans_lost_love_story_told","GLOBAL",1)~ + ~[PC] You would think you would never look at another redhead in your life, after what's-her-name up in Moonshea broke your heart and croaked.~ + c-oh_yeah_I_really_appreciate_being_reminded_you_jackass We can expand this with three other variants, much like Cromwell's or Cespy's materials run, by creating a pool of potential stories and then either creating a list or creating a loop - or running it the way PIDs create more interest, using a Random approach. Lists A simple list just gives the player a set of options. the simplest of these goes like this: CODE ++ ~[PC] So, Aran, tell me a story.~ + c-aran_story_time // <-- snip --> IF ~~ c-aran_story_time SAY ~[ARAN] Well, to be sure, I can tell a tale, tall or not. What do you be wantin' to hear about?~ /* Pool of Stories to Tell */ ++ ~[PC] Tell me a story about cooking.~ + c-carbonanottold ++ ~[PC] Tell me a story about getting to Calimport the fiorst time you saw it.~ + c-arancalimportnottold ++ ~[PC] Tell me a story about that inn where we picked you up. What was his name... Gerris?~ + c-arangerrisnottold ++ ~[PC] Tell me a story about your childhood.~ + c-arandadtradenottold ++ ~[PC] Tell me a story about how you joined the Flaming Fist.~ + c-aranfistfightnottold ++ ~[PC] Tell me a story about fighting in the Moonshea Isles.~ + c-aranmoonfightnottold ++ ~[PC] On second thought, your stories are not that entertaining. Let's just keep going.~ EXIT END This works well - it can be repeated, or linked back in any number of ways, and is very efficient. If a player wants to hear a specific story again, it is right there. We could get fancy, and make a story unavailable after each one by adding globals, which is the way many folks handle giving information - clear out the talks already taken, so that the remaining ones are left for the player to follow. BUT - real folks don't walk around handing out a menu of available "stories". And sometimes they are in the mood or remember different ones. And very seldom do I find myself saying to a friend "Hey, tell me a story about how you became a musician". So, a more interactive approach would be to use the loop CODE ++ ~[PC] So, Aran, tell me a story.~ + c-aran_story_time // <-- snip --> IF ~~ c-aran_story_time SAY ~[ARAN] Well, to be sure, I can tell a tale, tall or not. Let's see...~ /* Pool of Stories to Tell */ IF ~Global("c-arancarbonara","LOCALS",1) Global("c-arancalimport","LOCALS",1) Global("c-arancalimport","LOCALS",1) Global("c-arangerris","LOCALS",1) Global("c-arandadtrade","LOCALS",1) Global("c-aranfistfight","LOCALS",1) Global("c-aranmoonfight","LOCALS",1)~ GOTO c-all_stories_told IF ~Global("c-arancarbonara","LOCALS",0)~ GOTO c-carbonanottold IF ~Global("c-arancalimport","LOCALS",0)~ GOTO c-arancalimportnottold IF ~Global("c-arangerris","LOCALS",0)~ GOTO c-arangerrisnottold IF ~Global("c-arandadtrade","LOCALS",0)~ GOTO c-arandadtradenottold IF ~Global("c-aranfistfight","LOCALS",0)~ GOTO c-aranfistfightnottold IF ~Global("c-aranmoonfight","LOCALS",0)~ GOTO c-aranmoonfightnottold END IF ~~ c-carbonanottold SAY ~[ARAN] Well, I could tell you about th' rats an' th' Coster waggon...~ = ~[ARAN] <STORY_GOES_HERE>>~ IF ~~ THEN DO ~SetGlobal("c-arancarbonara","LOCALS",1)~ EXIT END IF ~~ c-all_stories_told SAY ~[ARAN] Well, I already done told you all th' stories I can think of. I'll think on it, but right now I be stumped.~ IF ~~ THEN EXIT END This "loop" is designed so that each time a different state calls to it, the bottom-most story gets "peeled off" - it plays, sets a global, and the next time through the first reply from the bottom is evaluated false and skipped, allowing the second one to play. This construction is good for PIDs and such, or for (in this case up to 6 ) multiple references in several talks, as every time a player asks to hear a story, a new one is played, until all are exhausted. It has some drawbacks, too - you can't repeat a story, so one misplaced click and it is either reload from a previous save or break out NI or DLTCEP or wade through the .tras - it also does not mirror more natural talk patterns, where people can refer to or say "hey, that Moonshea stuff you were talking about... how did that go again?" The Random approach is repeatable as well, with a different focus. Here, only one story is told in the state, and it can be referred to any number of times, but if every story has been told you can still draw the player off of it: CODE ++ ~[PC] So, Aran, tell me a story.~ + c-aran_story_time // <-- snip --> IF ~~ c-aran_story_time SAY ~[ARAN] Well, to be sure, I can tell a tale, tall or not. Let's see...~ /* Pool of Stories to Tell */ IF ~RandomNum(6,1)~ GOTO c-carbonanottold IF ~RandomNum(6,2)~ GOTO c-arancalimportnottold IF ~RandomNum(6,3)~ GOTO c-arangerrisnottold IF ~RandomNum(6,4)~ GOTO c-arandadtradenottold IF ~RandomNum(6,5)~ GOTO c-aranfistfightnottold IF ~RandomNum(6,6)~ GOTO c-aranmoonfightnottold IF ~Global("c-arancarbonara","LOCALS",1) Global("c-arancalimport","LOCALS",1) Global("c-arancalimport","LOCALS",1) Global("c-arangerris","LOCALS",1) Global("c-arandadtrade","LOCALS",1) Global("c-aranfistfight","LOCALS",1) Global("c-aranmoonfight","LOCALS",1)~ GOTO c-all_stories_told END IF ~~ c-carbonanottold SAY ~[ARAN] Well, I could tell you about th' rats an' th' Coster waggon...~ = ~[ARAN] <STORY_GOES_HERE>>~ IF ~~ THEN DO ~SetGlobal("c-arancarbonara","LOCALS",1)~ EXIT END IF ~~ c-all_stories_told SAY ~[ARAN] Well, I already done told you all th' stories I can think of. I'll think on it, but right now I be stumped.~ IF ~~ THEN EXIT END This has some fun in that Aran can tell random stories, and even repeat himself, as people often do. After all possible stories are told, the dialog politely lets the player know that no matter how many million times they click, all potential pathways have been taken. But this one, well - let's just say that it is bad enough in RL to hear the story of how Jerry got into Harvard for the 17000th time.... so this one is a little too real for me. So, let's play with the loop variant, add a CHAIN to explore how we might allow a player to get an old story retold, and in general "prettify" the whole concept. Let's see what we can do to extend it to allow some repetiton and more interactivity for the player, too. CODE APPEND ~C-ARANJ~ /* <<WHATEVER_STATE_I_AM_COMING_FROM>> has three replies added- */ + ~!Class("c-aran",BARD_ALL)~ + ~[PC] This is depressing and dark. Come on, Aran, liven things up a bit. Tell me a story.~ + c-aran_tell_untold_story + ~Class("c-aran",BARD_ALL)~ + ~[PC] This is depressing and dark. Come on, Aran, liven things up a bit. Tell me a story.~ + c-aran_tell_untold_story_bard + ~OR(6) ~Global("c-arancarbonara","LOCALS",1) Global("c-arancalimport","LOCALS",1) Global("c-arancalimport","LOCALS",1) Global("c-arangerris","LOCALS",1) Global("c-arandadtrade","LOCALS",1) Global("c-aranfistfight","LOCALS",1) Global("c-aranmoonfight","LOCALS",1)~ + ~[PC] Hey, Aran, I remember you telling a story... can you tell it to me again?~ + c-aran_tell_told_story /* and then, the reply sequence to the above... */ IF ~~ c-aran_tell_untold_story SAY ~[ARAN] I can do that, though I be no bard. Let me see...~ IF ~Global("c-arancarbonara","LOCALS",0)~ GOTO a1433 IF ~Global("c-arancalimport","LOCALS",0)~ GOTO a1432 IF ~Global("c-arangerris","LOCALS",0)~ GOTO c-arangerrisnottold IF ~Global("c-arandadtrade","LOCALS",0)~ GOTO c-arandadtradenottold IF ~Global("c-aranfistfight","LOCALS",0)~ GOTO c-aranfistfightnottold IF ~Global("c-aranmoonfight","LOCALS",0)~ GOTO c-aranmoonfightnottold IF ~Global("c-arancarbonara","LOCALS",1) Global("c-arancalimport","LOCALS",1) Global("c-arancalimport","LOCALS",1) Global("c-arangerris","LOCALS",1) Global("c-arandadtrade","LOCALS",1) Global("c-aranfistfight","LOCALS",1) Global("c-aranmoonfight","LOCALS",1)~ GOTO c-aran_all_stories_told END IF ~~ c-aran_tell_untold_story_bard SAY ~[ARAN] I can do that. Just remember, my bardic days be relatively new, so I don't have them all embellished an' prettified, wi' proper pronunciation an' projection. Sorry about that spittle, there. Somethin' about 'p' words, eh?~ = ~[ARAN] Let me see...~ IF ~Global("c-arancarbonara","LOCALS",0)~ GOTO a1433 IF ~Global("c-arancalimport","LOCALS",0)~ GOTO a1432 IF ~Global("c-arangerris","LOCALS",0)~ GOTO c-arangerris IF ~Global("c-arandadtrade","LOCALS",0)~ GOTO c-arandadtrade IF ~Global("c-aranfistfight","LOCALS",0)~ GOTO c-aranfistfight IF ~Global("c-aranmoonfight","LOCALS",0)~ GOTO c-aranmoonfight IF ~Global("c-arancarbonara","LOCALS",1) Global("c-arancalimport","LOCALS",1) Global("c-arancalimport","LOCALS",1) Global("c-arangerris","LOCALS",1) Global("c-arandadtrade","LOCALS",1) Global("c-aranfistfight","LOCALS",1) Global("c-aranmoonfight","LOCALS",1)~ GOTO c-aran_all_stories_told END /* (Of course, they could also be split up and added to several states, if wanted - it is likely that in the final implementation there will be more stories, and certainly two on this list will be screened out if the player has already had the friendtalk that tells of Calimport or the romance talk that tells about the trading incident. ) */ IF ~~ c-aran_all_stories_told SAY ~[ARAN] I can think o' naught that I haven't told you already. Mayhap I can tell you one o' them again?~ ++ ~[PC] No thanks. If you are out of stories, then I hope you come up with some riddles or something, or this will be a very long trip through the Underdark.~ + <<exitstate>> ++ ~[PC] That sounds interesting. Go ahead, tell me something you have already told. Your stories are always interesting.~ + c-aran_tell_told_story ++ ~[PC] I think we have had enough talk. Let's move on.~ + <<exitstate>> ++ ~[PC] Thank the gods you have run out. You stink at telling stories anyways. I was getting tired of humoring you~ + c-aranshutup75 ++ ~[PC] Never mind. I was joking, anyways. I'd rather cut my own throat than hear you blater on about things.~ + c-aranshutup74 END END // of append to c-aranj /* here, we play with CHAIN to allow an expandable state. It only gets triggered if one of those inner conditions is met, so it can build a longer conversation each time a story is told. */ CHAIN ~C-ARANJ~ c-aran_tell_told_story ~[ARAN] Sure thing. I can tell you what I be rememberin', anyways. Let's see...~ == ~C-ARANJ~ IF ~Global("c-arancarbonara","LOCALS",1)~ THEN ~[ARAN]I could tell you about th' rats an' th' Coster waggon again...~ == ~C-ARANJ~ IF ~Global("c-arancalimport","LOCALS",1)~ THEN ~[ARAN] I could tell you about th' first time I got myself to Calimport again, if you want.~ == ~C-ARANJ~ IF ~Global("c-arangerris","LOCALS",1)~ THEN ~[ARAN] I do remember tellin' you about Gerris an' me workin' short haul from Neverwinter to th' Moonshea Isles. That be a tale.~ == ~C-ARANJ~ IF ~Global("c-arandadtrade","LOCALS",1)~ THEN ~[ARAN] I done told you about my father gettin' trapped in th' trade contract... you want to be hearin' it again?~ == ~C-ARANJ~ IF ~Global("c-aranfistfight","LOCALS",1)~ THEN ~[ARAN] I think I told you o' th' time we run off those northmen up in th' Isles, unless you want to be hearin' it again.~ == ~C-ARANJ~ IF ~Global("c-aranmoonfight","LOCALS",1)~ THEN ~[ARAN] I told you about gettin' in wi' th' Fist, but do you want to be hearin' it again?~ == ~C-ARANJ~ ~[ARAN] That be all I can remember tellin' you about, anyhow.~ END + ~Global("c-arancarbonara","LOCALS",1)~ + ~[PC] Tell the story about the rats.~ + a1433 + ~Global("c-arancalimport","LOCALS",1)~ + ~[PC] Tell me about Calimport.~ + a1432 + ~Global("c-arangerris","LOCALS",1)~ + ~[PC] That Gerris fellow - the one you talked about when we first met. Tell me that story again.~ + c-arangerris + ~Global("c-arandadtrade","LOCALS",1)~ + ~[PC] Tell me about the trading gone bad.~ + c-arandadtrade + ~Global("c-aranfistfight","LOCALS",1)~ + ~[PC] Tell me how you ended up in the Flaming Fist again.~ + c-aranfistfight + ~Global("c-aranmoonfight","LOCALS",1)~ + ~[PC] Tell me about that battle up in Moonshea again.~ + c-aranmoonfight ++ ~I think we have had enough talk. Let's move on.~ EXIT APPEND ~C-ARANJ~ IF ~~ c-arangerrisstory SAY ~[ARAN] Gerris were a right fine companion, way back at th' start o' th' Moonshea work I did, an' right before th' Iron Throne got busy makin' life miserable for honest folk. He trained wi' the Old Order, though sometimes he acted more Sun Soul than anythin' else... an' I be right sorry his daughter an' I , we made things right complicated. Happy, though, on account o' it put me in your path, eh?~ = ~[ARAN] But a long time ago Gerris an' I were workin' across to Moonshea on one o' them short-haul galleys what ply that route out o' Neverwinter. Gerris, he trained me right proper, too, an th' cookin' front. He had to be right creative, on account o' most o' th' crew were Luskan fisherfolk, an' thought a good meal were dried fish an' small beer.~ = ~[ARAN] Well, one o' th' older oarsmen, he took a dislike to Gerris right off. There was naught Gerris could do to please th' bastard. He tried cookin' just what th' oarsman wanted, an' makin' it as special as he could, on account o' a trade galley be a small place, an' a little bad feelin' gets magnified right large.~ = ~[ARAN] The bugger would have naught in th' way o' reconciliation, though, and kept gettin' into Gerris' face. Finally, Gerris told him that if he didn't shape up, Gerris would put a curse on him.~ = ~[ARAN] O' course, th' oarsman laughed it off, an' punched Gerris right proper. Gerris didn't say naught, just took the punch, then made some sort o' gesture. Th' two stalked off, an' everyone gave 'em both as wide a berth as possible.~ = ~[ARAN] Well, two days later, th' oarsman came runnin' up from th' head... that be th' latrine, on a boat, a bathroom, right? Well, he came up just hollerin' bloody murder, ran past us, an' dove over th' side. We looked downon him, an' lo an' behold, that bastard was passin' flame instead o' gas!~ = ~[ARAN] We fished him out proper, an' soon he was as right as rain, but Gerris, he just shook his head an' sighed, askin' after th' man's health. He made a few passes wi' his hands in th' air, an' from then on, noone messed wi' him nor wi' me.~ = ~[ARAN] Now, I don't rightly think there were no magic in Geris' hands, him followin' monks ways so short a time. So when I saw him back wi' his wife an' daughter when I got to Amn a few years later, I got him right drunk an' asked him how he did it. An' that's how I learned that a small amount o' fireberries be a great spice... but you put too many in a man's portion, you'd best be gettin' a new set o' clothes lined up right quick, an' some healin' salves on hand. ~ IF ~~ THEN DO ~SetGlobal("c-arangerris","LOCALS",1)~ EXIT END IF ~~ c-aranmoonfight // PLACEHOLDER SAY ~[ARAN] ~ = ~[ARAN] ~ IF ~~ THEN DO ~SetGlobal("c-aranmoonfight","LOCALS",1)~ EXIT END /* Boy, I have been playing a little Mount & Blade, i think... */ IF ~~ c-aranfistfight SAY ~[ARAN] Well, I had just come off o' Moonshea, about as down as a lad can be. My ladylove dead, th' Moonshea companies disbandin' on account o' we thrashed th' Iron Throne bastards... well, more like you thrashed Sarevok an' wiped out their command structure, but th' fightin' in the field was still fierce for a bit afterwards. Sometimes it takes awhile for an army to realize that th' war be over.~ = ~[ARAN] Anyways, I was wanderin' around Nashkel, when th' Guildmaster calls me in an' gives me some work punchin' north on th' Trade way. Small caravan, just a full fist, not anythin' big. A tag along, really, as there were a load o' more powerful costers what had hired th' Flamin' Fist to protect some serious tradin' waggons headed up Neverwinter way, an' we were just really for show more than anythin'. But it was work, so I was not goin' to be turnin' it down, eh? We headed out mid-winter, tryin' our luck.~ = ~[ARAN] Well, we made it up into th' hills north o' Nashkel, an' were just south o' Beregost when we ran into a snow squall in th' middle o' a clear day. Me an' Kalavi... she were th' Stave, but she fought well enough, as she had just recently taken up wi' Ilmater and had been a seasoned fighter same as me... we knew there was more to this than just some freak weather, on account o' no snow squall we ever saw had lightnin' accomanyin' it.~ = ~[ARAN] We spurred up ahead straight into th' storm, keepin' our eyes open, her wi' a big staff an' me wi' my trusty sword ready. Th' wind was somethin' fierce, an' we almost wew about to turmn back out when we broke clear into a bubble o' protection o' some sort. We found ourselves suddenly in th' open, at full gallop across a field o' icy cobblestones, runnin' right up th' arse o' two ice trolls an' a whole mess o' orcs.~ = ~[ARAN] Lucky for us Tymora's Coin was spinnin' our direction. They was too busy payin' attention to th' 'Fist in field plate whackin' at 'em, an' th mage what was holdin' off that magical storm wi' some kind o' big bubble shield. Good thing, too, on account o' we coulnd't have stopped short nohow, not at that speed an' wi' all that ice. Kalavi, she started sayin' somethin', some spell I suppose, but thought better o' it fast enough - tryin' to hold a spell while on horseback is way above what most seasoned clerics can do, an' she had no more than four or five spells total granted by her Cryin' God. Me, I don't fight cavalry-style, but beggars can't rightly be choosers, so I leaned forward an' swung wide, hopin' I wasn't about to kill my own mount leavin' me on th' wrong side o' th' shield wall, so to speak.~ = ~[ARAN] Kalavi came in fast an' brought her staff up like some kind o' fancy lance, an' I'll be damned if it didn't do th' trick. She hit at full gallop, nailin' one o' th' ice trolls in th' head an' knockin' it unconscious wi' one hit, an' then her mount leaped clean over th' shield wall, where she could join in on th' fun proper. Took out one o' th' strongest adversaries, did a nice trick, an' it were a pretty sight.~ = ~[ARAN] Me, on th' other hand... well, i hadn't ever fought no ice Trolls before. So I lopped it's head off beautifully, nice clean arc, before i slipped too far forward an' ended up takin' a right fast rollin' tumble off my horse. She jumped th' line an' was safe, but there I was, all th' wind knocked out o' me, actin' as a bowlin' ball in among the orcs. Well, I scared th' crap out o' some o' them, an' they took to their heels... so I thought I was all in th' clear. I rolled right up to my feet, dusted myself off, an' started walkin' forward to th' line. All those Fist an' Kalavi started whoopin' an' hollerin', and so I just sort o' took a bow, thinkin' they was cheerin' me for scatterin' th' whole mob. Just as I did, I feel a whiff o' ice cold air on th' back o' my neck, an' tripped forward flat on my face.~ = ~[ARAN] Well, long story short, I didn't know that ice trolls just grow back if there be no fire nor acid scattered. My lucky little bow an' trip saved me my sorry hide, as there was now two Ice trolls clawin' at me. Th' Fist an' Kalavi clobbered 'em both pincushionin' them wi' arrows an' sling stones spelled wi' fire, savin' my sorry arse. But th' officer in charge o' th' Fist didn't realize it were my own clumsiness an' a twist o' Tymora's Coin what did the trick. She thought I clobbered th' troll, bowled over th' orcs, took a casual bow in front o' th' two trolls, an cool as a cucumber stopped dropped, an' rolled to allow th' rest o' th' unit to take 'em out. She hired us both on th' spot, an' we never told naught about it.~ IF ~~ THEN DO ~SetGlobal("c-aranfistfight","LOCALS",1)~ EXIT END END // of append to c-aranj Now, a little tweaking, and a test in-game to see if the story can be consolidated into less screens, or perhaps tightened up, and we have successfully created a set of stories that can be used as a resource for several talks, with replication only if the palyer requests. Using the variables, we can even add replies into other states that reference the information, just the way we tell our friends things in referent to their personal experiences.... CODE + ~Global("c-aranfistfight","LOCALS",1)~ + ~[PC] Oh no you don't... you stay back here and get those fire arrows ready. You don't want a repeat of that whole Ice troll incident, now do you?~ + c_great_you_used_my_story_against_me_you_bugger + ~Global("c-arangerris","LOCALS",1)~ + ~[PC] Hells no, you are not doing the cooking tonight. You have been fighting with Viconia again, and Gerris taught you way too many ways to get even!~ + c_who_me?_I_would_never_do_such_horrible_things
WARNING. WoT™ ( Wall of Text - n., Infinity Engine modder and forum slang, meaning long expository writing in a forum post that makes the reader's eyes glaze over and may result in said player loading up Oblivion, because bad eye-candy is better than semi-literate expository grandstanding by pseudo-intellectual wannabe posers. For examples visit any form and look at anything dealing with inter-community flamewars. ) I like to think about stuff like this, but just in case the WoT™ looks like I am taking this all a little too seriously, don't worry - I have not gone any farther off of the deep end than I usually do - just thinking about stuff and playing with ideas, just this time sparked by other folk's analysis and suggestions on what works and doesn't work for them in this mod. SYNOPSIS: Mods might be like FanFics, but they have significantly more flexibility, allowing interactivity. So far, Aran has been built with a "reply net", focusing more on player voice than on his own. range = "author-constructed fanfic unraveled by players" to "player-constructed fanfic with author-developed-and-given possibilities" Leaning so far to "player-constructed fanfic" can break down, resulting in characterization loopholes and inconsistencies. One suggested way out of this is to build parallel storylines through use of defined player psychologies. Examples given from existing mods and schematics and potential implementation in Aran given. To cut to the chase and skip all the talk, just getting to the new content, skip forward to <<this post>>. Fanfic construction vs. Mod construction A mod as an interactive fanfic. As a global idea, this seems sound - both are playing with other people's created worlds, and injecting the author's ideas and point of view into that already created world. I think that most mods follow varying degrees of this, from the point of view of the NPC and his or her story. On the other hand, mods allow something a fanfic cannot. Instead of the constrained story, I think a game 'story' can be built out of the freedoms given to a player. The question is, can I do it without losing focus and a sense of the NPC's personality? Can a mod allow the player to construct the story (whether intentionally or unintentionally) through direct interaction and choice, with minimal pre-scribing of player intent? Basically, if we give the player enough of a "net" of interactive possibilities that remain true to an NPC's personality, can the player construct the level of hijack/secondary plot-line they want? The range I am thinking about is "author-constructed fanfic unraveled by players" to "player-constructed fanfic with author-developed-and-given possibilities". Aran started out as a fun little experiment as a 'Companion' mod, with a single immutable plot-point - PC and Aran will be together for the entire game, if PC wants, regardless of choices (OK, except when PC has a reputation of 1, or sends him away specifically saying "never return", and/or kills him outright). This means the challenge is to allow players enough options to be able to explore why a character so obviously fascinated with PC will do this, regardless of player actions. Can he keep his personality, and tell a great side-story, and enrich the main storyline, while pretty much existing as window dressing and exploration of background material? He is a sidekick, not a hero, so his "story" is supposed to be the interaction between him and PC and the relationship they develop.Here, the player and player's motives/personality is unknown. That, by its very nature, has an opposite focus from a traditional fanfic. So What? Big deal. Who cares - a mod is a mod, and people want to play the game with some fun new content. Except... in this case, the materials I am working on have an odd point of view. When most modders write, they think in terms of the character they are writing (duh). So, an action comes up, and NPC talks about how they see the thing happening. But Aran has been written from the opposite point of view - what would PC say? What would he do? Coming up with Aran's stuff has been very easy. Coming up with what PCs reactions are and what a player would really like to be able to say has been very, very difficult. In essence, writing a construction set of possibilities and handing them to a player is an inside-out mod. Applying This To Aran: Strengths and Weaknesses As the mod has moved along, my focus has been on reply states that allow multiple types of PCs to have something interesting to have as a response. Game limitations and writing time limitations restrict what is possible; having 100 separate replies for each line is obviously a bad way to go (just imagining reading each one would be an instant "uninstall this POS and fire up Tashia and play again" for me). Early on, constraints were reputation-driven or good/evil/neutral driven, then loosened up to a blanket of no more than 6 undefined (malleable) replies that often branched out the way RL dialogs do (not always really returning to the topic). In PID's, we explored a bunch of ways of customizing to the player; in most materials, we have side branches in talks for specific kits, classes, and even ones for folks who have changed Aran into other class/kit types. Berelinde's 'Bennet Rubric' came into play in later stages, as she explored some great and intricate possibilities for dialog construction in Gavin (and we often trade ideas and work on implementations and recheck with each other, as two sets of modder eyes on the same code can sometimes catch things better than just one). But my focus, frankly, has been less about PC and Aran and more about Player Choices. And it has brought up an interesting point - how does this reconcile with storytelling, where we expect PC to have a consistent voice (because we wrote all her lines and fed them to him or her)? More importantly, are we (am I) making the Aran a player creates internally consistent enough that he doesn't sound insane? At first glance, way way back in the initial brainstorming for the mod, I passed on the idea of determining one single set of PC assumptions to respond to. I felt that CODE A [ARAN] I want to be talkin' about th' weather, now. [PC - EVIL] [PC - NEUTRAL] [PC - GOOD] [PC - EXIT] is very BioWare™. Not bad - just not where I wanted to play about. In one respect, I now understand why BioWare™ limits their dialog to this king of pathing - and why DA2 will have less possibilities even than DA:O (they have chosen 6 maximum possible, too, which makes me feel kind of good to have figured out a good boundary). This kind of dialog structure means they can use things very cleanly: CODE A [ARAN] I want to be talkin' about th' weather, now. [PC - EVIL] + B [PC - NEUTRAL] + B [PC - GOOD] + B [PC - EXIT] EXIT B [ARAN] I want to be talkin' about your response th' weather in a general way. [PC - EVIL] EXIT [PC - NETUTRAL] EXIT [PC - GOOD] EXIT This is incredibly simplified, and of course there are plenty of examples of where they went further, but the basic schematic is JCompton's "Looping Lovetalk Branch" technique. To be blunt, I figured that having a "net" or "cloud" of PC replies would be enough to cover all bases, especially as I wanted to allow players to roleplay chaotic as well as lawful characters. So, the inherent silliness that could result by purposefully choosing contracting and opposite reactions would be covered by a chaotic PC getting chaos in return - a talk where things didn't work out the way you would expect could be ignored, because it fit not choosing the expected pathway for the roleplayer. To put this more clearly, I figured without face-to-face human contact and all of the visual, auditory, etc. cues and social mannerisms, I can write CODE [ARAN] Now, what be th' idea, here... do I have naught in th' way o' counsel on this? and then I as a modder am free to re-purpose this statement based on where the player comes from and to: CODE [PC] I think you need a bath. You smell like a... well, you stink. [ARAN] Now, what be th' idea, here... do I have naught in th' way o' counsel on this? [PC] No. Get in there, and Korgan will be in with you in a minute with a stiff scrub brush. I'll heal you when you get out, if you have any skin left. [PC] I think I love you... I know Kivan is getting very fond of me, but... do you want to kiss me? [ARAN] Now, what be th' idea, here... do I have naught in th' way o' counsel on this? [PC] Of course you do. I just thought you might... you might want to kiss me. [ARAN] Now, what be th' idea, here... do I have naught in th' way o' counsel on this? [PC] No. I told you I would prefer to resolve things peaceably, but imprisoning a nymph is just wrong. Razzefelow needs to die. Stop thinking like a tactician, and start using your heart. In some respects, this works well. I can cross over between states in certain places, making content play out in many different ways, and avoid some state duplication. And having not specifically set out to create individual streams of thought (trying to make sure most if not all dialog states have responses that deal with as many possible player personalities as can be written for/imagined), many times the resulting play-through creates fun byplay more similar to RL conversation, where the results are sometimes not the way the player intended, because when PC says X, Aran can hear Y. Most of the feedback on allowing interesting and more involved player choices has been very positive; giving a player more potential options (even if they end up all leading back to the same end state) definitely works. What I didn't think all the way through is while many different ways a single statement may be taken can be a powerful weapon when crafting code, it can be a mess when it comes to storytelling - and it is a very sharp two-edged sword indeed. CODE [PC] (Kiss him gently under the chin) + [ARAN_RESPONDS] Did PC just ask him to sleep with her? Did PC just back him down from trying to make out with her by reducing the pace of the action? Did PC just nonverbally say "Hey, I like you a lot, but let's slow down" or was it "I like you a lot - you can go further" or "Hey, you like all this physical stuff, but I am ambivalent... why don't we play cards instead" or was it "Hmmm... I think if he lifts that jugular vein a little, I am going to get a good fresh meal out of this. Boy am I glad Valen made me into a vampire..." ? When I wrote it, I intended only one outcome - an escalation of physical contact by PC = "I want more action". It turns out that the flexibility given has some serous drawbacks. So now I have to figure out how to address this possible disconnect. I have plenty of options - I can ignore it completely, I can institute an "Aran Likes This" counter as several other mods do and use that to constrain possible outcomes,etc. But to explore the concept, let's take the complete opposite tack from what Aran started out with. Let's see what creating a follow-through between dialogs for player intent might look like.
Now that the fanfiction forum has grown larger, I am putting up links to finished pieces. Just drop me a PM letting me know when you are finished, and I will put it up. Thank you. Also, if you see any mistakes on this list, or a desire to be removed from the list, then also don't be afraid to PM me. Asmodyan His Daughter BigRob Asadin's Learning Adventure\ The Picnic BevH Dreaming of Anomen Minsc and the Beanstalk BobTokyo Bad Guards: Soft Jobs Bri Allure of Heaven Are You Being Served? Harvest's End My Brother's Keeper Short Stories from the Attic Sleeping Beauty Tempus Fudge-it DalreÃ¯Dal The Irony of Fate Disari Drielle's Tale Domi Bard's Song Biographer's Notes: Valygar A Comedy of Terror Getting Rid of Imoen A Hatchling Luck Be A Lady The Shades of Shadows EiriktheSkald The Story of Branwen and Eirik You are Fair, Branwen, So Fair... Garfield Recollections Turning the Last Page Grim Squeaker Danse Macabre IriaZenn Misery & Happiness Kendris The Hidden Bhaalspawn Sand and Water LokÃ© After The End First BGII dark/fanfic Tormented BGII Megiltura The Thoughts of a Wanderer Menelanna Together at Last Noctalys Cinders and Rebirth Pen52 Choices Thieves Seifer Danse Macabre Threadspinner Beauty Tancred Professional Evil UUF GnomeBusters! How Mazzy Got Her Groove Back I Need A Turnip Naughty Bits: Part Deux