Creature feature was a project focused on learning how to plan, implement, and utilize; Spatial Graphs, Pathfinding, and AI. Unfortunately my project fell apart in the first two areas, but I learned a lot about my own personal processes from it, leading to better project development down the line.
The project suffered from over complication of systems caused by planning issues.
Context: My overconfidence with the concepts that where core to the project. I tend to pick up on concepts quickly as they are described, allowing me to fall into the the pitfalls in my knowledge. This caused issues during the implementation phase, most of the systems required checks and direct references to other systems, that I did not asses. There was not enough attention to detail of how and why systems would need to communicate.
I would like to blame this problem on inexperience. It is true that this did play a role in the problem but the largest cause was negligence. I enjoy the act of writing code, it is exciting and interesting. Leading me to abandon documentation earlier than would be beneficial in most situations.
To better manage these in the future; I need to lean into the excitement of design, and stay my hand until I have a plan.(he he I did not even plan for that to rhyme..) Also need to plan better communication between my systems, as that is an area that I want to be a keystone of my personal skill set. Abstraction is such a powerful thing in OOP. It is like negative space in an image, one class not knowing about another should be a deliberate decision, not a side effect other parts of the design.
The code suffered from trying to patch what would have been quicker and better if refactored. These issues extend from the planning issues but are not inherently caused by it.
The context: The time for this project felt more limited than it actually was and the Project was covering new complicated areas that I am inexperienced in.
A lot of the systems being implemented were things that I had not personally a tried before. As a result a lot of it was key for key tutorial copy. This is one thing I feel justified in blaming my inexperience. Spacial Graph Generation and Pathfinding are two very complicated subjects.
Things to be aware of moving forward; These systems specifically are things that will take some time to learn properly, and even then I know are areas that I do not natively “get” requiring a more rigorous play by play planning for reliable implementation in the future. Additionally, If I want to learn something quicker and better I should make multiple quick passes at its implementation, testing as I go.
I still have a lot to learn but I honestly feel that I this project helped me to grasp just how important it is when learning something new and complicated. Do the thing multiple times, in a short period of time. Get familiar with the concept in its implementation. Poke, prod, and test it. Additionally, abstraction and the conscious decision as to why two system do not interact.