Sprint 4: Probably one of the Things That Has Occurred

 This sprint was difficult for me. I had a lot going on both on the school and personal level, and was not able to put in the effort I knew I could give. But, we can start by championing the work that was done.


This was the first thing I accomplished in the sprint, and it surprisingly meant a lot. It wasn't much, really; I fixed a longstanding bug that kept the text from updating with the placement of items. It was just a change of calling the UI refresh functions, but it lead into a lot of the work I had to do for this sprint. Finishing this lead to the understanding of multiple things:

UI calls right now are really slow and really bad; this isn't necessarily a problem, but it lead me to start understanding exactly when the game changes things and it when it doesn't. UI updates, as of right now, are not currently affected by the update function with the exception of anything that is guaranteed to change per tick.

Additionally, I recognized that the Item properties were being pulled from data listed within the item script itself, which is bad for a couple reasons. Chiefly, you can see it in the gif posted above; the name of the object has (Clone) at the end thanks to Unity's built in naming-scheme, which for an item system that relies on instantiated objects, is not great. It's better to pull the name of the object from a scriptable object. We had an item Scriptable Object, but it hinged on a number of things that are now not relevant to the game.  The new Scriptable object focuses entirely on properties the item will need all the time. 


Fixing the item placement bug also lead to me effectively troubleshooting what I had to do for the next card I had, creating a reset button that allowed people to wipe their game file clean. This was a long time coming; playtesting and stress-testing the game depended on adding massive numbers to the game data that had to be wiped from the savefile by hand. Now we don't have to do this. To make it friendly for the player, I had to find a smooth way to refresh every UI element at once, and while I didn't quite get there this sprint, I know where to go and what to do in order to make that happen, and it'll be trivial to turn it into a function call for the next sprint. 




Finally, I have always been curious about passive game mechanics. When I first took this class, I was always wondering how a game would end up tracking player time outside of the game. This was my first attempt at dipping into it. I found a structure for UnixTime within C#'s packages, and started using that. I'm familiar, roughly, with how it works and I didn't find it too difficult to figure out what I needed to do using the pre-baked methods involved in C#. This still wasn't a perfect solution to what I needed to do, and it took me until the sprint after this one to find a satisfactory method for calculating idle income.





Overall, this sprint requires a lot of self reflection in order to figure out what went wrong. My hope is to get much more accomplished after the rough patch I had this sprint. I got a lot done relative to a poor mental state and a bad reaction to medication, and I hope to do much better now that I'm seeking out solutions for it. 


Comments

Popular posts from this blog

Sprint 5

Sprint 7: Post-Mortem (Literally)

Sprint 6: I have no mouth and I must devlog