As I noted in my last post on Oracle’s Eye development, I wanted to transfer functionality from PlayState to the GameWorld class.
Short story: I did it. Next step is to try to make the Player object obey the WallTile boundaries.
Long story: There were multiple times when I felt like I was spinning my wheels. Maybe it was just that I haven’t been exercising my brain by designing as much as I should, but I was starting to despair that I wouldn’t be able to figure out what to do. After all, I already had a huge chunk of temporary code to see how the program would work, and here I was trying to completely change the design of it. Where do I begin? Will I ruin what I have and waste time before I figure it out?
After some persistence, I created a number of new classes, modified a few existing ones, and I molded the GameWorld class into exactly what I needed. It just all came together. For hours I was struggling with thinking about how to handle the changes I needed. At one point I even considered reducing the scope of the project so that the stick figure just had to reach an exit in a maze since it seemed simpler.
When I started this last development session, I found it difficult to imagine that I would be able to implement the complete game. Even after a few hours of “work” (in which I might have spent a big portion of it not actually concentrating on the task at hand since it was easier), I still had doubts.
Then everything just worked out, and now I can see that my original plans should be possible. Next time, even if I feel overwhelmed with my project, I’ll just have to remember that going the extra mile and being persistent will do more for me than worrying or massive redesigns would do.