Today was a day to get plenty of work done! That is, so much work has been done that production is having trouble keeping up.
I ran into an actual bug today! Whoo! This one is mainly attributed to weightless objects going through walls. When trying it, I didn't have too much of a problem, but closing the character in on the PhysicsHandle results in some very nasty clipping and depenetration velocity strong enough to wiggle the object outside of walls. I managed a sweep test that would fail-safe the system and shut off levitation, should that occur.
The fog moves as it should! The deadly fog, that is. I figured moving the KillZ volume (or a volume that acts like KillZ) would be appropriate, but the volume must only hit and cause the FellOutOfWorld function to characters (player, insects).
As for the programming assignment? I learned from an important source that if a source is cloned and owns data, it must delete and never change or mix ownership with non-owned materials.
As for neurofeedback? Eh. Not too well. The UDP receiver I'm trying to attach to EEGer isn't working; I'm not sure what the other side is doing that I can intercept. Perhaps it's not timing out properly?
An account of pain, struggle, and amusing discoveries found in a man's quest for game programming style and finesse.
Monday, February 29, 2016
Sunday, February 28, 2016
Day 50: Who Uses The Metric System?
We do, most certainly! Mainly the system of metrics we plan to use for gameplay testing and measurement. Right now I've been tasked with just getting possible metrics written over time, the simplest being length of gameplay in a session. It's as simple as writing to a csv file, right?
Nay! The file writing of UE4 seems to be limited to writing a single string to a single file, so I took over and converted the FStrings to std::string objects so I could use the fstream objects to write to a file. So far, so good!
I've also tried to find ways to change KillZ in the game, but it's been extremely tricky. The KillZ volume can't be changed in game, so what I must do is place an object that invokes the FellOutOfWorld function when overlapping. Simple? Maybe. Difficult? You betcha.
Nay! The file writing of UE4 seems to be limited to writing a single string to a single file, so I took over and converted the FStrings to std::string objects so I could use the fstream objects to write to a file. So far, so good!
I've also tried to find ways to change KillZ in the game, but it's been extremely tricky. The KillZ volume can't be changed in game, so what I must do is place an object that invokes the FellOutOfWorld function when overlapping. Simple? Maybe. Difficult? You betcha.
Saturday, February 27, 2016
Day 49: Dark Times A-Comin
Similarly to an earlier post, the research into foggy sheets has actually come out pretty well! As long as I keep it in Blueprints (due to the nature of Construction Script Material Instance Dynamic Instancing and Billboard Components), one can create a "fog sheet" that can be properly placed under a KillZ area for some very good fill below:
As for Programming work, the parsing is all set and run through correctly! I just had to remember that the XML_Parser in Expat needs a free method, especially during exceptions to preserve memory state.
The kicker? Looks as if writing data to a file with metrics is pretty tricky; regular DataTable objects can only be read to for data-driven programming, so I have to experiment with writing readable text files for metrics.
As for Programming work, the parsing is all set and run through correctly! I just had to remember that the XML_Parser in Expat needs a free method, especially during exceptions to preserve memory state.
The kicker? Looks as if writing data to a file with metrics is pretty tricky; regular DataTable objects can only be read to for data-driven programming, so I have to experiment with writing readable text files for metrics.
Friday, February 26, 2016
Day 48: WIP
My brain is much too tired for a full post. Been working on XML parsing with Expat all day. For those of you who don't know what Expat is, it's a C library devoted to reading XML. That said, it's not nearly as friendly as I had hoped, with it stopping its data handler on every single tab and newline character.
However! Parsing is now going well and cloning is going smoothly also. For cloning, we're kickstarting work into the Factory pattern by using cloning over regular copy construction.
What next? Sleep. Please sleep.
However! Parsing is now going well and cloning is going smoothly also. For cloning, we're kickstarting work into the Factory pattern by using cloning over regular copy construction.
What next? Sleep. Please sleep.
Thursday, February 25, 2016
Day 47: Dark Lines and UI A-Comin
Today was quite the busy day (still in progress!), but I've made considerable progress today to give a status report.
Capstone was relatively straightforward in terms of work. I dug into another programmer's code to figure out why the lines weren't showing when the central-focused nodes were calcified, so I refactored a bit for better feedback:
What's that at the lower left corner? UI in progress! Right now I'm hooking up another UI widget to the PlayerController to ensure visual feedback on stamina and health.
As for the final portion, I've worked on a simple elevator translation of a producer prototype. The elevator only goes when the nodes are not calcified, allowing proper vertical ascension with a "barrier" of progress.
What's next? Work on XML parsing. Our next assignment is parsing XML the hard way...(through a wrapper in Expat and abstract base classes!)
Capstone was relatively straightforward in terms of work. I dug into another programmer's code to figure out why the lines weren't showing when the central-focused nodes were calcified, so I refactored a bit for better feedback:
What's that at the lower left corner? UI in progress! Right now I'm hooking up another UI widget to the PlayerController to ensure visual feedback on stamina and health.
As for the final portion, I've worked on a simple elevator translation of a producer prototype. The elevator only goes when the nodes are not calcified, allowing proper vertical ascension with a "barrier" of progress.
What's next? Work on XML parsing. Our next assignment is parsing XML the hard way...(through a wrapper in Expat and abstract base classes!)
Wednesday, February 24, 2016
Day 46: So Much Out of A Shiny Ball
Today was a good day for the targeting ball! After adjusting to different design changes, the targeting ball now scales based on distance, operating with much more visibility and the same accuracy as before:
The ball also now changes color based on interactivity, not the ley line power. Sure, it should shine with the power when usable, but only when! An example is shown below.
Also, a checkpoint system was deemed more viable than distance-based respawning, so I included a class very similar to a checkpoint class from long ago...
As for the programming assignment? Soon it will be released. I think. Those are always slow to release.
The ball also now changes color based on interactivity, not the ley line power. Sure, it should shine with the power when usable, but only when! An example is shown below.
Also, a checkpoint system was deemed more viable than distance-based respawning, so I included a class very similar to a checkpoint class from long ago...
As for the programming assignment? Soon it will be released. I think. Those are always slow to release.
Tuesday, February 23, 2016
Day 45: Not Much To Show
However...much work is done!
The Attributed class is covered fully and is ready to roll. Looks like that in order to test the original code, I had to call the base versions of the functions. All in all, though, it works! XML parsing will move on soon, but I'm iffy about using Expat to read XML.
As for Game Lab, I put in a score multiplier real quickly, but it was mostly helping the others actually setup their things with making sure EEGer had compatibility with Unity on their systems. If only they had done it earlier...
And as for tasks! I'm secretly working on my Sprint tasks in advance; don't tell anyone I'm fixing bugs...
The Attributed class is covered fully and is ready to roll. Looks like that in order to test the original code, I had to call the base versions of the functions. All in all, though, it works! XML parsing will move on soon, but I'm iffy about using Expat to read XML.
As for Game Lab, I put in a score multiplier real quickly, but it was mostly helping the others actually setup their things with making sure EEGer had compatibility with Unity on their systems. If only they had done it earlier...
And as for tasks! I'm secretly working on my Sprint tasks in advance; don't tell anyone I'm fixing bugs...
Subscribe to:
Posts (Atom)