Choose Your Language

Saturday, 26 December 2020

Episode 38: Coding Monsters!

Let me say straight from the start that this post is not about actually scripting monster AI, or even a tutorial about how to design a monster in a toolset. In this case, I am simply referring to those technical "monsters" builders face when trying to produce their modules. From applying animations to writing scripts, they all seem to come at various levels of difficulty, just like those "real" monsters we face in the game itself. So while some such encounters may occasionally appear as "simple" as a goblin to beat, others feel like dragons! Even builders skills can be thought of as in classes and levels themselves, so what may appear simple to one builder becomes a real challenge to another ... and haunt them for years! Read on for my latest XP gains in building ... 

The Patrolling Guard

A couple of posts back, I described how I had been wrestling with some animations and how they may or may not work within conversations. Recently, however, the issue with animations has extended into the area of walk paths for me. In the past, the official WalkWayPoints function (and accompanying scripts) had always been a bit hit and miss for me, and so a few years back I decided to write my own version of them so that I could have more understanding and control with what was going on, especially when considering scripted waypoints: those that allow additional animations for a "walking" creature. This venture was a reasonable success, as it did allow me to ensure the creatures I setup worked as expected ... but only "most of the time".

I still continued to encounter issues where walkers would sometimes become stuck in the environment; a problem exacerbated if a PC blocked a walkers path in a limited space. Previously, I had tried to alleviate the issue by forcing the creature to try to move somewhere else before continuing their walk path. The problem with this, however, was it could cause the creature to constantly reposition themselves if the path was blocked by a PC. It looked like they had the jitters! Thankfully, in the end, I figured a way to smash that long standing monster, by using a ClearAllActions that now simply pauses the walker in their walk until the path is clear again. It was a relatively simple fix to a long time issue I had been struggling with. The only caveat I learned at this time was also to ensure any WPs laid down MUST be done in such a way as to clearly be guided around any placeables. For if a WP guide line even slightly clipped a placeable, the engine did not appear clever enough to always be able to walk around the placeable object.

XP GAINED: 100

The Random Monster

Once again, I am not talking about a random wandering monster, but the monster of trying to work with random probabilities in the game ... or with any probabilities for that matter. Twice over the last few months, I have had to face some maths to do with probabilities. As many will likely know, trying to deal with any kind of randomness on a computer is difficult. (Do some background research if need be.) My first issue was trying to determine the probability of a drop to ensure I was giving the player the right odds at acquiring certain items and the second encounter was trying to ensure treasure drops randomized their location fairly. For the latter, I learned a bit about the dangers of naivete.

XP GAINED: 100

The Persistent Monster

I have certainly had my share of these critters! Those who have been following my campaign build of the last few years will have seen some of the types I mean. I can even include The Patrolling Guard issue as one of these types of issues, but as I have already covered that above, I will give an example of a couple of others I have had to deal with recently.

An example of the kind of thing I mean is the usage of a variable string instead of a variable name. So rather than GetLocalString(OBJECT_SELF, sVariable), I will have done something like GetLocalString(OBJECT_SELF, "sVariable"). The issue with this kind of problem is that both lines of code will happily compile as neither is a compiler error. The error is purely one of my own making using "sVariable" instead of simply sVariable. The last one I had one of these, I was stuck for quite some time trying to locate why my script was not working.

Another example of an issue I can encounter of my own making, is if I should happen to change a ResRef of an item, which I have previously added to a store with its old ResRef. This again has caused me all sorts of issues when I am trying to reproduce an item from the original store bought ResRef, which fails to do anything because all that I have there now is the newer reference. Thankfully, now I have been stricter in my approach, I believe I must be near the end of any such issues moving forward.

XP GAINED: 100

The Deep Rooters

When I hit one of these issues, I can usually write off an entire session trying to get to the bottom of it - sometimes even multiple sessions. These type of issues tend to rear their ugly heads somewhat further down the coding path, and often even after a module release. The reason being, these type of coding monsters often only show themselves under unusual (or rare) situations.

For someone who has coded their module in the way I have, this means I am more likely (I believe) to hit these types of issues more than most, simply because I have a number of deeply integrated systems that allow multiple paths and diversity for the player. As an example, even the way "Death" is handled in my campaign has multiple paths. I can thank my wife who has been able to test the module a number of different ways and offer feedback in some areas of the code, which even I have not been able to fully test due to time limitations. I hasten to add this is why feedback from players is invaluable to builders, as we simply do not have enough time to do everything.

As an example of one of these deep rooted monsters, in her latest testing, my wife discovered that if she had abandoned a dead PC in the Sanctuary (while playing hard-core death mode, being abandoned meant the PC could no longer be raised from the dead), if she now brought another dead PC to the same area, the code had not yet been considering such a situation where a player (like she had done), now tried to raise another PC that was still able to be raised within the same area. I had to trawl through multiple death scripts to finally locate the one which needed a simple variable check added to fix it. A simple fix in itself, but one that required a lot of code searching.

As a final example of a recent deep rooter, my wife discovered a situation where she could return to an area and the NPCs would not be there. She quickly discovered she could work around the issue by reloading, but it was still obviously an issue for me to have to resolve. Once again, the problem was hidden among a number of functions relating to the whereabouts of creatures subject to the time of day, and if they changed locations depending upon night and day habits. Now most people probably do not even worry about this area of module coding, but for me, who wanted to design a "realistic" environment where time mattered, I had to track down why certain NPCs had refused to jump to their relevant locations upon her arrival. This monster turned out to be quite an "end of level baddy" type, even requiring me to rename some functions to help avoid misuse due to their naming. Along the way, I was able to improve the scripts (as they go back quite some years), and finally add the relevant function call to the right script to ensure these lost NPCs would now return at the appropriate time.

I hasten to add that even when trying to improve some of these scripts, simply adding a GetIsDead check for some reason would crash the toolset! Again, it was only a minor condition I considered adding to help "improve" efficiency, but the toolset was not having it. The additional problem was, having added it during the process of the overall fix, trying to locate that it was the cause when the final test crashed, added more time to resolving the initial issue.

XP GAINED: 200

Gaining A Level

Anyway, after all this monster slaying, I can safely say that I have probably gained enough experience to go up a level now ... well, at least in some way. I am still not much better in area designs and such like, but maybe I have gained a point or two in conversations and some scripting. ;) And all this is being added up to hopefully bring to you module two one day ... speaking of which, here is a screenshot.

Let's Sit Down For A Talk


Tuesday, 8 December 2020

Episode 37: The Dungeon Environment!

As we all should know by now, dungeons come in many shapes and forms, fascinating us and piquing our curiosity, while at the same time, all too ready to do us harm! For those of us who enjoy both science fiction and fantasy, we are familiar with the many different environments of alien or bizarre objects we can expect to find, as well as the many denizens we are likely to encounter. This week, I have been trying to focus on some of those aspects, which I have found interesting to deal with in my own past gaming experiences ... and which I intend to include in my next module. Read on for all the latest updates ...

The Alarm System

Of all the games I have had the privilege to play, one of my favourites (as many of my regular readers will know) is System Shock 2. For me, it was the first time I experienced timed alarm systems, which could catch out the unwary player and send a horde of creatures their way if not handled correctly. I developed a system akin to this in my NWN1 module, Soul Shaker, where I employed "Watchers" to do something similar. In my next contribution with The Scroll: Predestinated Days, I hope to add another variation to a dungeon that players will need to negotiate.

