Choose Your Language

Saturday, 1 March 2025

Episode 94: A Bunch of Carrots!

My furry rabbit friends are not the only ones who like carrots, but players will also like these ones, especially as I am talking about the metaphorical types opposing the otherwise proverbial stick! But there's a full dish to consider this month, if you don't mind me continuing the metaphor, and all because the "stick" finally broke my patience, as well as the game. Read on to find out more about this and other news, especially with respect to the development of the second module, Predestinated Days.

The Stick Is Dead, Long Live The carrots!

In this instance, I am talking about the NWN2 database system as the dead "stick". After many years of trying to fix an area transition crash after a database entry is written for the first time, I finally took the plunge to remove the NWN2 database system from my campaign completely. As the years have passed, I have also learned and recognised that at least half of what I use the database for can be handled without it. For the remainder, however, I decided I needed to redesign the way some of the systems worked.

But, why was the database there in the first place? Put simply, it was primarily setup to maintain game balance, by preventing reloads where puzzle solutions could be learned and exploited. Well, it was for that and a means to ensure continuity between modules when the time came. However, there is a fundamental problem when using the NWN2 database system, and, as I describe above, it ends up with the game crashing to desktop during (or just after) a transition shortly after a new database entry has been written for the first time. Only a single entry will cause this problem. 

Over the years I tried many ways to circumvent the problem, from starting from a different module, to trying to setup the database from a game exit, but I have been unable to find a solution to date. In the end, all I could do was warn a player that their game would likely crash if they had just started a new PC within the campaign. This issue, effectively forcing a player to reload almost straight-away, did not sit well with me since day one.

In the last week, I finally made the decision to remove all NWN2 database code from my campaign... and the game no longer crashes at any transition! The exercise was cathartic... and the end result is that I have now also added a collection of "carrots" to the campaign to help accommodate its removal!

Carrots To Whet The Appetite!

After reworking at least half the database reliant objects to be either setup at the start of the game, or random with each reload (subject to their requirement), I was eventually left with only a handful of other objects that still required some kind of resolution to help maintain game balance and to help avoid meta-gaming(*), especially those objects surrounding the use of Life Essences and respecting Boon/Bane item acquisition. To this end, I designed some systems that I hope will encourage the player to consider continuing along the path they had reached respecting the knowledge that their PCs would have had at the time rather than use a reload exploit that had the potential to unbalance the game. The "carrots" to encourage this are the Life Essence Residue and the Life Experience systems.

(*) Meta-Gaming: Making use of knowledge that a player has learned out of character, and which their party would not know at the time.

CARROT #1: Life Essence Residue

This system is designed to hopefully encourage players to spend Life Essences without any sense of "unnecessary loss" and to be content when using them. To this end, in cases where such a system is required, using a Life Essence will now result in the collection of a new item called Life Essence Residue.

Once the PC has acquired five of these residue items, they will magikally amalgamate into one of two possible items: A Sleeper's Stone, or, on a rare occasion, a set of Enchanter Stones. See the image below for more details about these two new magik items:

UPDATE: The image below shows a pre-release GUI. The information has been updated to include other benefits for using a Sleeper's Stone now.

The New Life Essence Residue System

Having a Sleeper's Stone may actually be a life saver if a party does not have a cleric who can Create Food and Water when adventuring in an area where food may be hard to come by. Alternatively, adding a permanent magikal benefit to a weapon is also something that would be worth working towards.

CARROT #2: Life Experience

This is more of a generic "catch all" benefit, as it now rewards players for playing along with a result that may not have immediately gone in their favour. The idea, again, is to encourage a player to stick with a result of a choice they make in the game, by rewarding any brave decision they may make. Indeed, I would go so far to say that the new benefit now on offer could even send players actively seeking it, such is the way it now plays.

Basically, I am talking about receiving a significant XP reward for playing along with a PC Life Changing event of one kind or another, subject to what the PC may have to endure. Indeed, the best result for the player's PC would probably be to play along to win the XP reward, in the hope that any downside to the event may eventually be recovered from. The idea is to reinforce that any decision the player can make is a legitimate one for their game, and to trust that the future will work out one way or another for them. This is particularly the point in case if a PC acquires an item that is baneful (a curse) to them. Take a look at the new information GUI that is presented now on a first encounter of such an item:

UPDATE: The image below shows a pre-release GUI. The information has been updated to include other benefits for using either of these methods now. 

An Example of The New Life Experience System

I would like to point out that this is the general XP principle in practice for these items, but similar XP awards will be on offer for other situations that may, at first, appear to be nothing but trouble for the PC. Therefore, each time a player comes up against a difficult situation, they will now be rewarded for their PC's Life Experience that led them to that point.

As the player plays The Scroll Campaign, these systems and others will present themselves, which I hope will encourage the player to continue, even if it feels like their PC tripped over at one point. As the XP tag line goes, "There's No Gain, Without Pain!"

As I have worked on these system updates, I have also been altering the end of module code that supports module to module transfer of the henchman, for which I thought I was going to need the database. It turns out that my previous work with henchmen and the MP area transitions helped me to realise that using global variables was sufficient for their transfers, and so the database was not required here. All in all, the latest campaign code changes have gone a long way to improving the overall efficiency of the code, and I do feel much better about the game no longer crashing a the start.

Predestinated Days

The last two weeks database changes also go a long way to improving the campaign for the second module, Predestinated days, too. However, in the two weeks before last, I was able to make some solid progress on  Bloodstone College, one of the main scenarios that I wanted to finish before opening the second stage of the second module to alpha testers.

I am excited to say that the area designs for the scenario are now 80% complete, having spent a lot of the first couple of weeks recreating the areas. I am hoping the whole scenario to be ready by the end of this month, in time for the next blog post. If I do manage to do that, it will be another big landmark reached in the development of the module, leaving only one or two smaller areas to complete the second stage. However, I may release the second stage to testers prior finishing these last areas, just so testing can begin as soon as possible.

While designing the areas, I also managed to overcome a logical flow issue in the design of the PnP (pen and paper) module, which I had not considered back in the day I originally wrote it. It caught me off-guard when I spotted it, and it took me some time to work out a plausible plot path for the quest. Suffice to say, it involved having to design another item and rearrange some of the original area design, but like all things like this, I actually prefer the new design.

Post Database Patch System

It has been almost a year since the latest patching system came into use (30th March 2024), and it seems an appropriate time to announce the latest v1.28 release (with the database code removed), and to now also "remove" the release notes from the post, first added since the release in March last year. Therefore, when I upload v1.28 later today (UPDATE: Delayed until 3rd March), I will be removing all the previous fixes and updates information from the post, allowing them to start afresh from this version, which, like I always say, I hope will be the last "biggish" update required until I release Predestinated Days.

Testing of the campaign will continue via Predestinated Days alpha testers, which means anything found could still have an impact on the first module, and if it is significant, I will, of course, provide another update. Furthermore, I will continue to listen to any requests players may have.

Before I sign off from this larger than normal post, I wanted to show you the latest overland map area design, showing off the time travelled system displayed at the top of the area design. It has undergone various changes over the years, as I have had need. The latest and final (alpha tested) design is the one that should come with the release. Just for the information, this had a minor update in the last month too, when I realised the time was not starting correctly, It turned out to be a memory leak on the overland map, which I always like to catch.

I suppose I can't let this month pass without also adding that it would be rather exciting if the rumours of an Enhanced version of NWN2 on Steam turn out to be true. I just hope any changes don't make for too much (if any) requirements to rework our own modules to any great amount. We'll just have to wait and see, I suppose.

The Overland Map For Predestinated Days!

 

Saturday, 1 February 2025

Episode 93: Going Back In Time!

Let me quickly start by saying this latest blog is not about any "time travel" quest or mod, but you will read the reason for the title shortly. That said, I cannot deny that time travel is something that has affected my module from a story perspective, and so it does fit with that too... I am just not going to speak of that to avoid any potential spoilers. So, read on to find out how the title fits this months blog...

Windows 24H2 Go Back To 23H2

Let's get this point out of the way, immediately. This will come as no surprise to regular followers of my work that a Windows 11 bug is the first reason for the reference to "going back in time". In brief, when I updated to the latest version of Windows 11 (24H2) a few weeks back, it broke the facility to Alt-tab between the NWN2 toolset and the NWN2 game. This may appear a minor thing on the surface of it, but I use it a lot when testing the game and latest files, and updating conversations and scripts "live".

The problem is that the moment one used Alt-tab to switch from the game back to the toolset, the computer would grind to a halt, making it extremely difficulty to close either program to unlock access to the computer again. Furthermore, while I was able to change some Windows settings to help mitigate the issue, the difference would be short-lived (too short) to allow any proper productivity. Thankfully, reverting to 23H2 (which I am currently on) resolved the problem and I was able to continue working without any further "crashes". Frustratingly, however, I lost about three days work trying to resolve the problem to no success. On a positive note, this Alt-tab issue has also been raised by others with Microsoft and not just myself, and so, hopefully, Microsoft are now addressing the problem. I can also add that since updating to Microsoft's latest files, the notification to download version 24H2 has ceased to show, which I take to mean that Microsoft have now owned the problem and are currently working on it.

UPDATE: I have started to receive the update to 24H2 notification again. I am ignoring it until I can confirm 24H2 has not compromised the Alt-tab functionality.

From PnP To NWN2

The more exciting reference to this month's title, however, is that I am now back working on my old Pen and Paper (PnP) module, "Bloodstone College". Originally a scenario from my PnP days of the late 1990's, this was one of my favourite scenarios I had written and played with my group of players. Looking back at the original work now, however, I can see a number of aspects that I think were not required or did not play as I would like today... and so I am enjoying the NWN2 conversion immensely.

I had started area work for this scenario back in July 2024, but put it on hold by November 2024, as I realised I had to focus on other quests associated with the college itself. Now I have completed those other related aspects, I can now return to finishing this quest with all peripheral connections in place to refer to as I continue towards its completion. What this means is that I have completed the conversations and events related to other areas that now have freed me to continue with this larger project.

