Choose Your Language

Monday, 22 September 2008

Keeping A Date

Talking of dates: First I would like to apologise to the AME group for missing the IRC that was scheduled last Saturday (20th September), to which I had been invited to attend. Somehow, I got so engrossed with a scripting problem I was trying to resolve, that by the time I remembered the chat, it was too late. I did still go along and joined the AME channel to see if anybody was still around, and I was pleased to find a few of the guys still there: Skunkeen, Starlight, Axe Murderer. We all chatted for a while, and later that evening, I also had the chance to chat with a few from the CTP (Community Tileset Project) crew. So, my apologies once again to Tyler, and a thanks to those who shared a good evening of unexpected chat.

With respect to "Keeping A Date" in the campaign itself, I can announce that I finally managed to work in Edward Beck's (aka 0100010) Custom Calendar GUI into my campaign. I say "finally" as there was a problem with the original scripts not keeping track of a year properly when it crossed into a new one. I did request extra information from Edward, but I think he must be busy (or not around anymore) as I did not receive any replies to my contact attempts.

In the end, I had to write my own code to accurately keep track of passed time and re-apply it in a different way. I used campaign variables as the main synchronisation method, which actually works out well, as it also allows additional modules to refer to these records. As it happens, I also had to alter the XML code, as I needed a larger "window" to show special notes for my world. I also altered the code to show just "moon phases" rather than "sun movements", as the sun movement is already handled by the OC anyway.

Finally, I did away with the leap year section, as it does not serve any purpose in my campaign and adds a level of complication I did not think was worth the effort to keep. However, I am still intrigued as to why my module did not work like the example module, and am still in the process of trying to discover why. If I do learn why, then this may change slightly.

If you take a closer look at the image, you can see that I have enabled both the OC clock, which shows sun/night and time only on the left hand side of the screen. And on the right hand of the screen is the small clock that acts as a button that opens and closes the date window from its left hand side. (The image shows the date window currently open giving details of the date and current moon-cycle.)

This shot (and information given above) actually gives away a little of the New Era changes that have taken place. For those that would not know, Althéa (prior to the New Era) had four moons! Since the Darkening, however, this is no longer the case, and Althéa has had its three colour moons taken from it. I won't go into any more details now, but for those interested, they will learn more when they play the module.

More On The Life System

The Life System met with some favourable comments the last time I posted on it, and so I thought I would give an update on some of its final stages of development. I have now added a new condition that checks if a player continues to attack innocent NPCs within the same area. In my last blog entry, I explained that onlooking NPCs would stop their attack if the player did not continue to attack an innocent NPC. Now, the onlookers will remember if a PC has already attacked and killed an NPC in the area already, and if they see them kill another, then they will no longer view the death as an "accident", and all will turn hostile to the PC.

However, if the PC manages to escape the area, then the NPCs will return to a non-hostile state, but will remain wary with the returning PC, ready to turn hostile again if the PC should kill another NPC. If the PC remains good and no longer attacks the NPCs, then leaving and returning to the area a second time resets their status.

Furthermore, I have made it that guard and defender types actually improve in status as the PCs develop. Therefore, they should remain relatively strong enough to deal with any potentially growing antagonists.

Tuesday, 16 September 2008

The Life System & The Notice Board

I have managed to get a couple of things out of the way in the last week that I needed in place before I could continue with the main story. The main one was to finish development on what I call, The Life System. This is, effectively, a combination of a faction and influence system that helps govern how the NPC's react to the party of PCs subject to how the PCs treat them.

As I have allowed a player to choose to attack an NPC at any time, then I needed to design a system that would have other NPCs come to the aid of the one attacked if need be, and at the same time, not make it so the player could inadvertently cause a problem with turning everybody hostile to them, whether by deliberate aggression or by accident. I wanted to allow the player the opportunity to attack anybody at any time, so that it could be left to play a more evil role if they wanted to. Note, I don't actively encourage this sort of activity, but I also wanted to allow the player the freedom to try to play the game the way they want to. Of course, this does open a number of issues to ensure the game can still be completed, but I do have a solution in mind.

The Life System In Action

Suppose a player attacks a local male soldier. Immediately, the attacked soldier NPC will turn hostile to the party of PC's, and at the same time, any nearby allies (or defenders) of the soldier will come to the soldier's aid and attack the party as well. Note, however, the soldier's allies do not show as hostile, and the player must right-click select any of the allies to attack them. However, this has the added benefit that if the player chooses to ignore the soldier's allies and run away, then the allies will stop their attack. (They were simply trying to break up the fight.)

The original soldier (if still alive) will, however, remain hostile for a few more rounds and try to continue the fight. If, however, the party escape the soldier, he will eventually return to non-hostile within a few more rounds. The next time they see him, they can approach him as a non-hostile NPC. However, if they approach too soon after he has "cooled down" from being hostile, he will still not speak with them, as he will now be scorning them.

Scorning is part of the influence section of the Life System, and is one of a number of levels that determines how an NPC reacts to the party of PCs. Eventually (over a short period of time), the soldier will even have this level of his opinion of the PCs reduce to simply disliking the PCs, at which point, the PCs may be able to work in an apology (if they so desire) and re-establish some sort of communication with the NPC, even if the soldier's new opinion of the party still treats them frostily.

I hope to have this Life System in place for all NPCs and not just for companions. While companions can have a bit more flexibility with the Influence Section, the fact that other NPCs can use the same system saves me a great deal of time and worry when it comes to a player who may like to try attacking for the sake of it. So far, in testing, the system works well, and I hope it will make the environment of NPCs appear more realistic and alive. Hence its name: The Life System.

Party Conversation Interaction

On the back of this system, and with some other code, I have now also included the multi-PC interactive party conversation. Basically, even prior to SoZ, I had wanted to include a conversation system that allowed the player's best skilled PC's to be able to be involved with any conversation the party may have, so that the best skills can be used. (E.g. Diplomacy, Intimidate or Bluff.) Now, if a player has a conversation where these skills are required, the player will be able to let the PC in the party with the best skill speak the line. And although it does not show the actual PC in the cutscene, it does, however, allow the best stats for the PC used when a skill role has to be made. I have also taken into account whether the PC is capable and within range before allowing the PC to be able to comment.

Notice Board

I have also finally managed to make my Notice Board, along with pinned scrolls for the PCs to be able to read.

This was something that I wanted to add, and was stumped at how to get the individual scrolls in place. Eventually, even after struggling to build the board itself, I got the final tips I needed from BGP Hughes Effects Editor Tutorial and looking at Merecraft's Wanted Poster.

The whole task was more complicated that I thought it was going to be, and I still think there is room for better tutorials in this area in general.

Tuesday, 9 September 2008

Multi-Player Considerations

Finally, I have my new computer set up enough to start testing some code for multi-player gaming. Although I am still waiting for the new graphics card, I have been able to use it and have already discovered some scripts that needed changing. Here are some of my findings, along with some general comments:

1) Testing multi-player can be a pain because you have to wait for the game to check the version before it lets you continue to load the game. It can sit up to 20 seconds or more just waiting for an answer before it finally drops through and lets me test the module. It does not always do this, but it does it enough to really hamper testing. Ironically, one of the other aspects of getting a new computer was to speed up testing. If anybody knows how to bypass this check, or decrease the check time, then please let me know in the comments.

2) Much of my "faction" coding needed updating because I have now seen that setting the server to "Allow One Party" treats every player (and their companions) in the same game as one faction. This may sound obvious, but until I had tested it, I was not sure how it would work. In fact, if you remove the tick from the "Allow One Party" box, it works as if each player (and accompanying companions) were in their own faction. The problem is, I need the function of the "Allow One Party" for some other functions and design (like cutscenes), but was hoping for separate factions for each player in the party. Suffice to say, I left the tick in the box, and added some extra code to the faction checks to help distinguish between different players and their companions. (*)

3) As a side-effect of the above, it was interesting to discover that (just like MotB), when a companion joins a party, it is "for the whole party" and not just the player who requested they join. And so, in other words, a companion can (in theory) be controlled by any player in the party. While this still happens in my own module, my extra code (in 2 above), however, ensures that the companion does, in fact, stay in the "control" of the player who asked them to join in the first place, unless a second player asks them to join them instead. (*)

(*) All these differences are coded to enable a player to have more direct control over specific companions of their choosing; much like playing more than one PC. However, I have been able to make use of the default workings to ensure the companions act as a member of a party as well as specific companions in the control of one player.

During some of my testing, I took a screenshot as the PC looked across the Borantan Plains. I thought it looked quite good, considering area design is definitely my weak spot.

I can also report now that I have managed to script my first cutscene. Geoff Cordery (a.k.a. Quillmaster) came up with one of the voices for me, and I have managed to get the scene in place. Thanks for the voice-acting Geoff; there will be more to come. ;) By the way, if anybody else fancies a part of voice-acting, then please let me know via a comment.

After recognising how much work is involved with voice acting and lip-synching, I have decided that I will probably only keep voice-acting to cutscenes and (perhaps) the odd conversation that may add some drama.



I also started to look at the Influence System that came with MotB, in the hopes I may be able to use that system instead of my own idea. However, after trying to trace back how the figures were sent to the GUI, I had to give up. I still don't know enough about some GUI code and the influence code that Obsidian used was buried too deep for me to keep trying to uncover.

Just before I decided to buy and build a new computer, I had started to try some work with Gmax. Even installing the program and adding the NWN plug-in was not best explained and required careful attention. Thankfully, by the time I was actually able to go through a tutorial, I think I can begin to see how making certain placeables may be achieved. However, I have put that project on hold for the time being, as I believe I need to start doing more NPC and conversations ... and other basic building first.

Friday, 5 September 2008

NWN Podcast: Golden Dragon Award

Trey and Tyler interviewed me for my Golden Dragon Award at the NWN Podcast. We all had a great time and you can hear the most skilled and edited version by following the link above. I enjoyed the interview and found both Trey and Tyler did a great job of making me feel most welcome. Thanks guys! It was great fun!

For those who listened to the podcast and want to download my story, "Deep Within", you can download it here.

On another note, I am in the process of adding a new computer to my network that is capable of playing NWN2. I need this so that I can test multi-player gaming as I write the module. I have found on occasion that there are certain functions that I am not sure how they will work in a multi-player environment, and so I hope that once the new computer in place, their testing and use will become much clearer.

Unfortunately, at the moment, the ASUS P5Q motherboard I bought appears that it may have a fault, as neither the LAN (speed) nor the sound card (microphone) work properly. I thought it was simply due to bad drivers, but the assistant at ASUS has asked me to get the board changed. I will have to see how that pans out. I don't like doing this though, as it means I have to remove the CPU, memory and other hardware and leave it waiting around until the new motherboard comes along. When I build a PC, the less fitting and removing of hardware the better in my opinion.

The building and subsequent problems with the new computer does mean I have not had the chance to do much module building lately. I look forward to getting settled back into this again.

Saturday, 30 August 2008

Inventory Item Quantity Fix

I was over at the Seahaven Blog where Merecraft had started the ball rolling (after a tip from Amraphael) to fix the limit of items placed within an inventory. I posted a new script to his blog and repeat it below (because there was a slight bug in his) and I also updated the script so that it would give feedback of the items to quantity limit in the Container GUI. It meant updating the container.xml slightly more as well, and as I could not post it in a comment to him, I will try to post it here instead (as an image). NB: The quantity figure does not show until after the PC has interacted with the inventory in some way. One could script it to show the figure OnUsed, but I am not sure if the extra coding is necessary.

Note, this alters an official XML file, and so it should be placed in a hak to be used with a specific module only. It only fixes the issue for modders and their scripted modules and does not fix modules that have not used the scripting initially.

First, here is the script that goes on the container's OnInventory Disturbed:

(CLICK ON IMAGE TO ENLARGE VIEW TO READ)

Note: I have not altered the original code that determines how many slots the object has, which is currently set as a variable on the object. This can, of course, be made more accessible by tying the quantity figure to one of the less used (but more accessible variables from properties) such as Reflex Save or Will Save. (I have tested the Will Save property and this works fine.)

And then here are the XML alterations to the Container.xml file:

(CLICK ON IMAGE TO ENLARGE VIEW TO READ - UPDATED 22/04/09)

I have highlighted the additions in yellow. NB: There is also a commented line in the XML code above the last yellow line to ensure it is not used instead. (Marked with an exclamation mark.)

My thanks go to Merecraft & Amraphael for the inspiration.

Tuesday, 26 August 2008

New Era Mechanics - New GUI

The new era for the campaign comes with some new "house rules", which I hope will add a depth to the game, over and above the norm. Accessing these rules, options or basic information was originally planned to be via a conversation menu. However, as I have been getting to grips with coding GUIs more and more, I decided to create a GUI with tabs to give the player a more user-friendly interface to set options for their PC's. Then, I got a little excited about a concept I considered of being able to change this information (live) if the player swapped between their main PC and companions. That was when I introduced myself to a massive coding headache! However, the good news is, after a couple of days of coding, I believe I have the GUI working as I originally hoped.

Here is a screenshot of the first (opening) tab of the GUI. Note, there are two other tabs along the top of the GUI. The first tab (shown) shows the PC's basic information, the second tab gives access to "House Rules" information, and the third tab is the area that allows a player to have their PC with the highest Craft Weapon skill make an improvement to a dead weapon. As you can see, there is potentially room for more tabs if I need them.

The problem where I had coding, was mostly to do with the information available in the first (opening) tab that shows the current PC's Vigour Level, Life Essence Respawn State and Current Test switch. My idea was that a player could open the GUI with one PC, and then switch PCs with the GUI still open and the information would change for the new PC. Keeping track of the Main PC and the companions that were activating or viewing the script was a nightmare, but after many attempts, and debugging, I finally achieved it.


One thing I did learn in the process, is that the GetFirstName function appears to return the first name of the original blueprint used to create a companion and not the new name given it in the toolset. This had me confused for quite a while, and I ended up changing all my uses of GetFirstName to simply GetName.

UPDATE: Loudent2 (Thanks!) helped me to understand that the GetFirstName function actually recalls the original string ref and gave this information in a response in this post:

"Actually, the problem is probably that the string ref name is still set. While this may seem like a benign problem (certain functions returning the str ref name) it's actually more serious than that. I've had items in our world spontaneous reset to the original name and the dm client will also list it by it's original name.

Fortunately it's easy to change, you just have to remember to do it whenever you create an object based of an existing blueprint.To clear, go to the blue print and in localized name (for items and placeables, first and last names for creatures etc) and click the down arrow at the right edge of the field (bringing up the naming dialog).

There will be one line with a pair of edit boxes listing language and gender. Below that will be a line that reads:String Ref: If a number follows that text then click on the "Edit String Ref" button below that line, then in the "Edit String Ref" dialog, click the "clear" button on the right side of the first line and then click "ok"This sounds a lot more complicated than it really is. Anyway, that should solve your issues."

Anyway, here is a brief outline of some of the section of this GUI that the player will use in the game. First, it is accessed by a icon that can be placed in the quickslots. When presented, the initial screen tells the player the date, the current PC's vigour level (combined hunger and tiredness system), the PC's role (either Channeler or Harvester - not shown on the screenshot). From the top screen, the player can also decide if they are going to allow carried Life Essences to allow an auto-respawn upon an untimely death or not. (Don't forget that a death means death in this campaign.) A player might chose to not allow an auto-respawn if they have a PC who can raise them from the dead in some way and they wanted to save the Life Essences.

The second tab brings up the House Rules section, where the player can recall rules for the game as required. New rules will be added to the list as the player explores the world, so they can always have a place to refer to them in game.

The current third and final tab brings up a screen that allows a player to have their PC with the highest Craft Weapon skill (and who must also be in a fit state) improve the quality of the weapon they carry in their right hand at the cost of a Life Essence.

I won't say any more at this stage, but hopefully, you can see how the many unique gaming systems I have been working on for the campaign have now come together in one neat user interface. And with that now done, I can start working in some of the other ideas I have that also work around these systems.

It was interesting to see the new Storm of Zehir video at Gamespot and it looks like Obsidian have also programmed a few of the things along the lines that I have tried to do for my own campaign. They also now have "death means death" and have also made it so individual PC's can have an input (with their own skill usage) in things like conversations in much the same I too am programming a "best PC skill use" in many of my own interactions. One thing that I do like the look of (and is something I will wait until I have seen the expansion) is the new 3d map system. I imagine it is possible to do this with clever use of an area with miniaturised objects, but to have it "officially" available as an editor would be great, and hopefully, easier to use.

Saturday, 23 August 2008

The End of the Beginning (ADV)

Yesterday's 20th gaming session marked the end of Soul Shaker for my group of players after nearly 40 hours of play, possibly longer if allowing for WAN traffic lag. I believe it went well, apart from one really annoying last minute bug that prevented the heroes from being able to use the portal that led them to the final area. It was easily fixed with me at the helm as DM, but it frustrated me and concerned me that other players may have encountered the same bug, and I wanted to make sure I had the fix up as soon as possible. To this end, patch v1.10 is already up along with the v1.10 module. I also updated the module version number in the module to read correctly, as I had not updated the number through versions 1.06-1.09, even though the module was updated correctly. Finally, I also ensured all players in a MP game would enter cutscene in the final encounter.
The end of Soul Shaker will also mark the end of me writing synopses in this way, as they are quite time consuming, and I am not sure if their use warrants the time spent on them. In future, and when we actually get back to playing, I will probably reserve my time to writing much briefer synopses (with far less detail) that will be no more than a single paragraph or two that is written directly on the blog rather than be directed to my web pages.
With Soul Shaker finished, there is little reason left for me to keep NWN1 installed on my computer now, except that I will leave it there so I can continue bug-fixing it if anybody should still find a bug I have missed. That is probably the only reason I will leave it installed though, unless a new module does grab my attention and I find I want to play it. This is unlikely though, as writing for the new module will take priority now, and if I was going to look at a new module, it would more than likely be one written for NWN2.

I thought now might be a good time to announce the working title of my next module (written in NWN2) for the new era of the Althéa Campaign: "Better The Demon You Know". As readers of this blog will know, I have been writing material for the new era since around Summer 2007, and that while it has been a slow start, I may be able to concentrate more on the new module now that Soul Shaker is officially completed for our group.

This afternoon (4.00 p.m. B.S.T.), I have an interview with the podcast crew, and so I hope to be able to give a link to that in the near future. For now though, here is the snippet and link to the last synopsis for quite some time ....

SYNOPSIS SNIPPET: (REALM LEVEL: 9th) REALM TIME: 37 Hours Approx.

"Slowly, the heroes approached the seated figures, the screams from the soul prison getting louder as they approached. Yet, the humanoids did not move. Were they dead? Karasten approached one of them even closer and tried to speak with it. Immediately, as if disturbed from its own wretched nightmare, the emaciated being rose and attacked the Influencer."  

Download the full synopsis here.

Tuesday, 19 August 2008

The Campaign Editor & Other Things

I have been quite busy over the last few days ... doing a lot of things and feeling as though I am getting nowhere fast. In all fairness though, I have probably been going through another learning curve and fighting with scripts quite a bit. Some of you may know about these discoveries I made already, but as they were new to me, I thought I would share them just in case they help others.

Campaign Editor

First, I took a closer look at the Campaign Editor. I have been into it before, but this time I took a closer look and found a couple of useful points:

1) KeepJournalSynchedToLeader: This solved my problem when companions joining after a journal entry was given, were missing entries. It also solved entries that companions would sometimes ignore for no apparent reason.

2) PlayersCanAttackNeutrals: I was overjoyed when I discovered this one. One of the let downs for me when I first saw NWN2 was the players inability to attack anybody at any time by right clicking and choosing attack. It was something that was always allowed in NWN1, but for NWN2, you need this switch. I now have it on, and a player can now attack whoever they like, with the added advantage of another switch UsesPersonalReputations set to FALSE stopping the factions getting too out of control.

I would still like to know what PartyCreation does, and so if anybody knows, please leave me a comment. Thanks.

Factions

I have also been spending time looking at how factions react with each other. I had written a script to take care of combat between some factions, but discovering the Campaign Editor switch (mentioned above) took care of my requirements and meant one less script to worry about. I still need to work on a script that handles alignment changing when someone kills for evil reasons, but that is almost completed now. Suffice to say, I have a number of groups set up now that react as they should do, in that they help each other out in combat if they are friendly to one another.

The one major thing to remember about factions, however, is that factions appear to affect NPC's and that it is reputation with these factions that affects the PCs. Bear this in mind when reading about the new functions below.

Death Issue

One of my main problems today was related to an old set of scripts that I thought were fine until I checked them again today. Some of the options I had were not quite as I liked them. The player will have an option they can turn on or off for each character that will help govern how death is handled in each case. Then there is also a difference if the player is controlling a companion or the main PC, as well as taking into account if the game is multi-player or single-player. I believe I finally have all the options working as they should now, although I had to rewrite a script that altered the stack of an item because it would disappear from the inventory when the stack quantity was altered. This appears to be a NWN2 bug and not my coding, as debug code confirmed the items were still being carried, but simply did not show any icon!

PC Options

I finally worked out how to make an icon draggable this week as well. I have a "feat"that every player gets when they join the game. However, I wanted this feat icon to be able to be dragged to the quickslots if they wanted to. It turned out that I needed to set the TOOLSCATEGORIES to 2 within the feat.2da for the feat. This is worth remembering if I make any more feats.

New Functions

I have also spent quite some time trying to understand more functions. Here is a list of some I have looked at closer, with an explanation of what I think they do:

1) ChangeFaction: Use this to make an NPC change to a faction of another NPC.
2) ChangeToStandardFaction: Use this to make an NPC change to one of the standard factions.
3) GetStandardFactionReputation: Use this to see how a standard faction feels about an object (PC or another NPC).
4) SetStandardFactionReputation: Use this to alter how a standard faction feels about an object (PC or another NPC).

5) AdjustReputation: Use this to adjust how a whole faction feels towards an object (PC or NPC).
6) ClearPersonalReputation: Use this to clear a reputation between two objects (PC or NPC).
7) GetReputation: Used to determine how object A feels about object B.

8) SetClockOnForPlayer: Turns on a clock for the player. I also found there was a way to show only the time (and not the date), which was useful because the names of the months do not match the names in my campaign. Requires UpdateClockForAllPlayers in module heartbeat.
9) SetNoticeText: I think this one allows text messages to be shown in a cutscene conversation, which the normal text message functions cannot do. (Untested.)
10) MakeConversable: Ensures a PC is put in a state where a conversation will work.

I also learned more about how alignment functions work and revised the roster functions, which can get exceedingly complicated when trying to work around the death system I have in place.

So, as you can see, I have been quite busy with refreshing my knowledge of the toolset. Much of what I have looked at should help me start to work with it more effectively. I never got my intro cutscene written yet, but I did work on the Life Essence drop script, which is why I needed to look into alignment changing scripts, which led to the faction work. As you can see (and probably know if a fellow builder), one thing led to another. Hopefully now though, I am in a position to get back to the cutscene and give that a go. I learned a few more things about the conversation editor as well, which may help me in that department too.

Saturday, 16 August 2008

The Deep Lair (ADV)

My group's gaming session was postponed from last Wednesday to Friday due to the problem introduced to my computer system after patching NWN2. However, when we did get to play on Friday, all went well. We managed to get in over two hours of play, and apart from one network dead link for the WAN player, all went well.

In the process of writing up this week's synopsis, I did realise there was a typo in the journal, but more importantly, I also realised there was a possible exploit with Lord Reginold's combination code. I won't go into details of this exploit, but suffice to say, I have now uploaded v1.09 of the module to correct this and the typos I have found over the last few weeks.

I have been working on my NWN2 module today, but I will save any updates about that for a later post. One thing I will say now, however, is that Factions appear to work in the opposite way to how I thought when you look at them in the faction editor. I thought that if group A were friendly to group B, then A would defend group B. However, in practice, it turns out it works the other way around, in that group B defends group A, even if group B are "less friendly" to group A, than A were to group B.

SYNOPSIS SNIPPET: (REALM LEVEL: 9th) REALM TIME: 34 Hours 50 Mins

"The group walked up to the man to speak with him, and soon learned that he was none other than Lord Reginold himself. Unfortunately, the force field that held the leader of the refugees captive was made secure by a combination lock that not even Myara could work. It appeared the heroes would need to find the exact combination before the lord would be freed." 

Download the full synopsis here.

Thursday, 14 August 2008

Almost There

After the pain of having to reinstall my operating system, every application and put back all data onto my computer, I am almost finished. For those following this blog, you will know that the v1.13 patch caused the initial problem, but, unfortunately, I learned of the solution after I had taken the decision to reinstall everything to resolve the problem instead.

I have not had the chance to do much in between the installs except some web surfing and visit the odd blog. Consequently, I have nothing more to report on my campaign build. I still have about ten small applications left to install, mostly to do with NWN tools, but after that I should be back in the position to start looking at the cutscene or Life Essence drop code as I planned a few days ago. Hopefully, this is the last I will write of this and the next post will be more interesting to read.

Wednesday, 13 August 2008