Without going into too much detail that may spoil the experience, all I will say is that the alarm system I have devised has managed to capture all those elements I was after, including the ability for the player to be able to manipulate the system and gain an advantage if they play clever. If not, then there will be consequences ... The choice of play, however, will be left to the player.

Complementing Systems

Part of the joy of building a new module is being able to put together new ideas and systems that all work together to give the player a whole new gaming experience. For myself, it is not just about putting together a new story within the same fantasy world ... it is also about adding a new dimension to the game play itself. Please note that The Scroll series of modules are not as extreme in their design as my NWN1 Soul Shaker module is (as those who have played my modules will be able to confirm), but I hope those same players will also be able to attest to the many other new systems and options I have built within The Scroll to make it the unique playing experience I believe it is.

To this end, The Scroll: Predestinated Days will continue with some of those systems I have already developed in module one, but will also have a few new systems added to complement them. Hopefully, I have been able to incorporate them well enough to be reasonably intuitive to use, and most of all, a fun addition. New GUIs have been designed and included to make their inclusion easy to work with. At the moment, I have held back from showing screenshots that include them, but maybe in the future (and possibly nearer completion), I may be able to give one or two screenshots that I hope will tease the player with what to expect.

Conversations Overhaul

Some dungeons offer the opportunity to converse with its denizens, and so a good conversation goes a long way. Recently, I learned more about how animations work in conversations, and so ended up "fixing" (by removing broken animations) and "improving" (by adding some I knew that worked), not only for the second module, but also retrospectively for some of the conversations in the first module. Now, the NPCs respond more animated than before, benefiting both modules. NB: The first module will have access to these upon the next release (or update).

Code Improvements

Working on the second module, which shares the same core code as module one, allows me to continue to test and monitor the overall game play for the whole campaign of modules. As a consequence, I have had the opportunity to improve the code around journal updates, fix a minor auto-pause issue and improve overall efficiency.

These are all relatively small fixes to the code, and so I am holding back on any further module one release for now, and to also allow my wife to test these alterations before going public with it. It may even be that unless a critical problem is found that demands immediate attention, that the next release will not become available until the full release of module two anyway ... or perhaps when I am confidant that the changes are safe to release at any rate.

Chipping Away

I managed to finish another side quest, which ended up requiring more conversation nodes than I first realised would be needed. However, it was during this additional time that I learned about the conversation animations in more detail, and so it was time well spent.

I also managed to move the main quest further forward, reaching a new stage from where I can work from. This led me to working on an area where the next stage is to take place, and start to work on new conversations. The screenshot this week, however, is from a conversation I wrote last summer. Although, it does show a little bit about the "dungeon" environment ... in more ways than one.

A Dangerous Dungeon Environment?

Thursday, 26 November 2020

Episode 36: Camera Now Goes To 11!

The last few weeks since my last post have been relatively productive for me, and since that time we have also had the news that Arem (from the NWN2 Forums) has successfully managed to locate the hexadecimal locations of the nwn2main.exe to allow us to increase the zoom potential of the camera for the game. Technically, it goes much further than 11, but I hope my Spinal Tap reference has not gone unnoticed. (I have a clip to the hilarious link in my post below.) Read on for further information.

Overcoming A Hurdle

I am pleased to say that I managed to finish a difficult set of conversations that formed an important section of the main plot for moving the player forward in the game. The conversations included where the player learns of a situation, seeks what must be done and then decides what to do about it. The point is, however, this series of conversations was already being dictated by how the player had previously explored the area and what they already knew. Therefore, it involved quite a bit of logic flow checking, and even ended up needing a final potential event added to the area that had a small chance of requirement if the player had done something completely off the wall. For those interested, I even had to brush off my skills of calculating probabilities of a certain event occurring, to help ascertain requirements. My thanks goes out to Thierry (a.k.a. 4760), who re-educated me in this.

Leaving The Options In

With respect to what I say above, I know there is an argument that, as a builder, I can make the options simpler for myself with what I allow the player to do. However, as a DM from days of pen and paper (PnP), I like to place myself in the position of the player and try to accommodate as much flexibility and out of the box thinking by the player as possible. There are of course still limits compared to PnP, but if I can minimise these, I will. This last section of conversation writing was one such situation, and now that it is finished, it offers around four possible paths just for this one area of the game. Then the fun for me is watching (or hearing) how a player managed it in their game. Thankfully, I have a small group of players who I will see at first hand what they will do; and my wife, I am fairly sure, will try a number of them through various plays.

Conversation Animations

During the time of writing conversations, I also discovered some animations that failed to work reliably. After some testing, I eventually managed to narrow down those that (for me at least) appeared to work as described. However, again, having had info back from Thierry, my results differed from some of his own experiences, although he concurred there were some that gave him problems too. One that stood out to me, which I had liked to use, was the Scratch Head animation: sometimes it worked, other times it did not. The main point to note, however, is that NOT all animations work. I post my results at the very bottom of this post for information.

Overcoming A Bug!

I give as a warning to others who may do something similar ...  

If you have scripted your code to recognise a certain TAG reference, do NOT forget it! 

We all know about being careful with UNIQUE tags, but there may be others like me who may also use a common aspect of a tag to help distinguish between similar tags when applying a common aspect of code. The problem is, if you forget you have done this, it can come back and haunt you as a bug!

After my hiatus, I returned to continue building an area and added a number of "guards" that were required to fill it. At the time, I was using a standard "alb_npc_xxx" to help distinguish the various guard types. However, I had forgotten that I use the "alb_npc_" section of a tag to distinguish between specific and unique proper NPCs. So, when my code spotted one of these generic "guards" with the prefix, I ended up with some very strange results that were tricky to track down. E.g. One guard of a group of sleeping guards refused to sleep. (Insomnia I guess. 😏) Tracing the fault back, I discovered the guard had lost the variable that told it to sleep due to its tag making it have other code fire beforehand. What made this more difficult to track was that after this particular piece of code fired and prevented the guard from sleeping, it no longer fired for any other guard. i.e. The problem appeared specific to the particular guard, but turned out to affect any and all guards that had the wrong tag, but only the first ever one the code found.

The end result: I had to go over a number of areas re-tagging the erroneous guards and then also correcting all way points, triggers, conversations and scripts that referenced these tags. The good news is, while a pain (because each change also forced me to have to restart the toolset because it does not like such in area changes), I have now fixed that and can continue. And so finally ...

A Camera That Goes To 11 (At Last)

OK, for those that don't know the Spinal Tap clip, here it is ... Where have you been?

The real news, however, is that we can now go just that little bit further out with our camera zoom angles within NWN2. It has been a long time coming, but thanks to Arem (of the NWN2 forums), we have been blessed with the hexadecimal information we needed to apply this hak to the nwn2main.exe file.

For those that would like to do the same, here is a brief tutorial.

The Hex Editor I used was: HxD Downloaded From Here.

INSTRUCTIONS

Preparation:

  1. Always check any downloads for viruses before usage.
  2. Understand where you install a utility and access files. Install the HxD if you do not have it.
  3. Always backup any files you are working with. In this case nwn2main.exe.

Working with a copy of nwn2main.exe using HxD:

  1. Copy nwn2main.exe to your desktop to work with.
  2. Open HxD and open the nwn2main.exe copy on your desktop
  3. You will be presented with a lot of numbers and data in a window.

The hardest part when working with a editor is finding the part among the data you need to edit. The two sections we need to edit have been presented to us by @Arem as hexadecimal numbers:

  • For the height of the STRATEGY (default 25) the area to edit is located at: 572818
  • For the height of the EXPLORATION (default 22) the area to edit is located at: 580D64

I have personally set mine to both 35 as a test for the time being.

The simplest way to find it is as KevL points out (if you use HxD) as we both appear to do.

Long Explanation: The column presented on the left of the editor only shows you where different sections of these blocks of data begin. If it was in decimal, it is akin to showing 10’s, as in 10, 20, 30, 40, etc. Therefore, to continue the example and to look for say, 45, we would need to look for the 40 in the first column and then move along the row five places to reach the 45 position. In this case, however, the numbers are made slightly more difficult to read intuitively because we are using hexadecimal rather than decimal.

The easiest number to find is the 572818, because we can look for the column 572810 and then along until we reach the ninth location (including the zero offset), the one we want. (Note: These are called “offsets” and begin at “0”) NB: HxD shows the actual point you are at in the bottom left hand corner, so you know when you are the exact spot you need to be.

Here is the screenshot of where you should be for each place. Note the values on the right hand side of the images. These are the ones you need to edit to the value you want.

  

Once you have changed them, save the file and use the modified nwn2main.exe instead of the original.

KEEP THE ORIGINAL IN A SAFE PLACE!

And Finally!

Finally, and for an added bonus this week, I have three screenshots to leave with you, although all of the same image. The shots are from a new area I have started to work on. It is not "new" as in an additional one, but "new", as in I have finally reached the stage to work with it properly.

The three images, however, have been taken using the new camera angle settings I have with my game now ... one from each of the camera angles, with all now set at 35.

The differences to the normal setting may not be obvious or hard to tell from these shots, but I hope the view they give helps you to see how flexible the depth is even at the level of 35 in each case.

Camera: Character Mode

Camera: Exploration Mode (35)

Camera: Strategy Mode (35)

BODY ANIMATIONS TESTED ON MALE ELF:

NB: By “WORKS”, I mean it provided an animation of some sort, but may not be of much use. Some marked “FAILED” occasionally worked, but maybe only once and then not again. Most did nothing at all, BUT may work with other creature models.

ACTIVATE - FAILED
ANNOYED - FAILED
ATTENTION - Appeared to keep raising shoulders. (WORKS)
BARDSONG - FAILED
BORED - FAILED
BOW - WORKS
CHUCKLE - WORKS
CLAPPING - WORKS
CONVERSATION_ANIMTYPE_TALK_FORCE03 - WORKS
COOK01 - WORKS
COOK02 - WORKS
CRAFT01 - WORKS
CURTSEY - FAILED (May work on a female NPC.)
DANCE01 - WORKS
DANCE02 - WORKS
DANCE03 - WORKS
DEJECTED - WORKS
DRINK - WORKS
DRUNK - WORKS
EQUIP_WEAPON01 - WORKS
FLIRT - WORKS
FORGE01 - WORKS
IDLE_MELEE - FAILED
IDLE_MELEE_RAGE - FAILED
IDLECOWER - WORKS
IDLEFIDGETDRUM - WORKS
IDLEFIDGETFLUTE - WORKS
IDLEFIDGETGUITAR - WORKS
IDLEFLUTE - WORKS
IDLEGUITAR - WORKS
IDLEINJURED - FAILED
INTIMIDATE - Appeared to put back shoulders. (WORKS)
KNEELDAMAGE - FAILED
KNEELDEATH - FAILED
KNEELDOWN - FAILED
KNEELFIDGET - FAILED
KNEELIDLE - FAILED
KNEELTALK - FAILED
KNEELUP - FAILED
LISTEN - WORKS
LISTEN_INJURED - WORKS
MEDITATE - WORKS
NOD_NO - WORKS
NOD_YES - WORKS
PLAYDRUM - WORKS
PLAYFLUTE - WORKS
PLAYGUITAR - WORKS
POINT - WORKS
READ - WORKS
SALUTE - WORKS
SCRATCH_HEAD - FAILED (INITIAL SOMETIMES)
SEARCH - FAILED
SHRUG - WORKS
SIGH - FAILED
SIT_DOWN - FAILED (SOMETIMES WORKED)
SIT_DRINK - WORKS
SIT_EAT - WORKS
SIT_FIDGET - FAILED
SIT_IDLE - FAILED
SIT_READ - WORKS
SIT_TALK - WORKS (Looks good for seated talkers.)
SLEIGHT - WORKS
STEALTH_IDLE - FAILED
TALK_CHEER - WORKS
TALK_FORCE - WORKS
TALK_FORCE02 - WORKS
TALK_INJURED - WORKS
TALK_LAUGH - WORKS
TALK_NERVOUS - FAILED
TALK_NORMAL - FAILED (Nothing to show anyway?)
TALK_PLEAD - WORKS
TALK_SAD - WORKS
TALK_SHOUT - WORKS
TAUNT - WORKS
TIRED - WORKS
TOUCH_HEART - WORKS
UNEQUIP_WEAPON01 - WORKS
USEITEM - FAILED
VICTORY - WORKS
WAVE - WORKS
WAVE_SHORT - WORKS
WILDSHAPE - WORKS
WORSHIP - WORKS
YAWN - WORKS

Monday, 9 November 2020

Episode 35: Back To Althéa! (Predestinated Days)

After my few months hiatus to allow me the time to deal with moving home and settling in, I can now report that I have now managed to pick up the NWN2 toolset for the first time in months to allow me to return to building module two of the Althéa Campaign! I must confess that finding my feet again was difficult - not so much on how to work with the toolset, but how to get back into the story. Read on to hear of my return to the build ... 

Where To Begin?

The hardest part for me to do, after simply loading the campaign, was to remind myself exactly where I could jump back in. As I have stated in the past, returning to a build after leaving it for some time is difficult, and after a life-changing event like I experienced, this has been even more difficult. So, without a doubt, this first session back has been slow and involved more to do with reminding myself of the various plot lines as much as anything else.

However, here are some tips I can offer other builders that may be helpful, as they helped me: If you have kept track of plot lines via the journal, then open that and start to read over those quests and plot lines that will help to give the overall feel for the various plots and design. Secondly, hopefully you will have some paper notes to refer to as well (like I have) and browsing over those at the same time will start to help refamiliarise you with the module again.

A final tip that I found very useful is to load up one of the latest test saves and jump straight into simply playing the game from where you were last working. After a few conversations or running around the latest area, you start to notice aspects of the game that need some work, and before you know it, you are tinkering with the first minor aspects of the module, which gradually unravel and lead you into the code and conversations that need addressing.

What Did I End Up Working On?

Let me confess that upon initial return I did not follow my own tips above and thought that just jumping into a smaller area to start again would suffice. Simply put, this did not work! I found myself at a loose end not knowing at what stage the player was supposed to be, and how the area fitted into the overall story arc. However, after I applied those steps above, I found myself wandering back to an area of the mega-dungeon I had started work on a few months back.

Yet, I did not jump into area design (as I first thought I would do), but went to finish off a script I traced I had been working on, and to fixing other sections of code that I discovered had some conflicting tokens. By the time I started addressing this area of the module, I began to find my pace again, and although still stilted initially, it became easier as I slowly started to become familiar with the various aspects of the system I had designed for the mega-dungeon.

Small Steps

It's the first small steps I have taken in a while, but I hope as the days go on, and my wife and I become more settled in our new home, that I may be able to achieve a better pace, where I can start to finish off various areas and move ever closer to making the second module release a possibility. Even in the small sections I did manage, I was reminded how much I am looking forward to this module's release. I hope it will be better than my first, simply because my skills are better than when I first started. Furthermore, I am excited about some of the new mechanics I have set out for it.

Anyway, the toolset has now been re-opened ... I have started to find my way around the module again ... and I hope that all being well, more progress will now begin to take place. And for those that like a screenshot, here is one from the area and an object I was working on today ...

A Strange Rotating Black Crystal!

Tuesday, 14 July 2020

Episode 34: Overcoming Building Delays

UPDATE: I am having to take a hiatus for a few months due to real life issues. Hopefully, I will be able to update again around November time.

Things have been a little slower on the module building for me of late, simply because of real life demands. I have still been making gradual progress, but nowhere near as much as I would have liked. The brevity of this report will reflect this ...

Juggling The Story

One of the most frustrating time dumps (for me at least), is when I have had to take a break from module designing and then come back to it, only to have to go over my notes and code to catch up with where I last left it. It takes me time to work out what stage I had written some of the conversations with respect to the overall plot.

This happened on my return to the module this time around and I had to refamiliarise myself with the systems I was working on and how they interacted with the story. In module two, the player is going to be introduced to some new mechanics that tie heavily into the gameplay. Therefore, to make it work well, the systems and conversations all have to work together to make one practical whole. Thankfully, I have finished these main mechanics, and now it is the case of integrating them into the areas in which they are involved and finish some conversations that help to inform the player through NPC interaction. Believe me when I say, this sounds much easier than it is to implement, simply due to trying to accommodate potential player actions and choices.

One Area At A Time

To help me overcome the issues I am facing above, I decided to approach my building style a bit differently than previous, in the hope that it will help me when returning to building after any future small breaks. To this end, I decided that I am going to try to focus on one area at a time. That may be how people do things already, but for me it is a change, because previously, I used to follow the main plot through various areas until completed, and then finish off accompanying side quests that had come out of the main quest. The problem this time around is that the side quests are much more involved and integrated, and so, at the moment, I find myself following about three paths. It is quite fun to build this way, as it offers diversity for me. However, switching between them is when I have to add extra time to recall what stage I was at for that story line.

How dealing with one area at a time is going to work out (or not) is still open to question. After all, plot stages being addressed in one area are subject to plot stages set in other areas. I intend to add placeholders for these journal entries now, instead of working my design with them as I go, so it will be interesting to see if this works out. The advantage of working an area at a time (especially when it comes to a tighter story line), is that I can focus on all the details for each area as I work with it, as opposed to come back to half finished areas and try to consider elements for it that complement its design so far. Basically, the style and flow of module two requires me to have to reconsider how I can approach its design to make it easier on myself, and avoid wasting time going over my own notes.

Other News

Soul Shaker is undergoing one final play through by a couple of testers. Once one of them has completed their run, and if there are no further issues, I will upload the revamped Soul Shaker v2.00. I have not yet had to make any more fixes for it in its latest testing, and so I think it is probably stable now, but I will wait until the final play. This is why I am back to working on module two of The Scroll - where I did happen to notice a couple of minor issues as I worked on it. These issues were so minor, however, that the latest release (v1.35) was considered an optional update. It addressed lighting for some conversations, player name feedback and some chat text. All very minor fixes, but hopefully the last before I upload for module two. Time will tell.

The screenshot this week, is just another shot for the latest written NPC conversation, which again demonstrates the new PC background options that are available in some conversations ...


The Heroes Enter A Room Uninvited!

Saturday, 27 June 2020

Episode 33: A Confession and A Promotion!

Confession: I have not done any update on The Scroll (module 2) for two weeks now. I gave my wife time to finish play-testing the latest version (v1.33E) of module one (which uses the same core code as module two), so that I know I am in a stable position to continue moving forward. She has now finished playing the module for a tenth time with yet another mixture of PC types, and finally I can say, the first module is released as fully tested and complete. Ten times! you may exclaim, but I hope that also helps demonstrate some of the flexibility the module has as she still had one or two differences from her previous times playing. So, maybe it's time for a new group of adventurers to consider stepping in to help save the village of New Edgeton from their plight ... Is it you? If so, download The Scroll (module 1) now, safe in the knowledge that this version should be the final. In the meanwhile, what have I been doing instead .... ?

Promoting: The NWN Scripting Tutorial

I decided to spend some time trying to put together a basic NWN scripting tutorial for beginners. A number of people visit the forums asking for help with scripting (as to be expected), and I often hear the same questions asked. When I think back to when I first started writing scripts, I can empathise with those that ask the same questions as I did back then. So, with that in mind, I decided to put together a PDF that I hope helps explain some of the more basic steps required when it comes to writing scripts in NWN2 (helpful for NWN1 too).

This tutorial is now finished (at least for the time being), and is now available for download. I tried to keep it in a similar style as I did my XML tutorial, hopefully with what people may consider a more exciting layout than simple text, helping to highlight certain aspects when needed and make it easier to read. As I say in the manual, if it helps someone to achieve a result, then it has done its job.

Soul Shaker Revamp

I have also been SP play testing my newly revamped NWN1 Soul Shaker module, (with my wife doing the same now she has finished The Scroll). This has been progressing fine with me needing only to fix one or two points that got "disturbed" in the code changes. So far I have managed to complete around 75% of the module, and hope to finish it next week, with my wife finishing her play through shortly after. After this, I hope to send the files to a beta-tester, but am not expecting any further issues from their testing. Once they have completed, I will then upload Soul Shaker v2.00 for general release. At this time, SP will have been fully tested, but MP testing will come a bit later when I have the time and opportunity to play it that way later. However, I am not expecting any issues there either. Lastly, although I have managed to fix one or two points of code where a DM support can be used, this will probably have to remain untested, as (a) I will not be in a position to be able to test it with enough players and (b) I don't think there is much call for it nowadays. However, if the module is picked up by a group of players who do want to use it with a DM, then I will give as much support as they need and prioritise help for them.

The Scroll Module Two

Now that the first module of The Scroll is finalised, and once Soul Shaker v2.00 is released, I hope to return to module two of The Scroll. I am hoping the change of topic for the last few weeks and "fresh" start upon my return will help give me a push to move forward in some of the areas that had been holding me back. In particular, I have one or two areas that I need to finish furnishing, and some important conversations to write. In total, there are about four to five plot paths that need bringing together, and I want to be able to give it the attention it needs to do correctly. My concentration suffers at the best of times, and so I need to give it my fullest attention, which I hope to be able to do so knowing everything else is working as it should be. That's the plan anyway.

Can You help The Village of New Edgeton?







Friday, 5 June 2020

Episode 32: Shaken To The Core Files!

Today's blog is a bit different this week, as my attention has been taken by a revamp project regarding my NWN module, Soul Shaker. This came about for two reasons: 1) A player showed some interest in the Soul Shaker module and 2) I wanted to give the code in The Scroll a break from any changes I am making as I write module two. However, all this still helps towards the second module for The Scroll, as I hope to explain ...

Soul Shaker Revamped

Anyone familiar with my projects will know that I have also released a NWN module called Soul Shaker, which received some acclaim back in its day for its innovative ideas. (Podcast.) However, I have now come to believe that there were some coding differences I implemented at the time, which hampered its accessibility and ease of play for players. The current revamp addresses these issues. The gameplay itself, which could raise another argument about its accessibility, is not being changed. The gameplay differences are deliberate plot and mechanic ideas that were implemented to reflect a gaming style similar to System Shock 2 (to which the module pays homage), but within a D&D mythos.

Hak Patch v Databases

Way back when I first started to write Soul Shaker, there was no reliable system in place to patch a custom module so that a player who had already started the module could fix their game if a problem occurred without having to restart the module. Sometimes one could make use of the override folder, but this could become awkward and could not be relied upon. So, at the time, as not having to force my players to start again was a priority for me (as my own group of players would not welcome such), I ended up using databases to track data, which could then be used to replace data and return a player back to the correct point in the game should the module ever need to be updated and replaced. Indeed, the system worked well, and is the only means I know of to date, which would still (to this day), allow a builder to release a module where a player could replace an entire module (not just scripts) and not have to restart their game.

When I first wrote, my coding skills were not as good as they are today, and there were one or two cumbersome operations required of a player to ensure the game updated correctly. At the time, they seemed fine to me, but latest experiences with player feedback have shown me that what may appear straightforward to one person may not be for the next. Therefore, recognising these issues from the past, I decided to look at making the whole process more streamlined for the player by revamping the module and making the whole process more straightforward and intuitive.

As I started this latest revamp, however, it occurred to me that the module components (area designs and objects within them) were now pretty much as stable as they could ever be. Therefore, module updates were not really an issue any more, and that the only real points that needed consideration were potential buggy scripts or dialogues. For these types of issues, I could address them using my own devised "Hak Patch" system, which I had figured out how to implement towards the end of writing Soul Shaker, around early 2007. Indeed, if I had discovered this idea earlier, then I may never have relied so heavily on databases, or even used them at all. However, by the time I discovered the idea, the core database files were integral to the module design and not so easily removed. Rather than do this, I released it and the rest is history, as they say.

Fast forward to today, and after a new interest from players, and my own improved knowledge of scripting, I cannot bring myself to leave the module in its current state. Yes, it works, but the code is still weighed down with inefficient scripting and (now) pointless reliance on databases that require extra unwarranted attention of the player. Therefore, with renewed skills, I decided to remove all the database storage code (that relied upon extra implementation of the player) and, instead, rely solely on the "Hak Patch" system for any future updates that may be required for this re-release of the classic.

Soul Shaker (v2.00)

So what do these changes do for the player? Basically, the revamped version of Soul Shaker will now load and save like any other NWN module. Should the module require any patching (due to a bug), it will be handled by a one hak file download, which replaces the current one being used. The player would then simply reload their current game and continue to play from where they left off with any previous problems resolved. i.e. The Hak Patch system works in a similar fashion as changing the entire campaign folder in The Scroll. (That is how The Scroll is patched.)

The new version will no longer have any "unintuitive" reloading for players, and there will no longer be any databases to deal with at all. Not one! Furthermore, I have now amalgamated all supporting third party haks (of which there were about 13) into one larger hak, making it easier to install in the first place.

All these changes also mean I have to rewrite the Soul Shaker gaming manual that explains how to install or save games as these no longer apply. As an aside, this has been complicated by the fact that I cannot find the original source file for the manual, and so am having to make changes using what I can salvage from the release manual. It is coming along slowly though.

As I have made gradual progress, I have also discovered remnants of older code from a previous system I was using with my own group of players that is simply not used, and requires removing. There is also poor usage of some official functions and a lack of custom functions, which I am now addressing as part of the revamp. I am also trying to add comments to every file that I find to help with any future patching or queries. Currently, as I look at one script, I find it points towards a dozen others, each in turn requiring attention to check the code. I often find inexperienced coding, which requires a rewrite, which in turn requires testing of its own. All this means that it is taking me some time, but I do aim to release it as soon as possible, in the hope that the revamp may encourage new players who may be looking for something a bit different.

The Scroll

Meanwhile, this means I have been able to leave The Scroll alone as play testers test some final changes to its core files that needed to be updated after discovering one or two rare issues to do with Animal Companions, stackable items, auto-storage containers and gold. Note, some of these latest issues have come about after feedback from players who may try to use "console" commands (or "cheats") to aid in their gameplay. I discovered using such can break some aspects of play. Unfortunately, adding code to help circumvent these issues in the event of players who use them without recognising the dangers added one or two teething problems in the new code. These have been the reason for the latest flurry of updates. These and also the discovery that local objects cannot always be relied upon when stored on other objects, especially when recalled at a later time. Such stored objects can become "invalid" due to the way they are tracked by the engine, and so code reliant upon such can break if the objects are no longer valid.

Yet all this is beneficial and to the improvement of the second module of The Scroll. i.e. Problems discovered now will not be present in module two. And as I have currently stopped adding new material for module two (as I revamp Soul shaker), the latest problems I am fixing with The Scroll will now be the final updates required. The v1.32E should be the last version I need to fix anything with for module one.

Soul Shaker: How It All Began!






Saturday, 16 May 2020

Episode 31: The Plot Thickens!

I continue to write more material for module two as time and health permits, and am still applying the odd small fix to module one as I receive feedback from a couple of players currently playing it. For the record, I have just uploaded v1.27E (2nd Edition), which updates my new Animal Companion system to ensure the Animal Companions of companions are also handled by the new system as well as any belonging to a Main PC. I have also made a couple of minor GUI changes. Read on ...

Companions' Animal Companions

This was a quick update to the campaign to take into account a couple of things: (1) If the player had companions that had Animal Companions and (2) If the player had the behaviour setup to allow their companions to summon them automatically. It's a minor change, as previously, the default code was used for when companions did this (automatically), which meant nothing had altered. However, as a player may have more than one PC that could have animal companions, this update now makes sure each named Animal Companion is recorded with its associated master rather than just assume the player only changed the names of their own animal companions. It's an important update for those that have more than one PC that can summon Animal Companions, and like to rename them all for all.

Campaign GUI Updates

After some player feedback, I also updated two GUIs:

LOOT CONTAINER GUI: Previously, left clicking on an item within a loot pile (other than gold) would bring up the current PCs inventory and display the clicked item's examined information in the inventory GUI for the player to read about. However, this could become annoying if the player was trying to pick up individual items from a loot pile, which would force open the inventory even if they had no intention of reading the examine info for the item. So now, the inventory only opens and gives an items examine information if the player right-clicks on the loot item text within the container. If the player decided to right-click on the loot item image icon instead, they will now get both the inventory description and a second GUI offering to transfer the selected loot item to a different PC. This allows immediate distribution to another PC without having to go via the PC doing the looting.

SPELL SCROLL INFO GUI: Previously, subject to one of its two settings in the Althéa Main menu, this small scroll would pop-up with spell duration remaining information for the PC that had spells remaining of them, either (1) If the player possessed the PC on whom the duration spell was cast, or (2) If automatic pop-up was selected for the PC, then whenever the player possessed this PC, it would automatically pop-up if they had any durations spells information remaining on them. By request, I have now added a third state toggle that completely disables any scroll GUI, even if a duration spell is cast upon the PC being possessed. So now, the new "NEVER SHOW" toggle state will prevent any information popping up at any time.

Module Two: More Plot!

As far as module two is concerned, I have simply been writing more conversations. In particular at the moment, companion responses at certain trigger points. These are more involved than they might first sound, as I use my own system to do a number of checks before they start with respect to (a) if there is a specific PC in the party, or (b) if there is a particular PC type in the party, or (c) if we are simply using a default comment or (d) sometimes even if the PC is alone. The system ensures it gives the most intelligent response a party companion can give subject to who is in the party, whether the player has had companions join them from the module, or if they created their own party! i.e. It is particularly flexible and "intelligent" enough to cater for almost any party combination, but, as a consequence, does require more preparation in the conversation responses available.

I am also still in the section that requires me to have to comment or prepare feedback for both conversation and quest stages according to whether the player has selected background one or two at the start of the campaign. Hopefully, it won't be much longer before I can put this difference aside, as the two background choices eventually come together.

Module Two: More Books & Scrolls!

Alongside the conversations, I have been putting together more readable scrolls and books; the types where clicking on a placeable book or scroll (or sometimes activating a book or scroll item) will provide the player with an actual full view of the styled text inside a scroll or book GUI rather than the basic examine text. Without doubt, this offers some great immersion, and is something I hope to fully utilize in module two and moving forward.

Module two is where players who don't know about the main story will learn much about the background of the main plot, which my PnP (D&D pen and paper) players already know. Of course, all players will be able to view these texts, the new player for the first time, and my PnP players in a new light - and in game rather than as a hand-out as in times past.

The Heroes Locate An Important Library!

Tuesday, 5 May 2020

Episode 30: Animal Companions & Module Integrity!

I am still making gradual progress with module two, although some of the latest scripting affected module one (again) due to some of the coding I was working spilling over into general mechanics of the game as a whole. This was especially the case when my wife (who is playing module one for a ninth time and planning a tenth with other characters) noticed that the "Dinosaur Companion" feat she took for her druid/fighter failed to give her the update after levelling. Read more ...

ANIMAL COMPANION UPGRADE

Basically, my wife discovered a bug in the NWN2 game that did not allow her to use animal companion upgrade feat because she had taken it at the time she had levelled as a fighter. She had just become a 5th level druid and first level fighter, and the feat was legitimately taken. However, upon summoning her animal companion, she was attended by her normal companion and not a dinosaur as expected.

While working on the fix (to allow my wife her new dinosaur companion), she also asked if I could add an option to rename the companion. Furthermore, as I investigated the issue some more, I thought it would be a good time to also adapt the code to allow such characters who can summon animals to be able to choose the type summoned from each calling. It seemed a shame to restrict the PC to one animal type that was determined at the time of PC creation. Therefore, I added another button (alongside the new Change Name button I added) called Change Type, which allows the PC to switch their companion as long as they have the feat, it is on full hit points and they are not in combat.

New Animal Companion GUIs
MODULE INTEGRITY

I have also been privileged to have some feedback from another player. During the feedback, it came to light that the player had enabled some "cheats", which appeared to have had an adverse effect on the module. It came to light that some of these cheats had actually worked against the player due to the way my module works. Suffice to say, I recommended removing said cheats, but sadly, the damage had been done to the module and the player had to start again.

I have now added a warning to the download site, to help warn players of the dangers of applying cheats with my module. Furthermore, I have tried to help circumvent these potential pitfalls for future players in the code. Hopefully, the warning will be enough, and the integrity code will never be relied upon. However, it is now there as a potential safeguard against the player breaking their game inadvertently.

OTHER NEWS

I also recently updated module one to v1.25E after a logical flow bug was discovered in the sewer quest if a player did not speak with Grist again after finding/acquiring the sewer book. If the "expected" path had been followed, then this bug would never manifest. However, if a player should deviate by going down the sewers before speaking to Grist about the book, then it would mean the player would never receive the Sewer Access key from Jed. This has now been fixed in v1.25E. The workaround for earlier versions is just to make sure you speak with Grist after acquiring the book.

Module two is still progressing as well. I did further work on background conversation options, and continued to improve the overall efficiency of the code. I now have a number of quests in the module started, and hope to add more in the following  weeks. Here is a screenshot from one I have been working on ...

A Strange Device!

Friday, 17 April 2020

Episode 29: Blood Sucking Creatures Of The Night!

A couple of weeks back I introduced the fact that I am aiming to include vampires in module two of The Scroll ... and this is an update on that course of action. Unfortunately, I did not do as much as I hoped, due to some Windows 10 issues, but thankfully, I did manage some progression. I also managed to do some reworking of the creature drop scripts and HP Bars. To have an idea of what the player can expect, read on ...

VAMPIRE COFFINS

As most hardened adventurers will know, vampires are not easily "destroyed" ... for good. They even stand out from their undead counterparts due to their supernatural ability to avoid such final destruction. And what is the main focus of this ability to avoid such an untimely "death"? ... The vampire's coffin!

The coffin normally represents the final resting place of every mortal soul. However, in D&D, we can never take such assumptions for granted, especially when we think vampires may be around. For vampires, this normally straightforward casket is a place of sanctuary and resurrection. If an encounter with some vampire hunters goes badly for them, they can instantly turn into a gaseous form to avoid further combat and escape to their coffin. Once there, and after an hour's resting, they can quickly regenerate from their wounds and be ready to fight again!

THE ADVENTURER'S ADVANTAGE

However, like all things in D&D, what may be of benefit in one instance, may turn out to be a pitfall if an adversary (like the adventurer) knows how to use it to their advantage. For if a vampire's coffin should be destroyed before the vampire has time to flee to it, then the vampire becomes vulnerable to normal destruction, now unable to flee to its sanctuary. Furthermore, if an adventurer is able to discover a vampire's coffin with the vampire still inside, and they carry a humble wooden stake, then they can also destroy the vampire by plunging said stake into the vampire's heart even before it has time to react. Here is an in-game descriptive text for a coffin ...

In-Game Coffin Description

VAMPIRES & THEIR SPAWN

Thanks to KevL's Creature Visualizer tool, I was able to produce something other than the stock vampire model we have in the toolset. Thankfully, vampires tend to be humanoid in nature, and so I simply crated some new "vampires" from the humanoid models. At first I was concerned about not having the correct teeth for them, but then I noticed that the official vampire lord does not show their teeth either, so decided it was not a major concern. I think the player will be able to see these for who/what they are. The bottom line, I was able to make the vampires look different, be they spawn types (lesser, but still very formidable) or the full blown vampire.

The story behind the vampire connection is still in development, but I do have a major premise to work from now. I also want to update the areas lighting and sounds, which were absent from the area I have, which was kindly put together for me by Eguintir, many years ago now!

OTHER UPDATES

While working with vampires and associated code, I noticed I had currently not allowed some creatures to drop items that may be useful in crafting. This mostly affected either constructs or outsiders. Thankfully, these drops are not critical, apart from they may be useful in crafting certain items with the appropriate skills ... and my guess is these parts are more likely for higher level crafted items. Therefore, any drops, apart from any monetary value, may well have been not usable until module two anyway. That said, if I release another version of module one, then these drops will become available again, but only if the module is started afresh.

In further code updates, I changed the HP Bars for party members to green and also enabled the bar to show above the Main PC as well now. Again, it is a minor alteration, and simply a cosmetic difference that I hope will be appreciated in the next release.

Lastly, I spent some time going over some functions (especially to do with host functions) to ensure the game is ready for additional modules. This is an ongoing point, but will become less of an issue as module two grows nearer completion.

And for those who like a picture, here is a themed one for this week...

The Heroes Discover A Dark & Ominous Place

Friday, 3 April 2020

Episode 28: You Can Count On Vampires!

What a bit of a selection of things to tell you about in this blog! My efforts (for what they are) have been tested in a number of directions, as health permitted during this difficult time. There may be another word with "V" in it that we are all talking about of late, but for this blog, I am going to restrict its application for the monster, the vampire! (The other word was "Covid", but that's the first and last time I will mention it.) So, what's been happening ... read on ...

CLASSIC MONSTERS!

You may recall from a few months back that I managed to put together some scripts that will manage lycanthropy in my next module. Now, in a similar vein, I am trying to rework another horror classic: the vampire! However, none of my vampires will be "Count" like characters ... or at least, they will definitely not be like the caricatured beaten to death more times than even the hardiest of undead characters, "Dracula" if I can help it. I aim to have them simply be the monster that D&D has made them and try to escape the stereo-type portrayal if possible. But who am I kidding! I reckon the "Dracula" character is so embedded in our psyche that it will be impossible to escape some mental images of that persona.

New Visual Effects

So what's new? Well, I discovered that NWN2 did not support the gaseous form that we are familiar with when a vampire wants to avoid an untimely end. Therefore, I had to script a version of that. (See video link below for a demo.) On top of that, I was not happy with the way the vampire model relied on a spell to try to dominate its victim rather than use a gaze attack, so I updated that too.

I also applied some of my previously developed "undead" scripts to ensure level drains work alongside any Life Essences a PC may be carrying. In my modules, Life Essences can act as a barrier towards level draining, in that some undead will drain these from PCs before actual levels.

Other than that, most (if not all) other vampire aspects are covered, from needing magik weapons to hit, fast healing, blood (constitution) draining, damage and other resistances. They are quite a formidable foe, but one that can be overcome if the party of heroes go well prepared; normally with a cleric and accompanying spells.

In Development

I still have some scripting to do with respect to their coffins and stakes, but that is all going to tie in with other plot related stuff and so it will come together in time. And you can thank my wife for their inclusion, as she wanted me to write a story based upon the return of one of her favourite characters from The Scroll (module 1), and this is where it led to. I won't say who that character was, but some of you who have played module 1 already may well be able to guess. :)

GAME OPTIONS!

As most players will know, vampires have the power to dominate their victims. This led me to looking at the various effects that I would need to have the vampire employ, which in turn led to the game option function, GetScaledEffect. This function is basically called when some effects are used on a player to alter the overall effect according to the Game Difficulty settings. Unfortunately, this section of the NWN2 game appears a little buggy, and so I determined to look a little closer at this too, especially as vampires use the dominate effect.

I discovered a number of small issues, but enough differences to what I expected to make me decide it needed "fixing". It's still currently a work in progress, but I do now have a greater understanding of the various effects involved and hope to have an update to this section of the game not before too long. I may even consider releasing another update for module 1, subject to any requests for it or not. If no-one asks for it, then I may just leave it as an update if and when module 2 is released.

The Vampire Combat Video demonstrating new effects ....





Thursday, 19 March 2020

Episode 27: How Do You Like Your Game Served Sir?

Another week and another blog, but a little different this week. This week serves as the divider for me about what has been done (module 1) and what still remains (module 2 plus). To mark this event I wanted to take a step back and look at the whole gamut of what makes an RPG again. I do have news on module two and a new screenshot, but this post is as much about the RPG itself than just my module specifically. So, what am I talking about? Read on ...

The Game Is Over!

Well, actually, only module one is now "over", as I have now made a final v1.21E upload that should mark the end of all patches and upgrades to it. My wife has now played through the module about eight times via various paths and I think between us we have now found everything. Bottom line now: Unless someone reports a game-breaking bug (or I happen to discover anything), this module is complete ... finished ... done ... baked! So please, download it and enjoy it. I should point out that it is what I would call a TRUE RPG, in that there is plenty of "player agency" (see next) and decisions to be made by the player. You will need to think about what you intend to do, as there will be consequences. It is not designed for the casual player!

Medium Rare or Well Done?

Having started to concentrate more on module two again, I was reminded of all those aspects of the design that I like to include for a player. As I thought of this, I also recognised that there is quite a bit of difference between the types of modules out there. There are those like mine, which cater to the more hard-core "challenges" and "tactical" player, down to the more "linear" style and "casual" player.

As it happens, I quite enjoy most styles, but I do think how a game is presented can make a difference to ones own approach to it. For instance, if I pick up a game labelled an "RPG", I would expect such a game to allow me to develop my PCs as I wanted to, and be able to explore the game areas subject to what skills and abilities I developed as a party of adventurers. Sure, there will be some limited access to certain areas to begin with, but with a recognition that if I should increase a certain skill, I would then be able to go in a certain direction of my "choosing". However, if a game requires little "input" from me (as a player) with respect to direction or tactics, or limits access to new places by plot consideration only, then, personally, I would consider that more akin to an "adventure" game than an RPG. Note, however, they both deliver a story (the meat of the game), but in very different styles (cooking).

Player Agency

Basically, what I just described above is about a game mechanics concept referred to as "player agency". I am NOT the first to coin the phrase, but I do appreciate what is meant by it and believe builders and players (especially of NWN mods) should be more aware of its influence when considering the type of game they either like to play, or even build. The issue we have with NWN (both 1 and 2) is that in its original design and release, it is very much an RPG. However, the toolset is very flexible (even if an awkward beast at times), and unless a builder keeps player agency in mind (on behalf of the player), then we end up with modules that while may still fun to play (if you like other styles of games like "adventure" games), are not, strictly speaking, RPGs! i.e. Just because a module is built using the NWN toolset, does not automatically mean you are going to end up building (or playing) an RPG.

I hope I have not offended anybody by saying this, as that is not my agenda. As I stated above, personally, I enjoy most styles of games built with the NWN toolset, from the more "linear" style to the more "sandbox" offerings. I simply wanted to highlight that some players will be expecting higher player agency from a module advertised as an RPG, or simply just because it is as a module built using the NWN toolset.

Player Agency Examples

So let's look at some real in game examples that differentiate the gaming styles ...

1) PC DEVELOPMENT: This is one of the clearest guidelines to help determine what style of game you are building or playing. If the game does not support multiple classes and races, and/or the ability for the player to develop their skills over the course of the game, then it lacks player agency. Note: Games that alter a PC on your behalf (or severely limit your choices as a player), have less player agency than those that do not restrict such development.

2) ATTRIBUTES, FEATS & SKILLS: On the back of the first point, if the game or module does not offer many aspects of gameplay that test any skills or attributes that you are "developing" for your party as a player, then it lacks player agency. For example, even if you can develop/level a character, if there is nowhere the attribute or skill will be of much use, then it lacks player agency. If a game offers only one or two diplomacy type check in its entire course, then it does not (should not) qualify as an RPG. I would consider that "lip service" only.

3) COMBAT CHALLENGE: Connected closely to the above points, a game that does not offer any challenge in combat, and where equipment and statistics make little difference, lacks player agency. I experienced this when I played MS "Dungeon Siege". I could actually walk away from the game and know that I would win a combat irrespective of my input or lack thereof. NB: It was not a "bad" game for this, but it did disappoint some of my expectations. Once I had accepted the gameplay for what it was, I eventually finished the story anyway.

4) THE WORLD ECONOMY: Surprisingly, but perhaps not to everyone, I am quickly disheartened upon finding vendors in a game that sell every super item one could ever expect to find. It makes treasures, equipment and all related choices simply subject to how much gold I can horde. Games or modules that swamp a player with such goods has effectively robbed a player of an area of gameplay: improving their capabilities with equipment. Furthermore, just because the item is expensive and I cannot afford it as a PC, does not make it a player agency potential. Rather, it trivialises the items in a game.

5) LOCKED DOORS & CHESTS: If there are no doors or chests to find locked, which can be unlocked with a PC with the skill, then the module lacks player agency in this area too. NOTE: I enjoy discovering doors that require a certain key (and I use them in my design too), but they should be the exception when referring to locked doors rather than the norm. If every locked door requires a key, then it is an "adventure" style game and not an RPG.

Well Done Please!

The bottom line is to report that module two is being designed with the same level of player agency as The Scroll module one has. In other words, it is being designed in such a way that the player drives the game forward, rather than the game leading you along a determined path. That's not to say there isn't a definite story, which there certainly is! The difference is, the path you take will determine how the story turns out for you and what your party will be like at the end of your game. Did you build all your party, take some companions, change the way the party developed, etc? This is my preferred style of game design: A true RPG!