Furthermore, I have now also completed adding a number of items and their involvement in the Bloodstone College scenario, meaning the actual areas are starting to fill out. Another "complex" room design has also been finished, slightly aggravated by a dodgy walk mesh every time I went to bake it. I finally managed to resolve that issue, and now the scenario event that takes place there, does so as it should, and plays out well. Basically, this piece of "back in time" work is now accelerating towards completion, and once completed, will allow me to (potentially), allow alpha testers to have a first run through this second stage of module two. The stage would still require at least 3-4 areas (and associated quest events) to be completed for a full finish of stage two, but I can work on them as alpha testers play through what will already be completed. It will be another exciting step forward.

Campaign Update

The latest release, v1.26, has just been released today. I am excited to say that it has had the least number of "important" fixes since the start of the new patching system back in March last year. I like to think that this is a good sign that the whole campaign code is starting to stabilise. The biggest issue this time around was the auto-packing of some items that should go into certain containers. Some items of a large loot would not pack away, especially in a MP game. The main cause was due to a timing issue, but a second was due to the containers not being updated often enough. Suffice to say, I believe I have fixed this issue now. Apart from that, most other fixes or updates were cosmetic or information only. Again, this is another important milestone in the history of the campaign, for the fewer issues I have to address, the more time I have to work on newer material.

Moving Into The Future

Having looked at aspects of "past", I will now consider the future". No-one likes to second guess what will come to pass, but my plan is to complete the Bloodstone College scenario in the coming month, and, if done to a reasonable completion point, I will start alpha testing on the second stage of the module. As I say above though, at least 3-4 areas remain to be finished before the full design of stage two is complete. Once I have finished Bloodstone College, I will begin finishing these two last scenarios, which, thankfully, are probably less involved than the current one.

Let me leave you with a few screenshots this month. The first two have been sent to me by Dustin_Offal, combating a Sentinel foe from Stage One (using the Turn-Based combat system), while the last one is a screenshot from Stage Two of the module that I am currently working on.

The Heroes Take On A Sentinel!

Tactical Combat Is Deployed!

The Heroes Find Themselves In Another Pickle!

Wednesday, 1 January 2025

Episode 92: Watching The Numbers!

Another year begins and I am still working on my second module. I cannot believe how fast time appears to pass as I endeavour to reach the end of building the second module. So, for this New Year post, I thought I would take a look at what I have managed to achieve last year and what I still have to do.

Multiplayer Mayhem

However, let me start by reporting with December events, where my time was mostly taken up looking more closely at handling a MP (multiplayer) game within the campaign. As regular readers will know, the first module was recently tested in MP again, so that an end-game party could be taken through to the second module to be tested there too. During the first module test, a few issues came to light that were recently updated. However, since moving the MP party to the second module, a fair number of other issues came to light, especially with respect to the player party size again.

Last month I reported how a party size of ten or more could prevent a MP game from loading. Well, it turned out that the problem was more pervasive than I realised, and that the party size issue also affected in game play with certain area designs. In some circumstances, a few areas would also fail to work properly if the party consisted of only four or five members. Objects would fail to become “useable”, even if the code thought they were, and monster drops would fail to manifest. However, when the party size was lowered, by dismissing associates, these problems disappeared: objects suddenly became useable and monster drops would appear around the area.

In brief, it boiled down to the fact that a MP game requires better area designs and management of resources to ensure the game plays as expected. So, whereas a SP (single player) game party size can run into the twenties plus with no adverse effects, a MP game needs to have both its party size to be nine or less and ensure some areas (*) are designed without other creatures already within it. To this end, I changed some of the scripts to do the following for a MP game only:

  1. Out of Combat: Ensure the maximum party size is nine or less. (Excess prevented.)
  2. During Combat: Summons is unlimited, but AI is disabled to ensure player controlled.
  3. After Combat: All associates (apart from henchmen) are un-summoned.
  4. Ensure areas work as expected for a party size of nine or less. (*)
  5. Removed some systems from a MP game. (E.g. spell scroll remaining times.)

(*) With testing to date, it appears that interior areas (using tile sets) are the most significantly affected. Exterior areas appear to handle larger sized parties more readily, but I have not fully tested these. Furthermore, I have found that some custom tile sets require more careful handling than the OC (official campaign) versions; requiring all creatures to be removed from an area design to ensure a party size of nine can be had without causing any further issues.

Alpha Testing (MP)

Besides the party size limit issue mentioned above, there were a few other MP issues that came to light, which have also now been addressed (and may have been present in the first module too):-

  1. The Death GUI potentially not showing on a party wipe-out.
  2. Gold not sharing on a gold reward. (All gold for the reward was lost!)
  3. A party potentially becoming stuck in Fast Travel mode.
  4. Combat control broke if host and party leader differed.
  5. Broken Map Pins if Main PC not used at a transition.

I also spent some time addressing MP efficiency after encountering the above issues, and made some improvements there too. In particular, I disabled the Spell Scroll timings for a MP game, which helped free some HB resources to help a MP environment.

