It was an interesting and successful week, with another foray into the C++ engine code. I haven’t done that since the upgrade to AFX 1.1, so it took a while to get reoriented to the code. I’m not particularly good with C++, but I know enough to get by and make necessary minor changes. This time, I needed to find a way to make objects partially transparent, at a level specified by me. To this point, we were incorporating opacity into the object prior to exporting it to DTS format, but the game engine doesn’t seem to play well with that. With respect to the holy water, it was resulting in weird visual problems, where the water was either completely invisible (a layer sorting problem) or it would flash in and out of visibility depending on the viewing angle (a problem of uncertain origin). So to work around this, I wanted to try modifying the engine code to force it to display any object with a specified alpha transparency, rather than having that embedded within the object itself. I knew the Torque engine already did something like this — each object has a fade function, which causes the object to fade completely in or completely out. So it was just a matter of hijacking this code so that the fading function stops when the object reaches its specified opacity, rather than all the way to 0. It took a few days of effort, but I finally got it working, and it seems to have solved the problem with the holy water visual issues. Huzzah!
With that complete, NR and I worked on getting the different holy water objects re-exported and reinstalled into the game, and now they all appear to be working correctly. Once that was done, I then worked on adding bubbles and steam to one of the holy water versions — the version that appears early in the game if the player chooses to travel the “evil” pathway. Particle systems in Torque take a bit to get used to, but in the end I got it all working, and I’m very happy with the results.
In the process, I came across some better images for fire and smoke particles, and I used those to modify the appearance of the fire in the Locutory and the Calefactory. I think it looks significantly better now.
========= CHANGELOG =========
One week period leading up to 2014-07-28:
- Set up new engine development partition on the dev machine with Xcode 3.1.2 and confirmed ability to compile engine code
- Started and finished modifying the engine code to allow objects to have a specified alpha transparency via the startFade() routine and fading code
- Compiled new game application (v05b)
- Created and validated script code to set holy water opacity at 0.7 with ablility to fade in and out appropriately
- Tested new alpha specification code with all current holy water objects, working well with no visibility issues
- Created script to add bubbles, steam, and hissing sound to Act 1 holy water when player is “evil”
- Grabbed new fire and smoke particle images for locutory/calefactory fire and adjusted settings for better looking fire
- Continued to modify “spinning” version of holy water (Act 4B) for optimal appearance (NR)
This week’s screenshot shows a snapshot of the updated fire in the Locutory. It’s hard to capture it all in a single screenshot, since it looks better when animated, but you get the idea.
Enjoyed this article? Subscribe to The Monk's Brew RSS feed.