Thursday, March 21, 2013

Project Summation, re-cap

I haven't really been keeping up with this blog. As of my writing this, I've already turned in the assignment and completed the prototype, at least as far as I could complete it given the time constraints. In the interests of keeping up this blog, though, I'm going to re-cap what I've been doing.


After much searching with little payoff, I decided to abandon the toggleable gravity volume idea. While I did find some forum threads where people were trying to do the same thing or something similar and while people did post a good answer in the form of Unreal script that I could copy and paste, nowhere could I find an explaination on how to alter Unreal script or where exactly to place the script after I copied it over.

I unfortunately did not come up with a solution to keeping a physics volume constantly shoving the player. The closest I could get was switching between two different physics volumes whenever the player pressed buttons to "change weight".

I did manage to figure out a way to create breakable boxes. I accomplised a simple mock-up wherein a box would be destroyed and a particle emitter would be played quickly to indicate that the box had been broken up into small pieces. I did run into an issue with this effect, however, since for some reason it did not save with the current UDK package. Due to time constraints and a lack of familiarity with the particle system, I wasn't able to encorporate the particle system into the final version of the game and had to substitute that indicator with a text notification that would tell the player that the box had been broken. It's a crude solution, but I had little else availible to me at the time.

I ran into an interesting issue with the final level. It looked like some of the elevation platform matinees weren't playing when they were supposed to after I had introduced the option to turn heavy to the player. It turns out that the problem lie in the way the button presses operated. When the player presses the "Q" key, he triggers a key button pressed node in kismet which leads into a switch node. The switch node, since it's the first time it's recieving input, outputs the first connection. When the player hits the "Q" key again to turn back to a normal weight, the switch node outputs the second connnection, which turns the player back to normal by changing an associated boolean value back to false.

This worked alright when it was just the "Q" key that kismet had to worry about, but when I introduced the "E" key as a button the player needed to use to become heavy, this caused problems. If the player hit either the "E" or "Q" keys, I designed a failsafe that set the associated booleans of the opposite value to false. Therefore, the boolean associated with being lightweight would turn off if the player was heavy. The issue in this case, though, was the toggles. A player could press "Q" once to turn lightweight, then press "E" to turn heavy. Ideally, the player should be able to turn lightweight once more by pressing the "Q" key again, but since the boolean chance relies off of a switch, pressing "Q" again just runs the script that turns the associated boolean false once more, meaning that a player will have to press "Q" or "E" twice in a row to turn to the desired weight if they're trying to change back after being heavy or lightweight. I am planning on rectifying this issue by changing the boolean check to a float value or else reconfiguring the boolean. Unfortunately, due to this issue, level 8 had to be scrapped for the time being.

I encountered another issue in level 6 in regards to the falling platforms. I had set up a kill z volume beneath the main level so that if the player fell, he would die and then re-spawn. The falling platforms are supposed to fall if the player isn't lightweight, thereby dropping the player into the kill-z volume and killing him. I ran into an issue where, for some reason, the animation to the platform wouldn't re-set after the player was killed. At first, I thought it was an issue with the matinee not rewinding, but further investigation suggested that the platform might be being destroyed when it crossed into the kill z volume. I tried to find a value in the kill z volume properties, but when I could not I instead opted to go a route similar to how I had fixed the levitating platforms not re-setting; I set up a kismet sequence where the platform's collision changed just long enough to drop the player if he stepped over the platorm while normal weight.

Not much else went wront the the levels. There was an issue with one level where I had to re-configure some tiles due to a near impossible difficulty and an issue where the player would be thrown off of the map by a physics volume if the character ever left the ground (I still have no clue how to adjust this). Also, there still exists the issue of the player "juggling" into the air when going over a levitate platform after already successfully triggering it. In the future, I'd like to fix these problems as well as add some new levels, since I feel the ones that I have so far are pretty simple. I feel like I'm just scratching the surface with the kind of puzzles I could create with this mechanic.

On another note, I think further on I should focus on more puzzles that require a player to switch to normal weight as I found some maps could be solved just by staying light the entire time. I also need to work in more maps that utilize heavyweight properties, since I was only able to create two maps and only able to use one in the final version for this quarter.

No comments:

Post a Comment