Campaign Update

Heart beat scripts have been improved as a whole for the campaign, which means both SP and MP benefits. I also ensured killing an evil creature did not have such a large impact on the “lawful” axis with respect to alignment changes as a balance to the game play. As a final point, I also updated the code that handled inventory items for a PC raised from the dead (in hard-core death mode), so that it was less likely this PC would have their inventory appear “missing items”, even when they were not. The latest v1.23 is being “recommended” for SP game and “strongly recommended” (potentially essential) for a MP game.

The Last Year At A Glance

You can access the full blog entry of these monthly highlights from the links to the left of this webpage.

  • JANUARY: Hiatus.
  • FEBRUARY: Continued module development, including adding a potential new henchman.
  • MARCH: (Enhanced version ended.) New patching setup. Risk of Database crash reduced. (v1)
  • APRIL: Full Alpha testing of Stage One begins. Continued module development. (v2-3)
  • MAY: First Alpha feedback. AI and conversation updates. (v4-5)
  • JUNE: More Alpha testing. Campaign balancing and fixing based on feedback. (v6-9)
  • JULY: Continued module development. (Conversion of a PnP scenario begins.) (v10)
  • AUGUST: Continued module development (PnP module). Further Alpha testing. (v11-12)
  • SEPTEMBER: Continued module development (PnP module). Further Alpha testing. (v13-17)
  • OCTOBER: Continued module development (PnP module). Further Alpha testing. (v18-20)
  • NOVEMBER: PnP conversion on hold to allow other development. Added two companions. (v21)
  • DECEMBER: MP Alpha testing began. Alignment fixes. Continued module development. (v22)

The Remaining For Stage Two

So while the last year was as much about Stage One and delivering fixes and updates surrounding Alpha feedback, I had still been working on Stage Two. Stage One is pretty much “closed” as far as needing any more work done, but the following list remains for Stage Two, and for the New Year:-

  1. Completion of the PnP scenario (quest), called “Bloodstone College”. (Two to three areas.)
  2. Completion of Southstrong surrounding areas involving 2-3 areas.
  3. Completion of quests in areas above, involving 3-4 quests.
  4. Completion of 1-2 unique areas with their own quests. (One area may be held to Stage Three.)

Or, to put it another way, this is what has now been done over the last year:-

  1. Added and completed three quests. (With some minor conversations to complete.)
  2. Added and completed a new area. (Required careful/complicated MP handling.)
  3. Work completed on six areas, bar a few quest objects to finish.
  4. Many fixes, updates and improvements, to both the SP and Mp game.

Moving Forward

With the MP issue now behind me, I find myself able to concentrate on Stage Two development more easily once again. My aim is to first finish off the few areas that have some final quest objects to complete. Next, return to the PnP conversion and finish off the “Bloodstone College” scenario. Thirdly, finish the unique area and their associated quests. When done, Stage Two will be ready for Alpha testing, and I can begin finishing the third and final stage for this second module.

That’s the plan anyway.

Uninvited Guests!

Monday, 2 December 2024

Episode 91: Birds of a Feather...

The full saying from my title is "Birds of a feather, stick together", and I am reasonably confident that most people are aware of what it is trying to say. Just in case there is any discrepancy, however, I mean it in the sense that people of a similar nature are more likely to stay together to complete a task than those who have conflicting natures... so I guess you may have guessed where this is heading? I bring up the topic of alignment shifts this month, as I had to rework an earlier amendment for my campaign after I realised some PC good/evil axis settings were going awry after a prolonged period of game testing. Read on for more...

Alignment Shifts

Readers (and/or players) may know that I like to use alignment shifts where appropriate in a game, as I believe they add an extra dimension to the story, as well as having a direct impact on some of the campaign systems. Importantly, the good/evil alignment axis and the choice of the Channeler or Harvester role, which the player selects for their party near to the start of the game, are directly connected. Basically, if a player wants to play a good alignment PC, then their whole party must play as Channelers, but if the player selects to play as a Harvester, then the whole party alignment shifts into the evil spectrum. The point being, these two variations will not "stick together" if their roles differ. It has to be all "birds of the same feather" (same good/evil alignment), or a parting of ways.

A while ago, I did update this area of the game to consider the druid class when it was brought to my attention by Dustin_Offal. Subsequent play-testing has shown, however, that this update was not robust enough to manage the task properly over time. For while it aided the druid from not quickly being shunted from a neutral standing, it meant that it was now possible for a party to start splitting alignments when other PC alignments were close to being neutral themselves. The problem I still had to overcome was that no PC can ever be neutral within the good/evil axis. They can only ever be "neutral" within the chaotic/lawful axis.

To cut a long story short, I had to redo the alignment shifting system for the good-evil axis, while still considering neutral aligned PC classes. In the end, I was able to build a system that now keeps all PCs either good (Channeler) or evil (Harvester), while allowing a druid class to maintain a level of neutrality by shifting their law/chaos appropriately, but only if it was not already extremely compromised. For example, if a Neutral Good druid played along with a Chaotic Evil act, they may shift to Chaotic Evil if they were already close to turning from neutral to chaotic in the first place. If they were closer to lawful, then the same chaotic evil shift is not likely to affect their overall neutral standing.

The bottom line is that the good/evil axis can no longer be broken by PCs that play close to the neutral axis with respects to good and evil. A good or evil act will now eventually switch a party from being Channelers (good) or harvesters (evil), subject to their latest act, and if in opposition to their usual role. This does have greater repercussions for clerics, of course, whose alignment along the good/evil axis matters. But for druids (and other classes who wish to maintain a neutral status of some kind), as long as they maintain their chaotic/lawful axis within the neutral spectrum, then they keep their class status. As a further aid for druids to help maintain their "neutrality", they can now make sacrifices at neutral shrines to help bring their chaotic/lawful back to neutral.

Alpha Testing (MP)

My wife recently finished her "single player" multi-player testing of the first module, and has already continued with her MP alpha testing party into the second module. While not ideal (as to fully test MP, it would be better to have another player logged in and playing at the same time), nevertheless, it did test the overall MP platform with respect to some scripts and their timing. For I have witnessed that some scripts require a very slight extra delay in their execution to ensure MP games work as expected. To this end, after finishing the first module play-through, my wife helped highlight four MP issues:-

  • TB GUI to opens/close for all players if manually opened. (1)
  • Prevent an on load crash if having more than ten PCs and Associates. (2)
  • Extra delay required for large loots and extra script firing. (3)
  • Reinstated fix for Main PC losing focus. (SP game already uses.) (4)

1) Could cause issues if a player tried opening (or closing) the TB GUI when it was already in use.

2) It appears that a MP game restricts the total number of PCs/Associates that can be loaded into a MP environment to ten. As it is possible to have six PCs and two henchmen, even prior any other associate types, I have now ensured all such other associate types (apart from henchmen) are removed when a player loads a game to prevent the crash.

3) An instance where an extra slight delay is required to ensure a function fires correctly for a MP game.

4) For some reason, NWN2 will sometimes lose focus on a Main PC on a reload, thereby preventing clicked items to respond correctly. I had already employed this fix for the SP game, but after it showed up in a MP game load, I added the fix for the MP game too.

Campaign Update

As well as the MP fixes mentioned above, a handful of other SP fixes have also been addressed in the latest v1.22 update, released today. The majority are related to animation (or other) cosmetics, or to apply ease of play improvements. The biggest update for the SP game was the Alignment Shift update (as described above), which affects all game types. Anyone updating their current version will have any erroneous alignments corrected with this latest update.

Stage Two Development

I have been having a lot of fun developing the scenario surrounding an area within the second stage of module two. The background for it is complete, bar the very final conversation, which I am currently mulling over. I have the choice of going with the original, more predictable way to go... or with a later "surprise ending" that came to me early one morning as I was suffering from yet another sleepless night. I'll continue to think it over for another day or so, but if I can, I think I'll go for the latter, as I believe that would make the scenario more memorable.

During the process of making this scenario, however, I was able to include a few puzzle elements as well as a couple of conversations alongside what the player may usually expect. As the scenario is reasonably involved in its own right, it means the area in which it is to work has had a significant update bringing me a big step closer to finishing the second stage.

I still have to go back and finish Bloodstone College, and I do still have at least two other areas to complete. One of those areas, however, I was able to "complete" its story/background events, again bringing me further along to an overall completion of the second stage. There is also another added cutscene, which I am pleased with, and hope adds a moment of drama for the player.

All in all (and apart from some sleepless nights), it has been a relatively productive month.

A Great Treasure! (Module Two, Stage Two.)



Friday, 1 November 2024

Episode 90: The Antagonists!

I decided to change focus from the area I was working on, Bloodstone College, and set my sights on trying to finish some other areas of Stage Two of the second module, Predestinated Days. This was done so that I might be in a position to allow testers to test the majority of this second stage not too far in the distant future. It involved dealing with some sinister bad guys! Read on to find out how things turned out with these antagonists...

Alpha Testing Update

This blog has come a week or two early this time around, and so the sixth alpha testing of the second stage has not quite been completed. All but one area has been finished, but what has been tested has proven pretty solid. That said, there were still a couple of conversations and journal entries that needed logic fixing, but this is because it was along a plot path that current testing had not tried until now. The two points in question have around eight potential outcomes, which is a lot to consider when each outcome can affect other areas of the game too. In fact, this leads me nicely to my next topic...

Story Making

Regular readers will likely recall that I am keen to build a campaign where player decisions matter. To the extent that not only is the player relatively free to find their own path through the campaign, but that each step they take can also have an impact on the outcome of the story they are effectively making. So, one player may visit one area one way before another player, and the two players experience different outcomes. Of course, this kind of design also makes for re-playability, and it is something that I have tried to expand a little more on in the second module from what I did in the first.

Such plot devices include the alignment selection of the heroes, the order of places visited, the decisions made at certain times and events, as well as differences in skills and abilities, and background options taken within conversations, of course. So the end result is that one party approaching by one means will have a totally different outcome compared to another party who have taken a different path and made other decisions. The only "downside" is that each new direction taken requires careful handling of the variables that manage such player decisions, and this is what is being tested to date. The end result, I hope, is that no matter which path you take, it will be clear of issues for you when your decisions are made.

Whatever way you end up playing, you can rest assured that it is quite possible that by the time you finish this campaign, there will likely be a number of differences to your adventure compared to a fellow player of The Scroll. Part of the enjoyment I have is watching my wife as she play tests it, and see how she makes her decisions in each time she tests it. It encourages me to keep moving this project forward, as does any feedback I receive.

The Bad Guys!

I just wanted to touch upon another area of the campaign design, that of trying to encourage an emotional involvement from the player, which, if achieved, I believe makes a game both more enjoyable and memorable. Now, as the campaign world opens up with the second module, I am able to call upon a larger scope of characters that I can now use to confront the heroes. 

For the first module, (where the heroes were stuck in their home village), I was able to introduce enemies from afar, in such a way that allowed a clear distinction between who they could perceive as the "good guys" and the "bad guys". That said, I was also able to introduce a couple of other antagonists that proved to be obstacles to the heroes, in the form of local village political types and those with personal grievances. However, with the second module, the world opens up... and small village squabbles give way to city threats from their most wanted men and women, as well as larger world scale politics and peace threatening organisations. If you thought the village life was difficult, life outside the village and in the cities of the surrounding lands is much worse, simply because it is higher up the echelons of perceived power!

This is what the heroes of New Edgeton village are heading towards at the start of the second module. Having left the sleepy village as the local heroes, the PCs will now come up against more notorious characters, those who know how to get power, and how to keep hold of it. The heroes have moved from a society of local problems and thugs, and are now heading towards political turmoil controlled by mighty powers with sinister plans... as well as their own breed of thugs. Then again, where would the work be for the heroes, if it wasn't for these nasty antagonists!

Stage Two Development

As I say in my intro, I parked finishing the Bloodstone College scenario for now, to allow me to work on some of the other areas of this second stage - and, thankfully, to much progress! You see, Bloodstone College is a complicated undertaking, which required some area building, which I am always slow with. So, when I switched to working on some conversations and cutscenes for some area encounters that are already completed, I was able to just stick to the main plot writing and allow my preferred building objectives to flow.

In the process, I was able to establish two new potential companions that can be encountered, as well as write the quests surrounding their own backgrounds. New details started to flow for me, and it was good to be able to put together the various cutscenes and outcomes that can come depending upon the player's actions for their party. Put plainly, I was able to do a reasonable amount of material this last few weeks after suspending work on the Bloodstone College scenario. Although, I hasten to add that I have finished the section I had been working on for that scenario, and that when I go back, it will be easier to complete. I just wanted to work on something different and which also had an impact on the Bloodstone College scenario anyway. The quest associations can be quite complicated to work through, and so switching back and forth is a good practice for me to build a cohesive outcome for the player.

There were two incidents I'll mention here, for the record: First, I remind myself that if I encounter two instances of a creature in my testing, it means I likely have two instances of the object with the same tag in the world and not one, as I first thought. Secondly, when the toolset points to not using a certain instance of a placeable object in the module (e.g. Runestone placeable object), then do not use it. When I inadvertently did so,  it caused my area to crash on a save, deleting the .GIT file which meant the area was wiped! Thankfully, I had a back-up from the night before, but it was still 2-3 hours to rebuild it.

Campaign Update

The latest campaign build, v1.21, was also released today. It is released as a "Strongly Recommended" as it also fixes the possibility of a player not reading a book or a scroll that has the potential of updating a journal entry. This would break the journal logical flow and may cause an undesirable outcome. That said, it is rare and unlikely to happen... but you never know. (It did happen to a tester.)

I also fixed a MP issue of an inventory item not showing its description when clicked upon. This is one of those frustrating issues that only happens in a MP game due to a timing issue where MP games requires a fraction of a second more to manage some events. I aim to have my wife test the campaign in a MP setup (albeit with just her controlling the party), but I hope that will help reveal any further issues for MP moving forward.

There has also been a fix to Holy Books, in that they now show the correct god's name. It's mostly a cosmetic fix, but I also fixed the drop object for these and Spell Books, which could sometimes break if not using the correct item.

Familiars and companions have also had some minor fixes,  and the missing "weasel" familiar has been fixed. It was caused by a loop terminating too soon! I also fixed temporary hit-points from being lost when a beetle was switched out.

There were a couple of other minor fixes, such as a description for the module, which was purely cosmetic, and I decided to restrain summons to the same durations as the NWN2 original, simply to redress some balancing. As a result, this months update also requires the TLK folder to be replaced, which comes with the campaign download as usual.

A Screenshot From Stage One.

A Screenshot From Stage Two.


Thursday, 10 October 2024

Episode 89: Improving The Code!

Progress continues with Predestinated Days, alongside some final fixes and updates for the first module. The fixes required came when my wife alpha tested the second module for the fifth time using Hard Core death mode. I'll tell you all about it,if you want to read on...

Module Two Alpha Five Testing

The fifth alpha testing was actually pretty solid as far as the plot and general mechanics were concerned. What came to light, however, were a few campaign bugs that had crept in over the last few updates, which affects both the second module, and the first. Important to note, all issues noted below have now been fixed in v1.19,  unless stated otherwise.

PLOT ITEMS: In particular, an issue related to when a PC died (and the player had not chosen the Companion Protector gift that would allow a PC to fall unconscious only) and required "raising" from the dead. When this happened, an update to the way Plot Items are handled, (to prevent the Main PC potentially becoming burdened when they were transferred on a companion's death), managed to lose the plot items completely instead! It was a potential game-breaker, which was fixed in the earlier v1.18.

ITEM DESCRIPTIONS: A minor bug also came to light with respect to containers sometimes not updating the descriptions of items. So, I took another look at the container handling functions and addressed any code I found that had not traced the current container correctly. Now, if any description for an item is missing, it is updated. I also discovered that my wife used the context menu to open a container, rather than a double click (as I do), and so I had to address that area of code as well.

Other Testing (Inc Module One)

TB COMBAT: My thanks again go to Dustin_Offal for noticing this problem. Basically, when TB Combat initiated, it could (sometimes) cause a summoned creature in the party to un-summon! This was a hard bug to track down, but I eventually traced it back to an old line of code that was simply no longer required. Once I removed it, the problem was solved. However, in the two days prior to its discovery I was able to make more improvements to this area of code, especially related to its overall efficiency. Now, the TB Combat initialises a lot more smoothly, and PCs using ranged weapon, target enemies more intelligently.

SEWER ACCESS UNITS: Dustin was also the person who discovered a minor bug in the sewer access units too. Related to the container issue reported above, these units also required some extra special handling to prevent closing at the wrong time and also to prevent a PC wandering up to them, when not required.

EXAMINE & MINI-MAP GUIS: I also noticed a couple of GUI issues, which may have flown under the radar for some time. First, the Examine GUI is supposed to report the RANGE of an object in its top bar. This was missing sometimes, due to a variable not being cleared. Secondly, the Mini-Map, which can be made to appear "larger" or just as an area name bar, would lose some of its image on its largest setting. I fixed both of these GUI issues too. The latest screenshot from Module Two (below), shows the larger Mini-Map open and now displaying correctly.

BETA TESTING: Dustin is currently playing through the first Module, The First Day, so that he has a party he is satisfied with to start his run of Stage One of Predestinated Days, the second module. Subject to the time he has available, he may be in a position to start the second module at some point in the near future and, if so, he will be the first person, other than my wife, to give some feedback regarding the first stage of the second module.

Stage Two Development

My wife has started her sixth alpha test of the first stage of module two. I am not anticipating any further problems, but I would like to see if we can make it through this stage without any issues (at all), at least once. As I have reported in previous blogs, current module two scripting has moved away from the core files (apart from where fixes have been required), and I have been concentrating on completely new scripts.

As an example of how I do newer coding, I now aim to write only one or two scripts that manage the entire events for a specific area or situation. The script code manages various events subject to how it is attached to an object and to any variables passed. So, whereas I once may have used two to three scripts per object, I now try to use only a single script (or two), where possible. The same goes for conversations related to an area, event, or other object. The new scripts and conversations are better implemented and more "cohesive", rather than a mishmash of various scripts handling what only a single script now does.

This approach is a continuation of the "improvements" to the old code I have been implementing over the last few months in preparation to run alongside the second module. Multiple versions of similar scripts have been amalgamated into a single all-purpose script. Not only does that make finding a specific script easier when required, which helps speed up building, but also helps when looking for bugs in the code. The problem in the past, was my not realising that similar scripts could be easily amended to accommodate multiple approach of use, so that only a single script was necessary for multiple event hooks.

I confess that I have also recently discovered some "old" scripts that still remain (while I was improving the code in readiness for the second module)... but unless they end up having to serve any other purpose for new module work, I am just going to leave them be. My goal now is to write new scripts for the new module, and only rework older scripts when and if I have to. Hopefully, enough module-to-module transition tests have been carried out now (with the latest alpha tests), which means all the older scripts that had required any reworking has finally been done. Maybe one or two conversation scripts can still be amalgamated, but I will treat them as I come across them and if they are needed for the newer modules.

The last Module Build released was on the 1st October 2024 and unless anything comes to light, this will also be the LAST module build for the first module. The only reason for me to update that build now, will be either due to a module bug, or me just wanting to bring modules and campaign dates to a single timeline. That may happen when I have finished the campaign completely: including module three!

For those following, you will recall I was hoping to finish Bloodstone College in the last month, but due to its continued complexity, I still have some elements to finish, especially related to the latest area (related to this scenario), which has had me have to think hard with respect to MP gaming code. The good news is that I am now writing the "exit" code for that particular area, which means I am seeing light at the end of the "area" tunnel. The latest first module is now out for grabs, and if I don't have any other issues with that, I can concentrate fully on module two, and hopefully, get back to the other sections I was working on a couple of months back.

As an aside, I did find myself having to double check an area from the third stage of this second module, which shows I am still progressing in other sections related throughout the second module as well as the college section. i.e. You may not hear about everything that is going on between blog posts, but, as I have said many times before, I am still making progress.

The Heroes Find A Cave (Showing Fixed Larger Mini-Map)

New Container Direct GUI Calls (I.E. Can Avoid Inventory)


Friday, 6 September 2024

Episode 88: Delving Deeper!

The biggest difficulty to making improvements and additions to the campaign code, is that there is always a risk to alter break something that was working fine for months! I must be the number one 'Guilty Guy' for this sort of thing, as, once again, I have had to release yet another version of the campaign (v1.13) to address some new issues due to changes made. However, what this also means, of course, is that I have been making reasonable progress on the second module, Predestinated Days ...

Latest Alpha Four Testing

My wife recently finished testing Stage One of the second module for the fourth time, finishing in a similar time to previous test runs, at around 30 hours. This was (as to be expected), the most stable test to date, but there were a couple of module changes I needed to make that means there will be a fifth alpha run.

However, due to the changes made of late, I asked my wife if she could test the first module again... just to be on the safe side. This is when I discovered the impact of the latest alterations to the campaign code had made. Frustratingly, even though the changes were extremely small, it just so happened that while these additions fixed one issue (for the second module), they broke aspects of the first.

I hasten to add that these alterations are/will become fewer and fewer as time goes by and as the core code becomes adequate for the newer second module to run alongside the original first. As an example of the kind of thing I mean: An animation in the second module was causing NPCs to shuffle their legs without ceasing... very annoying! So, I added a small "cancel animation" command to the area of code that was causing it, only to find it would cancel a rare animation I had been using in the first module, which I did not want to cancel. Only play-testing the first module in its entirety with the latest campaign files revealed the issue.

I have to confess that recently there were also some blatant mistakes by me when adjusting some code to be more efficient to handle bigger loops required for the second module. A bad variable check caused a whole condition check to always return an invalid object and so stop the correct object from doing what it was supposed to do. Again, it affected only one object, but nonetheless, it was broken because I had altered the function to work more efficiently with objects of the second module.

Yet, it is also during the latest alpha testing of the second module that previously unaddressed problems come to light. When this happens, I fix them and then schedule a new update for the campaign files as a whole. When that is released to fix these issues (which have normally been fully tested for both modules), that is when some of the newer issues mentioned above, sneak in at the same time as I am repairing those issues that should be addressed.

So, where am I going with this? Basically, there are two things that are happening, which should help moving forward: First, I am starting to write more unique scripts for the code I am needing for the second module, which means I am no longer having to adjust "core" code to accommodate some of the newer second module events. Secondly, I believe I should have fewer "old" scripts left to have to alter due to them not being up to the task to support the second module. In brief, I am reaching a point where I am now able to break away from core code alterations and concentrate on new scripts only, which will have no impact on the first module at all. As an example of addressing some old core files, the 'scaling' function should now be stable (which was one such broken in v1.10), the 'enemy detection' function should now be fixed properly, (which was also broken around v1.10), and most (if not all) inventory management systems have been fully tested in both modules.

The code for the new second module (Alpha) and older first module, should now be a lot closer to completion and apart from some "old" bug that comes to light, should not need to be opened and altered again.

Closed Beta Testing

To help alleviate any issues moving forward, I have also invited Dustin_Offal to a closed Beta Testing of the second module (Stage One). He is someone who has already offered great feedback that helped me iron out some issues with the first module, and I hope his input will help me to address any final lingering issues that remain in the code between the two modules. He has a good understanding of how the campaign is designed to be played and so I hope will be able to notice any issues that come to light as soon as he finds them.

Stage Two Development

I find myself still working on the Bloodstone College scenario. In particular, a "simple" comment in my own pen and paper notes, regarding a part of the adventure that in one sentence requires of me an extremely unique area design and adds a degree of complexity to the design and coding that I had not at first given much thought to. Without giving any spoilers, this section of the adventure allows multiple players... or a single player with multiple companions... or even a single player to enter an area and carry out a task that can vary according to who of these variations is present. I certainly have had to delve deep into the design and coding aspects to accommodate this aspect of the story, that's for sure!

Thankfully, I believe I have broken the back of the design now, and the code is working well in first testing (all new scripts that do not touch module one I hasten to add), and it should be fairly straightforward from now on. Although, an accompanying conversation (already up to 3000 words), is also quite cumbersome with numerous variables. Once again, however, I have written the largest portion now, I believe, and so should be reasonably straightforward to finish off now.

Considering this is a relatively small part of the overall scenario, I am hoping I can finish it next week, and allow myself to get my teeth into the rest of the areas involved. There are still a number of events to finish designing and write up, but I am already pleased with what has been accomplished so far, and I think will be one of the more exciting adventures for players when the time comes.

A Strange Dusty Room!