With the due date for the final build of the game due, along with the associated poster, video, and other write-ups, the days leading up to Friday were examples of nearly chaotic scrambling. One lesson I will have learned from this period is to do more build-version testing of my applications; near the end of the week I encountered a bug that would not update the position of cards on the playfield, so that a card would hang in the middle of the field until the next card was played!
Day 1: I started with adding a series of graphics to the game board to act as screen division, separating the player’s fields from the opponents’. After having a meeting with Dr. Kaltman, I re-organized my work week to focus on finding and eliminating bugs so that the playthroughs were smoother instead of my intended focus of an enemy AI. This change in focus bore fruit in that I found enough bugs to keep me busy for a couple days!
Day 2: Started the day fixing a few bugs that were throwing null pointer exceptions when handling card abilities, as well as finding a few more edge case bugs, though unfortunately not all of these were able to be addressed. After building what I thought would be a stable version of the game, I ran it to insure that everything was carrying over between the editor and the build versions. Good thing I did because this was when I found that Unity, when built into an executable, was dropping an update frame on the playfields. Attached to the playfields is a Unity-built system that allows the cards to have an even spacing between each other, making it appear that there is an organized pile of cards laid out. At the start of each frame this system is supposed to update the position of each card, if the amount changes between frames; unfortunately, this was not happening. After trawling through the Unity community I was able to determine that the grid layout group, the spacing system, has had bugs in it since it was released. Thankfully, there was a manual method to force specified layout groups to update. I spent the remainder of my time last week doing last minute adjustments on the game, not having enough time to fix anything if I broke it.