I Loathe SecuROM

I found out today (thanks for the head's up Frank Perez) that v1.13 patch has a serious SecuROM problem that gives the exact problems I have been encountering over the last few days. Check out this post.

This is an absolute outrage, as it has caused me to waste many hours trying to resolve an issue that I thought was elsewhere on my computer, as I could see no reason why a patch to a game should have caused this degree of an OS issue. Now that I think about it, I can see how all the problems I had started a day or so after I did the patch. And the subsequent video issues were due to my reinstalling over the top to try to resolve the right-click issues.

Consequently, there was no time for our usual gaming session tonight as I did not have my computer ready in time, and it probably won't be now until tomorrow at the earliest. My fear now, of course, is that I have installed patch v1.13 again, and now I am worried that it will fail again soon.

I am too tired and angry at SecuROM to say anything more at the moment. And so I sign off feeling really frustrated that a company can get away with what amounts to placing legal viruses on someone's computer. Someone must be made responsible.

UPDATE: For those who have not yet gone through many hours of Windows reinstalls and have found this post, you can have an easy fix by running this official repair: http://www.securom.com/support/repair.zip

UPDATE: It sounds like Obsidian have also released a HotFix patch that resolves the problem now, as another Update. (Talk about bad timing for me.)

Tuesday, 12 August 2008

Dr Watson & A Sick PC

And by 'PC', I do mean my computer and not a player character. A couple of days ago, I started having problems when right-clicking on an icon to make a shortcut. Dr Watson (drwtsn32.exe) would suddenly fire up and crash my computer. After bringing up the control panel and killing off Dr Watson, I noticed my AVG scan process had started. I checked out the AVG forums and it pointed me towards what I already guessed, that it was Explorer that had the fault and that AVG was reacting to that.

Anyway, after trying many other things to try to solve the problem I decided to reinstall Windows over the top of my existing copy (I don't like doing this as I know it can cause some other issues), only to find out it made no difference. Eventually, after I was about to give up and bite the bullet to do a complete reinstall, I decided to give the system one more going over, and I found another system TEMP folder (C:\Documents and Settings\User Name\Local Settings\Temp) where I decided to delete everything in it. (You have to change folder settings to "Show Hidden Files & Folders" to be able to navigate to this temp folder.) As soon as I did that, the system stabilised and I was able to correct the faulty shortcut.

This morning, however, the results of my installing Windows over the previous version have come back to haunt me, and now I am unable to do certain Window Updates, and I am also having problems running certain videos. The short of it is, I may have to do a full backup and system restore after all, which means another day wasted. If only I had found the TEMP folder earlier. Mind you, to top all this, I think my VGA card is also starting to play up now, as I had graphics corruption on startup (at BIOS level) today until I rebooted. I guess I am going to have to check its fan in case it's sticking and overheating.

The new dual processor computer is looking as though it will be coming along sooner than later at this rate.

UPDATE: I may have found my solution to the first problem here.
UPDATE 2: I fixed some of my video issues by reinstalling a DivX codec. (May still have a hardware issue though.)
UPDATE 3: I take it all back ... It still has the same problems. :( I'm going to test hardware now.

Invisible PC For Screenshots

I was just reading through AmstradHero's Fate Of A City blog and saw his comment about making a PC invisible onscreen for help taking screenshots. Well, the script below allows the builder to toggle between being invisble (and back to visible again) by running the same script again.

To run this script while in game, you have to have debugmode on: Go into console mode (press the button to the left of the '1' key along the top row) and then enter debugmode=1, which will turn on debugmode. Then type rs nameofscript, where the 'rs' part stands for run script and 'nameofscript' is whatever name you have given the script. I currently have the script called 'SS' so all I have to type is rs ss to toggle the PC between being invisible or visible on screen or not. Anyway, here is the script:

void main()
{
object oPC = GetFirstPC();
int iStoredAppear = GetLocalInt(oPC, "APPEAR");
int iAppear = GetAppearanceType(oPC);

// STORE APPEARANCE FOR RECALL
if(iStoredAppear == 0){SetLocalInt(oPC, "APPEAR", iAppear);}

// TOGGLE INVISIBLE
if(GetAppearanceType(oPC) != APPEARANCE_TYPE_INVISIBLE_HUMAN_MALE){SetCreatureAppearanceType(oPC, APPEARANCE_TYPE_INVISIBLE_HUMAN_MALE); return;}

// TOGGLE VISIBLE
if(GetAppearanceType(oPC) == APPEARANCE_TYPE_INVISIBLE_HUMAN_MALE){SetCreatureAppearanceType(oPC, iStoredAppear);}

}

Saturday, 9 August 2008

So Much To See & Do

I have been trying to expand my knowledge of NWN2 over the last few days, from scripting another GUI, to examining the conversation tool more, and even looking at custom content tools. The latter, however, is still evading me at the moment, as I am finding it hard to find any tools that may be "easy" to use or learn. I have downloaded Gmax, but have yet to try that, and from what I have seen and read, it may well be beyond me without a helpful tutorial. I have spoken to Amraphael of Zork fame (who is obviously someone most competent when it comes to custom content creation) and he said he would see what he could do if he got the time. (Thanks Amraphael.) By the way, if you have not done so already, check his site out, it really is an interesting read and the game he is developing (his own variation on Zork) looks like it will be a fascinating module to play.

The New 'Role-Play Test' GUI

This new GUI is part of an idea I had of trying to help players remember certain aspects of the campaign by giving a small test at the end of an "act" of play that rewards the player's PCs according to how many questions they answer correctly. It is only meant to be a bit of extra fun, and the player can choose to ignore the test altogether if they want to. However, if a player has been paying close attention to the game and is able to answer a number of the questions, then they will be rewarded with game XP for the PCs. I have also added the option to "save" the current test for a short while so that they can do extra research before submitting their answers. There are a maximum of ten questions per test, but some may be less. The current reward is 10 xp per character level (main PC) for each question answered correctly.

Combination Chest GUI Update

Geoff Cordery (a.k.a Quillmaster) has also been helping me with a few designs of other background images for the combination chests. Rather than give any screenshots now, I will leave them as a surprise when in-game. In return, I have been helping him with some scripting of his PC death code. It's great when you can return the favour for something like this.

Conversations

Until recently, I have neglected looking more closely at the way NWN2 handles conversations, and I have to say, much to my own loss. Having spent more time looking at them, I can see how many of the more common requirements for a conversation can be handled a lot simpler than the way you had to do it in NWN1: Quest logs have a direct input, nodes have camera selections for easier cutscene development and there are a number of 'common' condition and action scripts already written for a builder to access for each node. Now that I have studied them more, I will try to take advantage of them and have already started to outline one of my 'cutscene conversations' to use as an introduction to the module.

NWN2 Expansion: Storm of Zehir

There was more news about the new expansion due out later this year (so I have heard rumoured), called "Storm of Zehir" posted on the Obsidian Blog. It reads that they have added quite a few interesting differences, including changes to the world map and concentrated more on a party than an individual with companions. From a scripting pointing of view, I hope this does not alter things at all, otherwise it could mean a nasty 'fly in the ointment' for some of the coding I have already done for the next module. There is a Pre-release Forum for the expansion at the Bioware Forums that has some interesting posts about the expansion: The overland map and battle. I also found this Official Website for the expansion.

UPDATE: Here is a direct video link .






Moving Forward - 'Soul Surges'

Many of the main 'mechanics' I wanted in place: death system, vigour & rest system, crafting system, weapon system and Arcaene Lore system are mostly incorporated now, even if only at the outline stage. That is, they work, even if I need to flesh them out a little more. The Life Essence system fits in around many of the mechanics, but also expands on many other elements of the game, including such things as Combination Chests for example, and is something that I am continuing to incorporate and expand as I build.

Another system that I want to add, which I have yet to even start, is the Soul Surges system. Without giving too much away, the new era has some elements of a different magic system breaking through. These breakthroughs take the form of Soul Surges, and allow spell casters to produce spell-like effects by use of their soul rather than other energies.

I have had some preliminary ideas for some time, but have yet to expand on it. However, I can say they are powers that are over and above normal spell use and are powered by something akin to mana (and may still be mana at the end of the design) and can be used alongside the normal spells each day. They are not unlike At Will Powers in the 4e D&D manuals, but at this stage, I only intended them to be for spell casters and I still say they will need a power source of some kind.

As you can see, I have made some progress over the last few days, although not as much as I would have liked due to being distracted with bigger ideas for greater development that have drawn me back to the internet to try to improve my own building skills. It always feels like there is so much to do, and it's difficult deciding what to get stuck into first. I think my next move will be to either to write the code that determines how and where Life Essences can be found, or to try to sort out the first major cutscene.

I almost forgot: I also wrote a couple more books for the module. One was simply designed to give more depth to the current area, and the other was an in-game device (once read) to help the player determine what role they intend to take when playing the game: A Channeler or a Harvester. I will explain a bit more about these two 'roles' in a later post, but maybe the titles give the reader a clue as to what the role may be about.

Thursday, 7 August 2008

The Diaries of a Madman? (ADV)

Eighteen weeks later and the group is still playing after nearly 33 hours in total! Game play went smoothly again, considering I have recently had hardware problems with one of my computers (the one my wife's character is stored on). After being switched on, it now wants to reboot a couple of times before settling down, which suggests to me that I have a heat-related problem and may turn out to be the same as it was before when the memory needed reseating. Anyway, that aside, the game went smoothly apart from one small hiccough when Myara's hitpoints suddenly appeared to drop a significant chunk for no apparent reason. I was unable to give any explanation for this, but a simple reload of a slightly earlier position restored her to the correct amount.

Reloading like this is not something I usually recommend with Soul Shaker, due to its use of campaign variables, but if you know what you are doing and needs must, then it can be done. Doing so, did mean I had to live edit the database so that we could all use the latest Soul Orb Prison again, but it was easily done.

Fellow NWN Bloggers

As an aside, I decided to look for fellow NWN bloggers yesterday, and in particular, NWN2 bloggers to see how other are getting along with their projects. After a couple of hours surfing, I found a great bunch of sites that appear to have regular correspondence between each other and have added all of them to my own blog selections. It was good to see many names that I already recognised there as well, and hopefully, I might be able to start getting a little more interactive with them all myself. After all, I know what it's like trying to build a module ... it's always nice to get feedback and encouragement from fellow builders.

SYNOPSIS SNIPPET: (REALM LEVEL: 8th) REALM TIME: 32 Hours 40 Mins

"The group found at least six tomes: One read as a Project Diary, another as a book on Denizens, and the final four made a set of volumes that spoke about the planes of existence, entitled, Myria Planus. Each of these larger tomes gave a great deal of insight about the Realm in which they now found themselves, and the Project Diary even revealed one or two plans of the lich and how it hoped to accomplish them. Whether it spoke in truth or madness, it was hard to tell. "  Download the full synopsis here.

Tuesday, 5 August 2008

It's For You!

I can now show you some of those scroll images that Geoff Cordery (Quillmaster) managed to put together for me. (Thanks Geoff.) He did half a dozen images for me (one special one just for the campaign), but I will only show a few of them here (and especially not the special one) to give you an idea of how they look. The good thing about these scroll images is that they are around 700 x 700 pixels, which means they are already a good size to display on screen, without the need to blow up and cause them to pixelate.

Scroll images are now available at the Vault.





The screenshots show the whole screen so that you get an idea of how big the scroll GUIs are. In the end I had to slightly alter the XML that displayed these GUIs because the close button and text displayed would not quite match up for each type. I think the differences and slightly extra work were worth it though. Of course, I could leave the close button off altogether and just let the player hit the escape key, but I have currently left it in just in case the player has more than one GUI open at the time.







These scrolls, like my Readable Books, allow for a journal entry to be updated after being read, and so they are quite useful to put across plot points for the players. I decided not to attach a number of other events to these for the time being, but there is no reason why they could not have all the events as used in the Readable Books.









PC Background

I have also managed to put together some of the PC background section that is set by players at the start of the module to help set the scene for both them as a player and for their PC. I wanted to allow both players of Soul Shaker and those who come along new to be able to start in this new era of the campaign, and so devised a "Background" GUI that requires one answer from a player that sets the game up for them. Depending on their answer, the player will have their PC know more or less about events at the start of the game. Furthermore, the same answer will steer the player into learning more about the story before they get underway.

Toolset Tip (Companion Compatibility)

During my time putting together some scripts this week (especially to do with Readable Books), I discovered quite a major point when it comes to programming events when the player may be using a companion instead of their Main PC. In particular, GUI responses only ever assume to work through the Main PC, even if the player is using a companion. This meant I had to figure a way to store the companion on the Main PC in the event that I needed to recall the companion object under such circumstances. I got around the issue with a couple of lines of code:

object oMainPC = GetOwnedCharacter(oPC);
SetLocalObject(oMainPC, "PCReader", oPC);
These two lines placed under the line that gets the PC store the PC being played (including a companion) onto the Main PC. Then, in the situation when only the Main PC is returned, I can retrieve the correct PC by using this example code in the script:

object oMainPC = OBJECT_SELF;
object oPC = GetLocalObject(oMainPC, "PCReader");
if(oPC == OBJECT_INVALID){oPC=OBJECT_SELF;}
This is something that I had to do in my released Readable Books and Captured SpellBooks. The Vault versions have now been updated to v1.02 to reflect this new code that makes them companion compatible. And now that I know this, of course, it is something I will keep an eye out for.

As a further side to this, I now recognise the important distinction when coding between the Main PC and a Companion in other ways too. For instance, journal entries activated by a companion do not show in the companions journal - at least not in the settings I have tried. This is not a problem of course, as long as the player is aware of this and checks their Main PC's journal for updates instead. It is possible to iterate between all the companions to update their journals with extra code as well, but I decided to simply add one entry to the companion journal effectively saying check the leader's journal instead.

There is a point of note for the player here as well, in that while they may play more than one character (via using companions), it is still their Main PC (acting as a sort of leader for the small group) who determines many of the major points for the small group. This is obvious in hindsight, but is still worth mentioning so that players are aware. E.g. If the leader does something to affect their alignment, then the player should note that supporting companions are also said to be "going along" with their leaders choices and have their alignments shifted at the same time. In other words, some actions played by the leader affect the whole group. Furthermore, even acts committed by a companion count as if they had been "ordered" to do so by the leader (Main PC) and so the whole group are affected together. In fact, in this sense, while the PCs may be individuals, some of their actions count as if they affect the group as a one whole.

Saturday, 2 August 2008

AME Interview Now Available

The AME group interviewed me about my work and Soul Shaker. The interview has now been posted at the AME forums and is available for viewing from here: AME Interview.

Feel free to leave comments or other questions at the forum if you want to and I will answer where I can.

Thursday, 31 July 2008

Deep In The Dungeons (ADV)

Play once again went smoothly with no errors or problems to report. Myara was dispersed once, but that was down to some solo adventuring in a dangerous environment. ;) As followers of the adventure wwill know, the heroes managed to gain entrance to the lich's dungeons last week, and this week saw them enter some deeper chambers. They also learned of the lich's phylacteries and to keep an eye open to destroy any they should find.

As a side bit of news, my boxed set of 4th edition D&D books turned up today. I have had a quick look at them and noticed some changes in particular, like the ways spells and powers are now allocated. I am not sure if I like everything that has been done, but as I only ordered them as a source of inspiration for some ideas for myslef, I won't worry about that. And for those interested, D&D Insider looks interesting and while currently unavailable, does offer some things free for the time being. Let's hope it all goes that way.

I have also managed to get my scrolls working (artwork by Quillmaster) and may add an extra post about them at a later date. Now that they are ready, I can start to add some more details to the next chapter of the campaign. Books and scrolls will play a fair part in the future, and is why I wanted a good GUI interface to play them with fun. I have a few ideas already, but at the moment, they remain simply as ideas until I have the time and energy to put them into something more solid. Hopefully soon.

SYNOPSIS SNIPPET: (REALM LEVEL: 8th) REALM TIME: 30 Hours 40 Mins

"Upon entering the eastern chambers, the heroes were confronted with a rune circle etched into the tiles on the floor. It immediately raised all their suspicions, especially Karasten who warned everybody that they may be in for an imminent attack. And sure enough, the moment Myara first entered the circle, imps were summoned to attack the intruding heroes."  

Download the full synopsis here.

Monday, 28 July 2008

Combination Chests

I finished one of the placeables that I wanted to include within the new era today: Combination Chests. Players of Soul Shaker will have already encountered a version of these and so will be familiar with the concept, even though the new era version is completely revamped. For starters, NWN2 allows me to use a GUI interface rather than a conversation box for input from the player - and while programming the XML code is harder first of all, working with the input from a GUI is actually a lot easier than trying to work around a conversation with many tokens. Furthermore, the GUI makes the whole interaction much more visual and fun! I had to design the GUI background myself, and so while the artwork may not be as good as some, at least it is practical and serves well for the job. Take a look at the edited screenshot below to learn more about the way Combination Chests will be played.

Even before the PC interacts with the chest (or any object with a combination lock), they can examine the object to get an indication that the lock users tumblers in a combination lock. They can then either continue to interact with the chest or do one of two other things first:

1) They can try using dedicated Tumbler Picks to force the tumblers open. The chance of success is based upon the DC of the lock, the players Open Locks skill and the quality of the picks being used. There is always a minimum chance of 5% success, no matter who tries to pick the tumblers, but there is also a maximum chance of 95% for success no matter how good the PC or the picks are. Picks only have a single use like normal Thieves Tools, and the combination will lock again after the picked object is closed.

2) If the PC has the Knock spell, then they can cast it on the chest to allow anybody to try to work the tumblers that can only otherwise be worked by a PC with a high enough Open Lock skill to interact with the lock.

Alternatively, a PC can simply try to interact with the lock. When they do, they will be presented with the following GUI:

CLICK ON IMAGE TO ENLARGE


At the top of the GUI is a standard message that the player's PC is about to interact with a Combination Lock. The digits (A) show the current tumbler setting. These change as the player interacts with either the plus or minus buttons (B) above and below these numbers. If the combination is known, the player can enter it via these buttons and then click on the "Try Combination" button (C). If it is the correct combination, the object will open. Extra information about the lock and interaction is provided (D) as the player continues to interact with the lock.

An eye should be kept on the extra information section, as it gives you feedback about the lock and the person trying to interact with it. In the picture shown, the lock is said to have a Tumbler DC of 4 and that the current PC's Open Lock skill is too low to have any feedback when they interact with the lock.

Interaction Feedback

If the PC who interacts with the lock has an Open Lock skill equal or higher than the DC of the lock, then they will receive Tumbler Feedback with each attempt of a combination. The feedback says how many of the tumblers are correct, and so after a few attempts, the lock picker should eventually be able to ascertain the correct combination and open the lock.

If the chest has had the knock spell cast on it prior to any interaction, then the working DC will be zero, which means anybody working the lock will receive the same information as a PC with an adequate Open Locks skill. NB: The knock spell only keeps the working DC to zero for a period of 15 seconds per level of the caster, and the time is constantly displayed and updated in the Information Feedback area. Therefore, time is of the essence when using the knock spell at lower levels. Once the combination has been found and the lock sprung, the knock spell ends.

Along with the Try Combination button, there are also two other buttons: (1) Abandon Interaction. This abandons the current attempt to open the object without testing the current combination setting. (2) Use Life Essence. Note that this button is disabled if the PC does not carry any Life Essences (as in the picture), but if they do, the PC will have the option to use this button to force reveal a pair of tumblers. A maximum of two Life Essences can be used to reveal two pairs of digits, which are always the first four digits. Forced digits remain forced forever.

A couple of final points to note are: (1) There is pop up help reminders for each button if the player hovers over the button. (2) The tumblers can be relocked if the player chooses. (This was not something I allowed in earlier renditions of Combination Chests.)

I like these locks as they act as a kind of mini-game for the player who is prepared to spend just a little time trying to work out the combination if they have the skill or spell. Alternatively, there are a couple of ways to bypass the testing altogether: Either expend a couple of Life Essences to reduce the testing of four digits or acquire a number of Tumbler Picks to bypass it altogether. Of course, the PC could also just try to find the correct code in the first place.

Toolset Tip

During my making of these, I came across an issue that took me a while to discover the answer to. Basically, it is to do with the Default Action Preference button for an object within its properties. When using the chest, a PC with the Open Lock skill will automatically try to lock pick it by default unless this option is changed to USED. I needed to change it to this to allow the interaction to bring up the GUI rather than the PC try to unlock it, which of course would always fail.

Artwork & Voice Acting

On a different subject altogether, I am pleased to say that I have been able to acquire the services of Geoff Cordery (a.k.a. The Quillmaster), who provided some great artwork in Soul Shaker, to help out with some more artwork for another idea I have for the new era. It involves some scrolls that will work in a similar fashion to Readable Books, but with scroll artwork rather than book artwork. I hope to have something to show you in a later post.

Geoff has also agreed to help out with some voice acting for me with some of my NPCs. While I may be able to pull off one or two weak personalities, Geoff has quite a flexible voice, which I hope will add to the list of characters players will meet.

On the back of this, if there is anybody else who believes they could contribute towards other art work or voice acting, then please drop me a comment and we can take it from there. Can you help?

Thursday, 24 July 2008

The Tower's Secret (ADV)

Week sixteen and all is well! Tonight went smoothly again with no real bugs to report. A typo was noticed in one of the journal entries, which I have now corrected in my own current build, but it was not enough to warrant a public update yet. There was one other issue, which could be more of a problem, but I suspect it unlikely to happen for most people and even then, only likely in a multi-player game: Having the refugee gate guard accidentally lock himself out! I could write some code to ensure this does not happen, but I suspect that it was a one-off and I will wait to hear if anybody else encounters the problem before I do anything more about it. In theory, there is still a work around, but again, I won't divulge that unless I really have to, as it is a bit involved.

I have also decided that I will no longer be doing detailed synopses after Soul Shaker has finished. It takes me quite some time to do, which could be better spent either writing new material or elsewhere in general. Instead, for the new era, I will write brief synopses, but include instead, more information that the PC's might find during the gaming session that can be read online instead of during the gaming session. E.g. If the heroes find a book, I will upload the book information as part of a session write up. This way, a player can still be reminded of what happened, but also have more hot points as reminders of what they are trying to achieve.

I am pleased to report that I have been more constructive this week than I have for a long time. I have also had one or two more ideas that I want to script regarding new era Combination Chests. I liked the way these worked in Soul Shaker, along with the various skills and spells, and I have come up with some similar ideas for the new era, but in a way that fits better with the new mechanics. I have not even started to script this yet, but I am hoping to use some of the scripts I have already written (with some minor adjustments), and that it all works out as planned. I will go into more details about these in a future post.

SYNOPSIS SNIPPET: (REALM LEVEL: 8th) REALM TIME: 28 Hours 50 Mins

"It did not take long for Transafin to concoct the potion the heroes required to use against the giant gelatinous creature. After giving thanks to the old wizard, the heroes immediately made their way to the cavern that marked the secret way. Grimbold volunteered to take the potion and use it against the creature. He found that he had to get quite close before he could risk throwing the potion at it. Once he did, however, the creature noticeably weakened and everyone in the group started to attack with either melee or magik. In its weakened state, it did not take long for the creature to fall against the heroes, leaving the way clear to continue."  Download the full synopsis here.

Tuesday, 22 July 2008

Living v Dead Weapons

I have managed to script a fair amount of the system I want in place to differentiate between the two types of weapons that will be found in the new era upon Althéa: Living and Dead Weapons. The main difference between Living and Dead Weapons is that Living Weapons (from the old era) do not lose quality through use and appear to have a self-maintaining quality about them, whereas weapons of the new era, called Dead Weapons, gradually degrade with use.

The system works differently from any used in previous adventures, and reflects a quality of a weapon rather than any sort of direct damage as such. That said, a weapon used in combat will gradually lose quality if the PC does not maintain it and feedback currently still suggests that a "weapon is damaged". At the moment, the system only relates to weapons, but I may consider expanding on this to cover armour as well.

Dead Weapons can currently be in four states: Poor, Moderate, Good and Exceptional. Their current quality determines how many properties they can hold during enhancing. Poor weapons cannot be enhanced, moderate ones can hold one property and good or exceptional weapons can hold two properties. Only a Living Weapon can hold more than two properties. Furthermore, if a weapon has a property and the weapon degrades through use, then the weapon will lose a property. Therefore, it is wise for a fighter to ensure they keep their weapons in the best condition. This is something they can do themselves with the correct skill (Craft Weapon) or take to a Weapon Smith with the same skill.

There will be different levels of skilled Weapon Smiths around and it may pay the PC to keep track of where the best smiths are as they require better skilled smiths to keep their better weapons in good condition.

If a PC fails to have their Dead Weapon maintained and it reaches a quality score of zero, it will break and become useless. Therefore, it may pay the PC who wanders far into the wilderness to have at least some skill in Craft Weapon, to ensure they do not lose their weapon along their adventures. On the other hand, if they are fortunate enough to find or win a Living Weapon, then weapon degradation is one less thing for them to worry about.