I continued firming up Release 2 this week.
- Improved cell highlighting. When selecting a target cell to shoot at or throw an object at, highlighting now excludes cells that can’t be seen
- Improved actor tracking. Enemy and NPC AI controllers were hardcoded to track the player. This caused a bug where other actors weren’t tracking the player because they were being instantiated during map generation, before the player was instantiated. But, the real problems were that a) the AI should determine what is being tracked instead of hardcoding it and b) the decision to track should be made when the other actor becomes visible, not when the tracking actor is created. I removed the hardcoding, extended the AI to determine what an actor tracks, and moved adding tracked actors to the point when the tracking actor sees the actor to be tracked.
- Improved health bar visibility logic. Health bars used to appear over every damageable, dynamic actor. Now they only appear when an actor has been damaged, and appear for static actors like doors.
- Miscellaneous refactoring and code improvement, which includes:
- Changing variables from public to private
- Removing unused classes and code
- Consolidating redundant code
- Method comments
- Many bug fixes. When things break, I’m spending more time on the fixes to lower the chance of the same things breaking in the future. I’m making progress but I have a lot of room for improvement.
- Trimmed scope. I moved some planned enhancements from Release 2 to Release 3. I’ve been working on Release 2 for 15 months. That’s a lot longer than I want to spend on each release, so I pushed out the remaining planned enhancements to the next release.
Next week, play testing and bug fixing continues as I work toward wrapping up Release 2.