Special thanks to berelinde, jastey, Amaurea, and theaceface for poking about and offering suggestions and making sure I didn't go wandering too far off the deep end. Especially the whole characterization-through-dialog thing.
A quick note about the development threads posted here.
Lots of good NPC mod ideas stall at the initial stages of writing. Lots of good tutorials exist that can describe how to use WeiDU to creat great NPC mods. The best way of learning to mod, though, is always looking at other people's code, and blatantly stealing it. We call it 'quoting' in jazz, or 'music theory' in classical - but at its heart, code is just a way of delivering a set of new ideas to the end user. Heck, any good writer will tell you that the language is a toy to play with, and even plots and dialogs have probably been worked through in some way - "ain't nothin' new under the sun". The creativity lies in creating an interesting, immersive character and getting him or her to live in people's heads for a passing moment. But sometimes, looking at that code makes folk's heads hurt. So there is a gap between the tutorials and the existing mods - the place where Lortie's "apprenticeship of observation" throws itself into the mix. I had Domi, luckily, and lots of patient folks all over the forums to guide projects I help on.
In that spirit, I am experimenting with Aran. He gets to be the test subject while I think out loud through developing him. Dunno why I thought this was a good idea, but heck - sometimes writing down why I make the decisions I do can help me remember what I've missed, and sometimes it might help someone else. Of course, I would like to point out that you can do just as well on your own - read other folk's mods. Read the tutorials. Play the game, and write down how your story fits in. Pretty much, I am blogging here. And to be blunt, I am writing for me, not for you - not that I don't like you or anything, 'cause I probably don't know you, but because only a crazy person would actually read someone's thoughts while they attempt to write a mod.
If you have no idea at all what "create a .d file and start with your regular IF THEN code", then stop right now, and go visit some of the basic tutorials that tell you how things work. Sometimes I will break it down to absolute basics, but for the most part, you are going to want to read over stuff on the G3 tutorials, the Pocket Plane Group Tutorial page and the newly updated and expanded SpellholdStudios Tutorial links. These are all places I strongly recommend visiting. All three of these communities have folks who are good at helping new modders out with code. There are other places with good stuff, too; Black Wyrm Lair and TeamBG.eu, currently down due to moving a server, have offerings, and Chosen of Mystra has materials both old and new, some rescued from the old CoM boards (some big names out of the past, and some new names too). But now that that is out of the way, I am going to proceed as if the basics are not completely new to the reader. If you get confused, don't worry - it's likely me. But cross references eventually appear, so that you can see what's already out there.
By the way, I strongly and highly recommend a brand new tutorial, K'aeloree's "How to code friendships and romances!". Several of the most respected i.e. modders have used this kind of organization and structure for years, but this is a clean, comprehensive, step by step through the basics of organizing, planning, and working out code - stuff that most modders for years have been coming to in various ways through trial and error. For examples of mods already in circulation that give good examples of organization and commenting, I personally find the following mods easiest to explore and see planning in action, whether they set out from a purely story-driven standpoint or from a more organized plot-point schematic, both regular stuff in amateur-writer-land - Kivan [and sections of BG1NPC] (Domi/Ashara at G3), Gavin (berelinde at everywhere), Xan (kulyok at ppg), and Ajantis [both in BG1NPC and in the expanded Ajantis Expansion (jastey at everywhere). Gavin in particular is commented clearly, as per this example below of berelinde's index at the top of b!gavinj.d:
/* ~B!GAVINJ~ */ /* CONTENTS */ /* Reputation talks */ ///* Reputation break point */ ///* Unhappy */ ///* Happy */ ///* Delighted */ /* Interjections */ ///* Song of the Morning - Dawn Priest Blane */ ///* Song of the Morning - Dawn Priest Bram */ ///* Song of the Morning - Drunk north of temple */ ///* Beregost - Mirianne */ ///* Beregost - Galteran in Gavin's old house */ ///* Beregost - Neighbor Davis */ ///* Beregost - Borland */ ///* Beregost - Golin Vend, the tour guide */ ///* Beregost - Bartender at the Red Sheaf */ ///* Beregost - Karlat */ ///* Friendly Arm Inn - Tarnesh */ ///* Coastway - Jase, boy by Kagain's caravan */ ///* Coastway - Bandit leader setup for Silvershield fibula */ ///* Fisherman's Lake - Teyngan */ ///* Fisherman's Lake - Drizzt */ ///* Fire Leaf Forest - Albert */ ///* Gibberling Mountains - Gellana and Samuel */ ///* Nashkel - Oublek */ ///* Nashkel - Oublek, regarding Brage */ ///* Nashkel - Berrun Ghastkill */ ///* Nashkel - Joseph's wife */ ///* Nashkel - Noober */ ///* Nashkel - Neira */ ///* Nashkel - Nimbul */ ///* Nashkel - Samantha and Jamie */ ///* Dryad Falls - Caldo, Krumm and the Cloudpeak Dryad */ ///* Eldoth */ ///* Viconia */ ///* West Baldur's Gate - Varci */ ///* West Baldur's Gate - Tremain */ ///* West Baldur's Gate - Abela the Nymph ///* North Baldur's Gate - Ramazith's proposal */ ///* Flaming Fist - Neb */ ///* Flaming Fist - Duke Eltan ill */ ///* Nashkel Mines - Prism */ ///* Cloakwood 2 - Tiber */ ///* Cloakwood 2 - Centeol */ ///* Candlekeep - Theodon */ ///* Nashkel Carnival - The Great Gazib */ ///* Nashkes Mines 1 - Dink and Kylee's Dagger */ ///* Nashkel Mines 4 - Mulahey */ ///* Baldur's Gate Docks - Basilisks loose */ ///* Red Canyons - Bassilus Quest Interjections */ ///* Cloakwood Mines */ ///* Cloakwook Mines 4 - Davaeorn */ ///* Tamoko */ ///* Lighthouse - Arkushule */ ///* Mutamin's Garden - Tamah */ ///* Cloakwood 2 - Finding Chelak */ ///* Cloakwood 2 - Centeol's Lair */ ///* South Beregost Road - Roe's letter */ ///* Beregost - Visiting Gavin's old house */ ///* Beregost - Greta's house */ ///* Spider body in party inventory */ ///* spider body in Gavin's inventory */ ///* Fire Leaf Forest - Rufie */ ///* Coastway - Silvershield Fibula */ ///* Joseph's Ring */ ///* Girdle of Gender Bender */ ///* On the roof of the Iron Throne */ ///* Bhaal heritage revealed */ ///* Many bounty notices */ /* Xan's break with a half-elf */ /* Saw a spider */ /* CHARM TALKING - doesn't work, as far as I know, but just in case */ /* DRUNKEN BANTERS */ ///* Just friends */ ///* Early Relationship */ ///* Early Romance Aftermath */ ///* Later relationship */ ///* Later relationship aftermath */ ///* Committed drunk */ ///* Committed drunk aftermath */ ///* Drunk sex */ ///* Drunk sex aftermath */ ///* Picking up Dynaheir */ ///* Picking up Viconia */ /* FRIENDTALKS */ /* Friendship warnings and breaks */ ///* Offense warning 1 */ ///* Offense warning 2 */ ///* Offense break */ /* Friendtalks */ ///* Friendtalk 1 - Gavin, cleric of Lathander */ ///* Friendtalk 2 - why is pc on the road */ ///* Friendtalk 3 - Gavin on religion */ ///* Friendtalk 4 - Lathander and racial harmony */ ///* Friendtalk 5 - Gavin's brown thumb */ ///* Friendtalk 6 - What will pc do when quest is over */ ///* Baldur's Gate */ ///* Entrance to the temple of Bhaal, final peptalk */ /* CHAPTER TALKS */ ///* Chapter 2 - What to do about the iron shortage */ ///* Chapter 3 - Mines are clear, now what? */ ///* Chapter 4 - powerless in the face of human suffering */ ///* Chapter 5 - reaction to Davaeorn's death */ ///* Chapter 6 - About Lanie */ ///* Chapter 7 - catacombs */ ///* Chapter 8 - going to get Lanie */
The organization can follow along after the product if you want, but frankly, I work better knowing how the puzzle is over-all structured beforehand. Most modders have evidence of both in their distributed files - sections where there is evidence of an original sequence, and then it has grown and been fleshed out as a new idea surfaces. So the skeleton is just that - stuff to be fleshed out and expanded, not set as a confining exo-skeleton locked into place from the beginning. And I like it when I can follow a modder's contents and see what they are trying to do, even when only three or four other people in the world will probably look at it. Read Nythrun's comments in her various snippets of code sometime. Definitely way cool and funny.
One final note - if you see stuff here that's useful, great - but I still advise going and taking a look at how other folks are doing similar stuff. The more you read through other folk's work, the more you learn about how you can get your story to work the way you want it to. Plus, I learned it that way. Even when I choose to ignore common sense and do something completely off the beaten track. So, happy modding. And if I'm lucky, he'll turn out ok.
Edited by cmorgan, 18 November 2011 - 07:47 PM.