That said, because I am just one man, I am limited to how much material and direction I can add, and the various paths I do write in take more time to prepare than if I was writing for a more casual linear style game. The game still has to work as a cohesive whole, no matter how you (as a player) approach it ... and one of my other design concepts is to ensure the game plays as if you found the true path, irrespective of the path you end up playing. Furthermore, the path should appear clear to you, whichever path you end up deciding to try first.

Rest assured though, whatever choice you make will have to be supported by other choices you make for you and your party. If you lack a thief, how will you bypass a lock? Do you have a wizard with Knock, or maybe a fighter can bash down a door? Will you buy a new weapon or save gold by making a repair yourself because you have the skill to? Will you simply keep saving the gold to be able to afford to do some crafting, or offer it at an altar for increased benefits now? Basically, there are many choices in the World of Althéa and it requires a conscientious player to find their path through it. Are you up for the task?

For the record, I had to make another area for module two .... ;)

The Heroes Finally Make It To Boran!






Thursday, 5 March 2020

Episode 26: Are We There Yet?

I have to confess that I did not expect The Scroll (module 1) to have taken as many versions as it has to reach the state that I now hope it has reached ... DONE! I have said this so many times before that it is uncomfortable for me to say it again ... but ... v1.18E (2nd release) does appear to be the FINAL for module 1. Although, I confess that I may release a v1.19E (or jump to v1.20E) to mark its absolute final release, even if there are no changes from v1.18E (2nd release), just because I like to mark its place with a round number. For those of you more interested in module 2, and its latest news, read on ...

THE CRYSTAL MECHANICS

Between finalizing code for module 1 fixes, I have also been looking over the code I have in place for some new "crystal" mechanics in the next module. Much to do with balancing and ensuring certain abilities are available at the right time, as well as writing conversations that bring a player more background relating to such. That's all I can say for now though ... sorry ... it's too much of a spoiler to explain more, except to say that it plays a big part in one section of the module in a similar vein as the rune stones did in module 1, but more so!

MORE GENERAL BUILDING

I have been continuing to fill areas with interesting objects and events. However, the areas I am currently working with tie quite a bit to the new mechanics above, and so I am tending to switch between the two aspects as required. I have also hit a critical plot point of logic that is requiring me to wrestle with a number of alternative ideas, which has currently stalled my progress in this area of the story. The good news is I have a couple of approaches I think will work, but I need to consider the repercussions of these approaches fully before I commit to them. Once I am happy the logic works, I can start to write the story around it again. In the meanwhile, I am considering working on another area of the module to allow my subconscious to work on a solution too. Sometimes just letting it sit for a while like that can work for me. However, I have something to fall back on in a worse case scenario.

SETTING THE SCENE

It's fine when we have a dungeon (or area) and the player party is making their way to resolve their quest, but ... I just cannot escape the need to build more into an adventure (or any quest) for the player to discover before they embark on the adventure (or quest) itself. I don't want to rob the player of discovering their way (the journey) before dealing with the task (the destination) itself. It's true we can get away with less stage setting when delivering side-quests (to more of a degree), but even here I find I am wanting to flesh these out with more substance than I have previously. As a consequence, I have found the conversation sizes have increased, and surrounding storyline has broadened. It's not a bad thing in my thinking, but with respect to module delivery time, it does make it feel like taking one step forward, while taking two steps backwards. The price to pay for trying to create a particular scene I guess.

FEATURING THE ANKHEG

The bottom line is that there is not much I can add to the last few weeks of module building due to the various distractions of module 1 fixing and limited info I can divulge with module 2. So, rather than post a picture this week, I thought I might encourage readers by posting a video instead! It is part of module 2, and something I have posted elsewhere. However, this is the first time I posted it in this blog. Just to show I am working on various aspects still...




Friday, 14 February 2020

Episode 25: Nice New Gameplay!

Writing continues on module two at a better rate than previous weeks as v1.12E of The Scroll has proven to be the most stable release of the campaign to date. (UPDATE: As of 03/03/20, we are now on v1.18E) As this version has continued to be fault free in my wife's own latest play through (since updating), it has meant I have not been diverted from writing new material to sort out any further issues. With nearly 15 hours under her belt of fault free play, then unless she discovers anything else, v1.12E v1.18E may well be the final release of the campaign until module two is done. Talking of module two ... Read on ...

BACKGROUND ROLE-PLAY

So what's new? Well, it's hard to talk about anything too specific again, as much of the latest material is just a continuation of simply writing the whole thing! This includes continuing conversations, journal entries, scripts, etc. However, more specifically, I can say that I am starting to find an efficient way to include more background conversation nodes for players who do end up choosing to role-play a PC background. E.g. Bully or Lady's Man, etc.

I have even altered the script now to allow a Main PC (who are the only PCs that can have such backgrounds) to interject with their background node option, even if the player had started the conversation with a companion. Knowing the conversation node options will always be an option to the player has encouraged me to make the best use of them where possible, and it has been fun doing so.  

UPDATE: As these backgrounds are simply added feats, then (in theory) any PC could have a background, including companions. Therefore, I have reverted to the PC speaking as the PC applying their background comment, with a caveat that if no background has been set (either by the builder as a feat on the companion or as a feat applied as a background trait by the player when creating a PC), then if the Main PC has one set, then that will be offered if there is none other available.

JOURNAL NOTE SYSTEM

Another aspect of play that I have been having fun making more use of since I have it working now, is the ability to add additional notes to the player's journal. This is in addition to the normal journal quest entries, and are added alongside the notes a player can also add to the journal note section. Just like any player added note, they can be deleted by the player at any time, but are added as useful bits of information that help highlight those aspects that may be important when it comes to playing. For example, those players playing module one already may have noticed a note is added if and when a PC learns how to manage weapon repairs at a Repair Bench. This is one of the few notes that module one adds, but module two will make much better usage of this game mechanic to highlight not just game mechanic notes, but possible plot notes too.

NEW AREA MUSIC

I am also playing around with some new music files that I found, which I have managed to convert and add to areas. My test addition worked, and it currently sits as the music for an area I am currently working on. It's a minor new addition, but I hope, along with those I mention above, will be some of those differences that will benefit the next module.

THE MEGA MECHANICS

If you may recall, I have mentioned in the past that there will (also) be a mega-dungeon design in module two, which I hope will be well received. I have taken time and effort to develop a system of new mechanics that complements the overall design of the mega-dungeon to give a completely new experience to sit alongside the normal NWN2 gameplay. i.e. In much the same way players can currently experience new GUIs for puzzles and gameplay in the first module, the new GUI arrangements for module two I believe offer a whole new variety of gameplay to experience!

This week I have also been scripting aspects of this new gaming design to ensure it runs as smoothly and intuitively as possible. One thing I learned during this time is that you cannot get the gold piece value of ammo (bullets, arrows and bolts) like you can with other items. This meant I had to improvise a new way of doing so, which while quite boring to do, does mean I now have the system in place ready to work with some more code. All in all, this whole side of the gaming mechanics is gradually coming together ... right alongside the additional Readable Books I have written to complement such systems in the game and to give the player greater depth to the story. I have found the writing quite rewarding as I have brought the overall campaign story arc together.

That's all for now, as there's not much more I can say without giving spoilers ... Dare I say, I was even reluctant to use this week's screenshot in case it spoiled anything .. but I decided I was just being over cautious, so here it is ....

We Have Found A Tomb!