Good Development Practices

Forum for builders of NWN material.
Post Reply
Posts: 5
Joined: Mon Jan 19, 2004 6:24 pm

Good Development Practices

Post by Dantreige » Sat Jan 31, 2004 6:37 pm

Hi everyone. I am Dantreige. Currently, I am theTechnical Coordinator for the Abyss404 server.

Red Golem and I are revamping our development process right now to make things a little easier on him. I would like to get some tips from you on some good development practices. As most of you have working development teams already, I would like to pick your brains a little on what works, what don’t, when it comes to organizing multiple developers, quality control, deadlines, and whatever else you may think is relevant.

Any help would be much appreciated from our end. I think these tips may be useful to all of the CoPaP worlds as well.

Some things that we have found useful are using template documents for regional and sub area development. These documents list things like, history, intended gameplay value, average character level the area is designed for, npc’s, mood, feel, creatures, tricks, traps, etc. Also we have Regional Technical Design Guidelines for several regions. These include all of the technical aspects used in the region. Things like, area tag and resref naming conventions, trigger placement, encounter guidelines, etc.

These tools are useful, especially when the developer gets lost in the layer and goes missing. Its easy to pick up where someone left off when this kind on information is available. (These docs are used to post this information to the developers forums for comment, revision, and polishing.)

We also are working on a developer handbook. This handbook will have info such as history summary for our world, area design concepts and guidelines, naming conventions for scripts, areas, creature tags and resrefs, and ultimately the design process we agree upon. (This will include task delegation, submission guidelines, etc.)
This handbook is intended to get new developers up to speed with what we are trying to accomplish. (As well as set the tone for quality for our current developers.)

So, with all the possibilities, what works for your PW?


Dantreige :twisted:

Posts: 5
Joined: Mon Jan 19, 2004 6:24 pm

Post by Dantreige » Thu Feb 05, 2004 8:02 pm

Hmmmmm. I am rather surprised by the lack of responces. I thought that with all worlds I see in the starting phases of development, there would be a great need for tips on this subject.

Ambassador: Tolmia
Posts: 12
Joined: Mon Nov 10, 2003 5:53 pm
Location: Tolmia

Post by Furin » Fri Feb 06, 2004 3:34 pm

It's not necessarily that there's a lack of need for tips--at least some of us are so early in the process that questions like this haven't even come up yet.

Posts: 25
Joined: Fri Nov 28, 2003 2:01 am

Post by tindertwiggy » Wed Feb 11, 2004 11:18 am

On avlis we have a script library forum, a coding standards thread, and a building standards thread. We pretty much run off of those which were created a long time ago.

World Leader: Ea
Posts: 130
Joined: Wed Nov 19, 2003 8:36 pm
Location: EA

Post by Jeff » Wed Feb 11, 2004 4:11 pm

It's my feeling that good development practices can only be defined by the team that uses them. For example in EA we use a Ventrilo voice chat server to talk to each other on a party line while we build. This enables us to ask questions and get ideas and feedback from each other in real time. For me to say this is a 'good development practice' would mean only that it's good for us. A different team that spans many countries and languages might find this to be a very bad practice.

Now that I got that off my chest I would be happy to share some successful development practices we use.

1)Communicate - We use Ventrilo voice chat as well as dev forums, ICQ, email, and in game meetings.

2)Build a team - We have been very open with each other about our real life as well as our feelings about the project. The members of our team are friends. We are just as happy chatting about the weather or work or that darn busted dryer that's distracting us from our work on the module as we are talking shop.

3)Have goals - Setting priorities to reach specific goals keeps the dream alive.

4)Organize - We have our world mapped out in excel. Our custom scripts all have the prefix lov_ and most are documented in an xls sheet too. We have file naming conventions and ownership rules that keep us from over writing each others work. The how-to's for the procedures we use are posted on our dev forum in a sticky. New ideas have their own forum. Once an idea is going to be added to our mod we move it to a different forum so future staffers can read up on the different systems.

5)Have fun - Burnout is a real concern, take some time to play and have fun. It will help you remember why you are doing all this work after all.
Come by and see us at:

Posts: 5
Joined: Mon Jan 19, 2004 6:24 pm

Post by Dantreige » Tue Feb 24, 2004 7:26 pm

Thanks for the replies. I have a few more suggestions myself. I will get back here soon to post them.


Ideas from a non-builder

Post by Vir » Tue Mar 02, 2004 3:20 am

As said, this is all from someone who can't script or build worth lima beans. So, take this with some caution, because I'm offering info without being on the inside of a process. Here's some thing's in general I've noticed that make it easier on players, and keep the player base active and happy.
I've seen more than one server tank hard because the builders lost sight of what the server needed more than a lack of bugs: players. When a server opens, it's got to have some support system for new players exploring the world and it should be explicitly and implicitly understood by build teams that these players are 95% of the time going to be on their own. "Not SOLOING!" Yeah, soloing. Unless you have 24/7 DM coverage and ideas to throw at players 24/7, the average time online in the early days for any given player are going to be *brief*. The idea is making an environment that keeps the time online and the frequency of visits as high as possible. As more people are 'lured in', they will begin to interact and spend less and less time soloing. Make the server solo friendly for the early stages of whatever level range you have on your server. Players stay online when they see progress (that's not "start at level 5", it means doing quests or easy combat), and you can always make it harder later on after they've had time to mingle.
Bugs matter when a player complains. It's that easy. If you want to get the 'important' ones first, ask the players for feedback.
Similarly, your RP background only matters as far as it helps the players play. Epic backstory is great...when it gets used. Most of the time, it doesn't. And just explaining why something- like a god, or a tower, or any other standing fixture- exists, that's not being 'used'- not unless the players are planning and interacting with the fact in a dynamic fashion. For example, giving a short novella as to where and why your unique pantheon of gods came from is nice- for you. The players- even good ones- are moving straight to the deity list and choosing their cleric's gods based on alignment, portfolio, and *how their clergy fits into the game world*. Unless that huge backstory somehow changes what the player can do, can't do, who likes or dislikes them, and what they might know or not know RP-wise- it's wasted effort. You don't need to be Homer or even Edith Hamilton, OK? :)
Having a higher-end machine myself, I haven't even thought about area size in terms of load time or computer speeds (but that does matter). What I have noticed is useless space. A location- or an area- is defined by the things within it that players can interact with. Using that axiom, you don't need 10 massive areas with 6 things a piece in them for your capital city. (This happens alot.) The players are simply going to be annoyed with all the time it takes to get from here to there. A capital city for example, should be a place where it's cosmopolitan: there's more STUFF there that you couldn't get in a small village. You might have 4 different smithies and 2 playhouses and even an arcane academy- the idea is to 1. Make the area big enough(not more) to encompass all those cool things and 2. Have enough areas to fit them all in with plausibility. (The dockmaster or ferry men need a water front obviously- so go ahead and map an extra area. Does it need to be HUGE? Well, if it's just for those one or two things, then "No." Make it tiny. The players get the idea.) Don't inflate areas in a quest to impress. Make it so the content makes it bulge with activities for the playerbase. Conversely, don't be afraid to make services or items simply unavailable somewhere. Not every village has a scroll shop. ;)
In-module barriers to players based on level and/or prowess are always appreciated. Nobody wants to 'accidently' walk inot that liar of the 1,001 Rakashas as level 6. Most servers are very good about this, but don't be afraid to have an NPC simply say "No, I don't think you've got enough experience yet for something this tough, and I don't want your life on my conscience." (or whatever works).
Make sure nobody dies for stupid reasons. These are the one type of bugs to ferret out before the players bitch and moan. Example of a stupid reason: The guard has a "put the weapon away- do it now- *attacks your ass*" script in place. OK, that's not so bad. Maybe even ideal. Here's where it gets stupid: The server's "Holy Symbols" are daggers with like -5 damage. A cleric wants to turn undead or display the holy symbol- which is not a crime(usually) or even a 'weapon' really. But it activates the guards' script- and dead 1-st level clerics litter the streets on a regular basis. (Or conversely, dead GUARDS litter the streets from the divine wrath of the 20th level clerics they attacked). That's stupid, and players leave over things like that when builders just go "oh well".
Anyway, I've got more ideas, but I'll save it. Just don't forget the server is for fun and players- it's not a resume for your next programming job. ;)

Posts: 1
Joined: Sat May 08, 2004 1:27 am
Location: Canberra

Post by Faendalimas » Sat May 08, 2004 2:14 am

Well as this is my first post on these forums I was looking through some of the material written and I really liked some of these threads.

I wanted to comment on the last post by Vir.

The comment that grabbed my attention was "Make sure nobody dies for stupid reasons." Now that is almost a quote from the original Dungeon Masters Manual from Wizards. I agree with it. So well said.

In D&D when you DM you never let an encounter kill the PC unless it is their own stupid fault they got there. All DM's know when to "modify" the DC of a throw or whatever it takes to keep the players happy. Equating this to a "number crunching machine" ie your server, as a builder this must be done before the computer crunches it. So well thought out encounters are a must.

The other thing that I wanted to say is that computer games are not a great role playing environment. Games move too fast and there is something about interacting with NPC's in computer games that looses it. Which is a great pity for me as my background is in Adventure and Module development for Paper and Pen D&D. I am attempting to produce a true role play game but it will not be multiplayer as I think this is impossible unless the game is run with a DM all the time. It would seem that all the PW's I have seen are really hack'n'slash with very little else to do.

How many have played a D&D module (PnP version) where there was no combat? I cannot see that being possible in a computer game yet it is very possible in the original D&D.

The point of this for developers is to be realistic on what you produce. If you want to try and get roleplaying you are going to have to reward it. There will have to be plenty of opportunities and plenty of DM's to make sure it happens.

Cheers, Faen

Post Reply