Wednesday, 11 June 2014

Where Does The Time Go ... ?

While putting a module together, it is quite surprising about what can come along both "externally" and "internally" to sway you from continuing smoothly. Life events are the obvious ones that can stop you from having the time or inclination to continue building, but the internal issues a builder can come across can also impinge on their creativity ... and slow building down. I have had a number of events from both camps in the last few weeks; here are some of the internal ones ...

Lighting Problem (Again)

I experienced something similar to this a while ago (in water), and thought I had found a way around the solution by simply adding some "hidden lighting". However, this latest light issue, as I later was told, was due to having too many lights in any one area! Take a look at the screenshots to see the kind of problems I mean:-

Obvious Light Glitch In Water!
Obvious Light Glitch On Land!
In the end, I resolved the issue by approaching the problem from two angles. First, I wrote a piece of code that helped determine if there were too many lights in range of each other, and to prevent creation of the normal light if there was. Secondly, in such situations where another light would have caused the problem, I made an "alternative light" to the one that would normally have been made, which had a much smaller range. The end result was that the scenes still had "lights" which looked good, but the light issue no longer appeared.

Toolset Crash (On Exiting)

I mentioned this last week, but mention it again because I encountered it again this week. This problem relates to "Include" files that a builder can add as "libraries" to their code, which gives them access to other functions they or others have written. The problem is, if these includes are not added carefully, and they clash with other references to other includes (and refer back to themselves), then the toolset gets confused (like that last statement I just wrote) and causes a crash when exiting. Sometimes (if many scripts are involved) it can take a while trying to work out which file is the culprit. Thankfully, after my last sort out mentioned in my last post, it did not take so long to track down this time. Furthermore, I don't think I will be needing to mess around with these for a while now.

New Material

Now, I quickly want to note that having new material is always a blessing! However, when we get it, it requires integrating into material we may already have, and that often involves reworking of existing code. (See also the "Includes" issue above.) As my own module has quite an amount of unique gameplay, I find that I often have to rewrite scripts that come with the new material to make work with my own. I have had to do this with a number of scripts in the last couple of weeks. Also, some new material like that I have been working with this week comes with 2da (two-dimensional array) file changes, which can also affect other related objects you may already have in place in a module. Sometimes these "clash" and lines need to be re-aligned with objects to make work again.

These Buttons Also Glow When Activated!
This is a link to the new material I have incorporated this week: Levers and Buttons. It is a great package to add to your mod, as it allows the addition of more moving levers and buttons that push, as well as pressure plates and trap doors. The buttons are an excellent inclusion, as they also allow scripters to make puzzles due to their ability to have different letters and numbers on their face. However, you have to script the puzzle yourself .... which is another reason more time is required when adding new stuff like this.

Other Things

The above are just some of the more obvious events that have occurred in the last few weeks, but there have been other small issues like:-

1) Poisoned Ammo: Not working as expected when used by a monster. In the end, it required a number of small tweaks with the setup to make the ammunition work as it should! (If you have this problem, I can discuss what I did to make it work.)

2) Fading Between Areas: I use a fade to black between transitions. In the end I had to edit my own function further (and write a new one for conversations) to take into account fades that were interfering with On Area Entry conversations.

3) Missing GUI Information: A simple case of one GUI needing the idleexpiretime adding to allow the default setting to display.

The bottom line is, in the time I am able to put aside for module writing, I find that with each addition I make, I am sometimes having to amend existing material, which affects the total amount I had hoped to get done. As I have always said though .... these kind of internal issues are becoming less and more easily overcome as I get nearer to completion.

As far as I am aware, I really have reached the point where I no longer have anything else I need to add that will require too much additional time to implement, thereby taking me away from finishing the whole module! In my notebook, I now have only a few (about five) major categories left to finish:-

1) Existing area needs puzzles adding & final encounter. (Possibly new button puzzles.)
2) Existing area needs special journal code adding to do with a specific quest.
3) A number of complicated conversations need finishing.
4) Would like to consider adding some more Lore Pages.
5) Finish off last two side quests I just added.

There are some other minor things that need dealing with, but are not the type that require any additional coding as far as I can see at the moment.

No comments: