Last week's build was a lot more stable, but there were still some significant bugs that needed fixing, so my goal was to remedy as many of those as possible. Early in the week some solid progress was made in fixing some of them, but other bugs involved a lot of searching that basically led to dead ends (never able to find the root causes). Some of these bugs I wasn't able to reliably test and recreate on my machine, but that should hopefully be less of an issue in the future.
After the decision about how line colors were going to work, it was time to re-work how teams were handled. This was one of the first things Dylan had written, and the game has certainly changed since then, and the code involving teams was Frankensteined together over time. A lot of time was spent re-architecting how teams are handled, and the end result is a system that is much more robust, lets us quickly tweak colors from the inspector, and let's the team system be managed without going into the code. A similar system was rolled out for paths.
One big issue was an error that would only appear in builds but not in my inspector. Fortunately, Dylan pulled my code from a remote branch was was able to debug much more quickly then me due to him being able to run networked games, whereas I could barely run a single instance. it turns out one of my fixes didn't play nicely with some third party software, but the problem was addressed.
Work has also been done on letting us toggle between different path systems, so that we can enable debug modes with certain color schemes, and production modes with different line colors.
Accomplishments
- Improving how "proposed paths" work and adding functionality such as the remainder of invalid paths being tinted (1 hours)
- Changing how paths get their color information so that it's easier to change/expend in the future and doesn't involve modifying code (1 hours)
- Toggleable debug mode that lets you see: all paths, only the active paths of your enemies and all your paths, or all your paths (work in progress) (2 hours)
- Reworked how the team information is stored and transmitted, new system is much more robust, allows us to add/remove/modify without editing the code, allows us to attach metadata (Thursday) (4 hours)
- Assorted bug fixes and optimizations (7 hours)
- Art direction and feedback (1 hour)
Not-so-much Accomplishments
- Trying to debug the issue where the game would behave correctly in an editor but incorrectly in builds (Dylan eventually found the cause but we never understood why it worked in the editor, it shouldn't have worked in either) (2 hours)
- Moved all team information from a collection of lists and enums to a dictionary based system, this made changing colors easier and limited code reuse a lot. While this was a great change to make, it was largely replaced by the work I did on Thursday where team information was moved to dedicated objects. This work still laid the groundwork, but overall an hour or two would have been saved if I had known the right way to do it from the start. (3 hours)
- Trying to find the source of bugs that I was unable to replicate, identify, or solve (3 hours)
Next Steps
- The next important things of units navigating paths well and rerouting paths around towers are being blocked by a big gameplay discussion, so they're on hold.
- There are some big bugs that I'm still trying to find the source of and am working on fixing those. I'll probably also be doing a lot of CS paperwork and documentation this week.
Ryan Daugherty
No comments:
Post a Comment