Monday, October 17, 2016

Closing in on release

With the exception of some minor bugs I'm aware of, Bedine is all tested ingame.

There's still some conversations to write as they are placeholders, some of the OM location objects and a quest boss for instance. And I'd like to include some bard type npcs to let the player hear stories and music tracks similar to how I did it in Crimmor.

Then I need to do some file trimming, as otherwise the download is going to be bigger than I'd like. There's a lot of custom content, but I didn't keep good track of just what I actually used versus what's in the folders but doesn't actually get used.

Sunday, September 18, 2016

Hand placing custom items is time consuming

Make all the custom items, given them some backstory/lore bits the players can read. Place them ingame in areas/positions where they make sense.

Some of the official expansions had trouble with this, as the game includes specifically named items that when examined have no backstory, just 'item does not bear the marks of any particular maker'. Umm, it's a item given an individual name, not just dagger +1 or even a 'sword of parrying'. My guess is the dev ran out of time and dev zots before release.

The backstory of a unique item is an extra bonus to the player though. Mechanically it doesn't do anything, but it gives the player connection with the gameworld and feeds the player who is interested in lore, discovery, and exploration. It helps roleplay, the player and thus the character can become invested in the item.

In Bedine I made four custom magic items for each of the Bedine traditional gear (armor and weapons), two each of +1 and two of +2, there are two of each so a player can have some item choice at each + level. Some of them are basic +1 with a story, others have other powers in addition to their + level. But all have associate lore. For example the scimitar Tawahhaj, it's not particularly powerful, a +1 scimitar with unlimited use of the Flare spell (which is near useless in default nwn2), but here is it's description:

Tawahhaj is the name given to this scimitar, but it is really the name of the tiny scarab wasa-ey that lives in a hole in the pommel. Tawahhaj the scimitar itself is unremarkable other than the hole in the pommel, Tawahhaj the wasa-ey transfers it's power to the scimitar. Tawahhaj the wasa-ey does not speak or otherwise communicate with the person carrying the scimitar. The wielder of the scimitar does generally offer bits of food to Tawahhaj out of recognition of it's power, but it is not clear if Tawahhaj eats them or not, or even needs to.

 Hopefully that sounds cool. It tries to invest a simple +1 weapon with a very minor extra ability with a reward for the player of coolness and gameworld lore.

Sunday, August 14, 2016

Bedine Update

Since that last post I fixed almost all of the bugs identified in the last playthrough, and have just finished up another test playthrough. This time I got almost to the end and got stopped by a walkmesh issue (transitioning to an area with a complicated walkmesh), so I made it maybe 90% of the way through the main path. I'd guess about 20 hours of gameplay if you do everything I think.

[counts up screenshots I took of bugs...] About 50 bugs or so from this playthrough. Some are basic things like typos, some are stopping some sidequests or are related to the custom class/feat work. This test was more focused on the main plot though, so four larger sidequest areas didn't get any testing as I wanted to check how combat balance would be if the player was main quest focused. Combat balance was somewhat improved with this playthrough, needs further tweaking, I ran into a couple of spots where I needed to break out the testers dagger of doom.

Saturday, July 2, 2016

Bedine Progress Update

There hasn't been a tremendous amount of work done on Bedine as I've started a new job in real life and it has a time and brain power consuming. There is some other real life stuff as well. That does not mean there is no news however, there is good news. I have completed a full playthrough (in sections, testing and fixing as I went) of Bedine through the ending dialog. So the campaign is now runnable from beginning to end without running into a gamebreaking bug.

That doesn't necessarily mean there aren't any gamebreakers hiding in there, just that the game is complete-able. Also, the final showdown with the big bad isn't written beyond "placeholder", but the confrontation starts properly and the epilogue begins properly when you defeat the big bad.

So that's really good. And since I've been fixing bugs along the way as I played through various sections, things are in pretty good shape. Playing through I see where some things need to be more fleshed out, but that work is going to be just in adding conversation and other bits to expand the players immersion in the gameworld and make things more coherent. Some potential companions require some "systems" work to get working ingame, but if that's too much I can just not make them available as companions, and I have the systems working in a test module for testing that specific thing.

I've reached a point where I want to shove Bedine out the door because new ideas are always shinier than old ones (cough, thinking about Crimmor when trying to finish Path of Evil for instance, cough). I know I should take the time to get it properly fleshed out.

Friday, May 27, 2016

Bedine Progress Report

I've got my testing completed up to the pont where you go to the "endgame" areas. The testing was slowed down by my discovering and needing to fix some issues with a tileset. Some of the things that worked in my test module did not work in the real module, and some of the things like module transitioning could only be tested in the real module. I tested the sidequests long enough ago I need to test them again to mark them off on my checklist in case something broke between then and now. At least I do expect them to work right.

As I've gone I've cleaned up various placeholding things like journal entries that just identified the journal state as opposed to providing proper journal entries. I've also smoothed out a number of conversations so they flow much better than they did.

My testing has identified a number of spots that I need to add some content to. Finding that sort of thing is something I expected based on my previous campaigns, so it's not really a surprise. An example would be something like a town where the only thing of interest was the local priest. It needs some more life to it, otherwise it winds up like the various towns of Storm of Zehir that exist only as taverns.

Wednesday, May 4, 2016

Placeables Galore

Release of my Tileset Construction Kit and Placeables packs. Over a thousand new placeables ready for use.

Beginning with separating pieces from tilesets for use as individual placeables, I also broke out pieces of existing placeables that didn't exist as separate placeables in order to use them as separate placeables. Also included are natural material walls made from the Walls of the Faithless, Wall of the Faithless statues with more useful textures (stone/ice in case of medusa/white dragon), hanging flowery plants (reskin of soz vines/roots) to brighten up your areas.

By blueprint count, there are 800 placeables in the pack. I use original textures where possible to save on pack size. This pack includes my previously released natural glowy stuff pack.

Tileset Construction Kit: http://neverwintervault.org/project/nwn2/hakpak/kamals-tileset-construction-kit

Placeables Pack: http://neverwintervault.org/project/nwn2/model/kamals-placeables-pack

Thursday, February 25, 2016

NWN2 Basic Placeable Reskinning Tutorial

This tutorial assumes you have mdbcloner (http://neverwintervault.net/project/nwn2/other/tool/mdb-cloner)..


Step 1: Find the original game models you want to work with, you can look that up in the  placeables.2da (View -> 2da file in the toolset menu). To find it, the properties for the placeable tells you what to look for, the Appearance property (highlighted) lists CityBEstate2 for my example (one of the estate buildings), I can then do a search in the placeables 2da for CityBEstate2




No need to know what all the columns of the 2da do at this point, just look at the  NWN2_ModelName column for the placeable you plan on reskinning. For the example that's PLC_BC_ESTATE02. You can search for this model name (PLC_BC_ESTATE02.mdb) in your game installation

 Copy this model somewhere safe to work with. Some placeable models have numerous individual parts and would have to be reskinned in a modelling program such as gmax, as each part must have it's texture changed, but let's focus on something that can just be cloned.

step 2: open the model in mdbcloner. This will let you see what textures are used for the placeable. Find those in your install and make a copy somewhere safe. You're going to be editing the copy for the reskinning. MDBCloner looks something like this when it has a model open, in this case it's a mindflayer, but it will show the same basic information for any particular model.




MDB Name: This is the name of the model. To make a copy of your model, change the name and click the Save Clone button. Congratulations, you've made a copy of your base model. You probably want to change the textures though, so select some different textures and then click Save Clone again.

Below I've picked my new model name and textures to use. I hit the "Save Clone" button and MDBCLoner will save my new model to the location specified in the Output folder. It does not prompt to save, or warn about potentially overwriting a file, it just does it.


Diffuse: This is the basic texture. You will need an image editing program to make whatever changes you want to the texture. How the texture wraps around the placeable varies by model, and is beyond this tutorial. You may want to experiment by drawing a bright colored lines on your texture and seeing how they show up ingame. Note that if you make a portion of the image clear, you can functionally erase that part of the model.

For the next three  textures, think of them as overlapping the Diffuse texture. For example the claws of your creature are represented in the same portion of the texture on all of the textures (bottom right corner for instance).
Tint: The tintmap of the object, this image file gets interpreted to apply tinting to the creature. If you want part of the creature to be tinted by the first channel property, color that part of the tintmap red. Blue and green are the other two channels.  You are not limited to pure red/blue/green, If the tint is purple the tint to be applied is a combination of red and blue channels. One way to make an intricate tintmap is to make a copy of the base texture, and adjust the hue/saturation in your image editing program until it is very strongly colored. The tintmap must end with the _t suffix. This texture is not necessary unless you wish the object to be tintable.
Glow: If you want your object to glow in the dark, you'll need one of these. Must end with the _i suffix. This texture is not necessary and not used for most objects.
Normal: This texture controls the "bumpiness" of the texture, it's a visual trick to make you think there is depth where there isn't any. It must end with the _n suffix. Most programs will let you make a normal map from your diffuse map. To make one in GIMP, open your diffuse map and select filters -> maps -> normal map. The "scale" controls just how bumpy you want things to be. The normal map can be that peculiar shade shown below, or mostly clear or just about anything else. Don't worry, the game knows what to do with it.



While it's technically not necessary, I advise making the texture names the same as the model name, plus the relevant suffixes. This makes things easier to figure out. If you're not making significant changes, you may opt to just use the original normal map for any reskin, to save file space. Not my preference though.


Ok, we've made our clone, now to put it ingame.

Copy the model made by mdbcloner, and any textures you used, to your campaign/module/hak and load the campaign/module up in the toolset. Open up your placeables 2da and find the row of your base model. Copy that row to an empty row. If you plan of releasing your work publicly, please reserve the row you chose on the 2da reservation wiki (http://nwn2.wikia.com/wiki/Reserved_2da_ranges) Copying the row will give it all the basic properties the original has (such as whether it blocks line of sight), which you probably want anyway. If you really want to know what those columns mean, you can refer to http://gameofthrones.net/resources/57-technical-documentation/437-placeables2da.html

There's two columns you need to be aware of in the placeables.2da to get your model ingame.


The Label column is what it will be listed as under the Appearance property of the object. So let's enter something you will recognize, for example Estate_House_Alternate, or Banner_Bandits or whatever.

The NWN2_ModelName column tells the game what model it should use for that appearance. If you named your model Estate_Alternate, that goes in that column, the .mdb file extension is not needed.

Click the save button under the placeables.2da, next to add row/delete row in the screenshot above. If you just close the 2da, it will not save things automatically. Your changed copy of the 2da is saved to the Override folder. You will need to cut/copy it out of there into your campaign/hak etc. when you're ready to share your campaign with the world.

Ok, the game is now aware of your new model. Let's get it ingame.

You can take any object that exists already ingame, and go to the properties -> Appearance and select your Label from the dropdown (Estate_House_Alternate was what we used above as an example). That will change that existing object, but you probably want to make a new blueprint so you can easily place your new object. Right click a blueprint and select Copy Blueprint -> module or campaign (your choice).




Once you do that you can change the Appearance of the new blueprint to whatever you by going to the properties -> Appearance and select your Label from the dropdown.





You will likely also want to change the name and also the resource name, tag, and template. I normally change those to whatever I had named the model.



You should now be able to use this blueprint to put your reskinned placeable ingame.

If a texture for the reskinned model is not available to the game, it will display the placeable but with a bright texture that indicates it couldn't find the assigned texture.

One good thing is you can make texture changes quickly, just drop your new version of the changed texture file into your campaign/module, the new version will be used as soon as you change the "main variation" away and back to your chosen one.



Wednesday, February 24, 2016

NWN2 Creature Reskinning Tutorial

This tutorial assumes you have mdbcloner (http://neverwintervault.net/project/nwn2/other/tool/mdb-cloner).


Step 1: find the original game models you want to work with, you can look that up in the appearance.2da. Copy this model somewhere safe to work with. Some creatures have head models that are separate parts from the body, so there may be two files to copy. Some placeable models have numerous individual parts and would have to be reskinned in a modelling program such as gmax, as each part must have it's texture changed.

step 2: open the model in mdbcloner. This will let you see what textures are used for the creature. Find those in your install and make a copy somewhere safe. You're going to be editing the copy for the reskinning.


If it's a head model, the MDBCloner model interface has a few more options, but they should be self explanatory based on what you'll read below.

MDB Name: This is the name of the model. To make a copy of your model, change the name and click the Save Clone button. Note that the _CL_ in the model name tells the game that this is a cloth model option under the creature properties in the Armor Set Tab. The number at the end of the model name tells the game just which model variation this will be. The game uses an n-1 system for this, so model 01 shows up as model variation 00 in the Armor Set tab. A few creatures like the player races have different "main types" available such as plate armor, trolls are one example of a non-player that has multiple types. If you look at these models, you will see identifiers such as _PL_ (for plate armor). Here's a picture of the troll properties to show what I'm referring to.



Back to the MDBCloner fields:

Diffuse: This is the basic texture. You will need an image editing program to make whatever changes you want to the texture. How the texture wraps around the creature varies by model, and is beyond this tutorial. You may want to experiment by drawing a bright colored lines on your texture and seeing how they show up ingame. Note that if you make a portion of the image clear, you can functionally erase that part of the creature. The creature will still have legs for instance, but they won't be visible ingame because the texture for that part is a clear texture.

For the next three  textures, think of them as overlapping the Diffuse texture. For example the claws of your creature are represented in the same portion of the texture on all of the textures (bottom right corner for instance).
Tint: The tintmap of the object, this image file gets interpreted to apply tinting to the creature. If you want part of the creature to be tinted by the first channel property, color that part of the tintmap red. Blue and green are the other two channels.  You are not limited to pure red/blue/green, If the tint is purple the tint to be applied is a combination of red and blue channels. One way to make an intricate tintmap is to make a copy of the base texture, and adjust the hue/saturation in your image editing program until it is very strongly colored. The tintmap must end with the _t suffix.
Glow: If you want your creature to glow in the dark, you'll need one of these. Must end with the _i suffix. This texture is not necessary and not used for most creatures.
Normal: This texture controls the "bumpiness" of the texture, it's a visual trick to make you think there is depth where there isn't any. It must end with the _n suffix. Most programs will let you make a normal map from your diffuse map. To make one in GIMP, open your diffuse map and select filters -> maps -> normal map. The "scale" controls just how bumpy you want things to be. The normal map can be that peculiar shade shown below, or mostly clear or just about anything else. Don't worry, the game knows what to do with it.



While it's technically not necessary, I advise making the texture names the same as the model name, plus the relevant suffixes. This makes things easier to figure out. If you're not making significant changes, you may opt to just use the original normal map for any reskin, to save file space. Not my preference though.

Below I've picked my new model name and textures to use. I hit the "Save Clone" button and MDBCLoner will save my new model to the location specified in the Output folder. It does not prompt to save, or warn about potentially overwriting a file, it just does it.


Ok, we've made our clone, now to put it ingame.

Copy the model made by mdbcloner, and any textures you used, to your campaign/module/hak and load the campaign/module up in the toolset. Select your base creature you reskinned (a troll for example), and go to the properties for the creature, then the Armor Set tab (it's the last tab for me, I have to scroll to it). Your reskin should now be available under the variations dropdown. If it is (and it should be), you can now place your reskinned whatever ingame, no 2da editing required :-)


If you also have a reskinned head model for the creature that you want to use, you need to select it under the Appearance(head) property on the main properties tag.

If a texture is not available to the game, it will display the creature but with a bright texture that indicates it couldn't find the assigned texture.

One good thing is you can make texture changes quickly, just drop your new version of the changed texture file into your campaign/module, the new version will be used as soon as you change the "main variation" away and back to your chosen one.



Thursday, January 21, 2016

Testing continues

I ran into and worked out some unexpected bugs in how I was handling encounter spawning. Also there were bugs to work out with ipoint conversations not starting correctly when called from the OnEnter script for areas. Both were plot breaking bugs because I have both things are part of the main quest path.

Also ran into walkmesh issues with some newly released placeable bridges, though bridge walkmeshes are always hard to get right. The bridges I had had received an update which seems to have fixed their walkability, though not some camera issues with them.

In any case, things are steadily moving along and I'm working on mostly fixing things that could only be tested in the actual areas, such as walkmeshes, conversational cameras etc. There's also work making sure generic commoners are doing their things, gardeners holding shovels and such.