Tuesday, March 8, 2016

Day 59: The Room (A Room)

Today's another day of the relaxation of Spring Break! That, and working to make sure I don't feel too guilty about Spring Break.

Today was mainly about metrics measurement. As a revision to the "master" metrics manager, which would measure across an entire session but not for specific areas, the manager got some options for more localized measurement.

For the rooms, one could use a overlap volume to detect when to measure things such as environment interaction and player death. However, the main issue that I've been running into is measuring state time duration. The player would no longer be able to detect these localized reactions; the volume would have to be responsible with these durations, even going so far as to force the player to call itself.

Is this working? Not quite yet. The actual time duration for gameplay is 3 minutes, but for some reason state time clocks over 5 minutes. Problem? Yes.

Monday, March 7, 2016

Day 58: Am I Allowed a Day Off?

Almost! I still did a tad bit of work. Looking into the awful bugs we experience during our vertical slice preparation and presentation, I discovered a couple of things.

1. Lighting was very haphazard in the build. I had trouble with lighting builds due to a god awful amount of overlapping point lights. Never overlap point lights.

2. I tried recreating the bug where button inputs on the controller would crash the game, but it seems quite odd. I ran into the crash by pressing the T key and also saw that input for a right shoulder was a Right Shoulder Axis input, not the Right Shoulder input proper. I switched it back and saw no problems.

3. I may also look into the Charger Character and spawners; it's likely that they should not interact with their behavior trees nor spawn extras when the KillZFog gets to them. I may put in a fix where spawners are also destroyed on interaction with the KillZFog.

4. Other than that? We got a new programmer! Woo! Now I must send them to fix my problems.

Sunday, March 6, 2016

Day 57: Even Less Work

But it's a good thing! I can actually enjoy my Spring Break!

It's enough work that I knocked my homework out of the ballpark as well. I'm concerned as to whether my parse helpers should throw exceptions or just fail the actual reading, but I'll have to wait on an official statement for that one.

This mainly comes from the use of a pushdown automaton; the finite state automaton, previously only usable with specific states, uses a structure like a stack to save data from previous encounters. In the case of parsing out scopes, one would use the tree-like hierarchy of scopes to focus on the currently used scope as a reference (pointer, mainly). Any problems? Had to rewrite plenty of code, but it's all done!

What's next? Jeez, never thought too much about it with break on the horizon. Going back to metrics, I suppose.

Saturday, March 5, 2016

Day 56: Less Slice, More Work

Phew! Our project made the cut, after plenty of ambitious work. Now to move on and enjoy Spring Break...

Ha! Just kidding. More homework is abound, mainly parsing a scope from an XML file.

How does one parse a scope, pray tell? With the XML parser and an Attributed class! I had to publicize the AddInternalSignature method and Populate method, but it works out fairly well. My main worry was parsing based on signature, but it seems I can make a Hashmap out of strings from XML tags and member function pointers, which have some of the most disgusting syntax in the world of C++14.

As for any issues? Well, the helper now needs access to shared data, so that means forward declarations. What? Can't forward a nested class? The parameter needs to be the master, then. It's quite bothersome, but the only way.

Thursday, March 3, 2016

Day 54: The Land Before Slice

Today was a horrific bug! Procedural waypoints were spawning everywhere and... was fixed. Turns out by putting an unnecessary boolean and BeginPlay spawning, the points were spawning every time one would enter the level. No more, though!

Now I'm on wait until the vertical slice presentation tomorrow. I did do some work for programming and neurofeedback! The specifics were to bend the grids to resemble a tunnel, so I managed to get an equation to fold them into half circles. If one imagines the height being the diameter, one could place the integers from 0 to the height as angles for constructing a semicircle. Voila! A tube!


As for programming, the parser is about to get its chops tested with scope production. Seems like the professor really wants us to use an automaton, so we'll be using the stack we made for a pushdown automaton to keep track of the current scope we're populating.

Wednesday, March 2, 2016

Day 53: Bugs? What Bugs?

An exam was today! It went alright.

But the bugs? My goodness! With vertical slice coming to a close, we must we swamped with bugs and terrible functionality!

Not really. We really are struggling to find bugs. There was one that almost stumped me, but it seemed to be a collision issue where arrows moving fast enough may clip through blocks that are small enough.

What else? Hm. Well, the Gravity Well disabling needed to be set to the Gravity Well power only, a quick little graphic in the menu was used to distinguish between colors, the arrow should not darken objects (i.e. return their original color, not a black one!).

Ah! I remember. One of my producers was tinkering with post-processing shaders and came with a really neat, lined effect. The problem? It took the color out of the emissive objects! What's a girl to do?

Thankfully enough, it was only the lack of bloom. In UE4, the bloom post-processing effect was responsible for the lit effect that would come from materials with strong enough emissive qualities. Crank it up just a tad and reduce the emissiveness of the color and voila:


What's next? At this rate, that may be an existential question.

Tuesday, March 1, 2016

Day 52: 24 Hours

Until the exam! Just kidding. I finished up my capstone hours for this week, and it's the highest yet at 24 hours and 4 minutes. Hot diggity!

Seriously, I'm concerned there aren't more bugs sooner, but I'll chalk that up to constant bug fixing for now. The main bug today was making sure that the central-focused nodes indeed did point toward the crystal, but not the middle. This led one of my coworkers to originally have them pointing straight ahead, but I instead ditched that and went for a 3D widget style endpoint that one could drag around.



I put some more metrics in as well! They unfortunately won't be used as much for vertical slice in the next couple of days, but heck if I know what else needs fixed. I managed to get the time that the player has been attuned to each power, but the rest will be a research project for me over Spring Break. I know a screenshot of a csv file is riveting stuff for progress, but one can do without.

My assignment grades for programming actually went well! I was advised to take my struct with a union in it and turn it into a whole union, but it's fairly (impossible) difficult to determine how to build the constructor/destructor/assignment in that way, as the non-primitive types in the union forced deletion of basic methods (???)

What next? Make the broke thing fixed!