Choose Your Language

Wednesday 15 May 2019

Episode 3: Mapping The Way Ahead

Some of you may have noticed that v2.65 has not yet been released, as I had originally hoped to do last week .... latest early this week. However, because of the approach I have taken to module two, I decided to take a bold step and do some fairly "major" design changes, to make moving forward easier. This meant making some important code changes to the existing campaign files, including the following: (a) Inventory/Store Access, (b) Transitions and (c) Conversations. I know, it's nothing small is it! So before I explain what steps I did for module two last week, I want to say a little more why I made these other changes.

CAMPAIGN UPDATES

1) INVENTORY/STORE CONTROL: To be frank, this code was a bit messy, having already undergone some changes in the last beta testing to make sure it worked in a multi-player environment. Basically, it had become quite bloated with a good deal of irrelevant code, and contained an annoying "glitch", which I  wanted to be rid of: One had to click twice to compare an item in a store with existing equipment. So, the bottom line was I stripped the functions and rewrote the routine to now produce a reasonably slick system. In truth, it could (perhaps) be made slicker still, but I am quite content with the latest rendition for now ... and that glitch is gone!

2) TRANSITIONS: In the process of preparing module two, which involves transitioning on and off a world map (more on that below), I found that I also have "messy" areas of duplicated code that I wanted to streamline again. After all, transitions are a key feature of a module, and I'd rather ensure a clean set of scripts for the job going forward. Basically, many duplicated routines and checks have now been moved to dedicated functions, streamlining the code .. and, in theory, making any bug-hunting easier.

3) CONVERSATIONS: Pretty much for the same reasons as the rewriting transitions above, I wanted to make the code surrounding handling conversations tidier and more streamlined for future use. Also, I finally got around to simply placing some humanoids with the various "conversation" settings on them to try to learn how the different settings affected players in a SP and MP game. Before, it was a little hazy - even hit and miss for me. Now, I am fairly confident I know when and where to use the various options. Most interesting, I learned we can send a cutscene type conversation to a single player in a MP game, without it affecting any other players. I had always assumed all cutscenes were for all players. After learning that  ... and a few other conversation tricks, I decided to rewrite the core companion/created PC conversations, and ensure all in-game conversations could no longer be "interrupted". I also rewrote them incorporating a system that enabled all "new" interaction to switch to cutscene for all players, but remained for a single player when not required.

So, that is a lot of core changes .. and as you can imagine, is why I thought it prudent to put the campaign under another short testing period to ensure these core changes remain working for any imminent release. While these changes affect nearly every aspect of the module, I hope I know enough of the key core areas to be able to do some testing that won't take overly long ... That said, I'd rather make sure before release so players have the best experience!

MODULE UPDATES

I can also add that due to the changes I made to the campaign files, I found I needed to change some of the module elements too, be it simply adding or removing a "tick" from an object, or renaming a tag of an object. Suffice to say, the module has undergone some important changes as well in preparation to adding modules.

MODULE TWO

Apart from those important updates to the existing campaign code and module one, last week was about ensuring module one linked into one of the two potential entry areas of module two. One area of entry is a lobby (if bypassing module one completely), while the other is the Overland World Map if playing straight from module one into module two. It was when I was testing the transition to the Overland World Map that I discovered some of the "inconsistencies" of the tag requirements depending upon whether a player is using their own map (for quick travel) or moving straight to the Overland Map for slower movement. (Yes, there is even more than one way that this travel can start too.) Basically, the different number of options at the start for the player are what I am putting together at this stage and hence, the need to clean up those transition scripts. After much investigation, for instance, I discovered one of my tags being search for had an extra "OMWP" in front of it, meaning the transition kept failing. This opened up the can of worms that led me to tidy up the transition code!

Anyway, here is a screenshot of the overland map in operation .... Some explanation is below.

World Map To Explore!
You may be asking what is going on in the screenshot above? What is being shown? Well, a key feature of my world map system is the "Travel Information" feedback GUI. Basically, as the party move around (controlled by the lead player in a MP game), the Travel Information GUI updates as you move with all pertinent travel info, from terrain being traversed, speed of travel, and (importantly) time, as this affects your vigour levels. i.e. Travelling this way has to be managed. Note, there are other ways to circumvent these factors, such as using a map (quick travel) or a nexus (alternative quick travel), but that is up to the player whether they choose to employ them, or even have the means to do so. The "advantage" of travelling the Overland Map, however, will be the chance to encounter monsters for combat and find many locations that may not be found by the direct paths. (Note: Some direct paths may not be available from the start anyway.)

So, if you are able to zoom in on the image above, you will also be able to see some feedback in the chat window giving an indication on how the party is fairing in their current travel with respect to their vigour and how tired and hungry they may be.

Hopefully, (am I always saying this?), I will be able to announce a release of module one v2.65 in the coming days. All I want to do now is make sure I can at least play through the first few areas, conversations, store transactions, etc to be sure all is still fine and I have not done any unknown damage. Of course, I hope if after release you do find anything, you would let me know. :)





No comments: