As stated in my previous post; I will be discussing the nature of technical challenges and how I like to view/ tackle them.
Even though I have only been working on this project for little over a month, I have already had my fair share of frustration in that time; the largest does of which was in implementing our most recently completed level (Pecking), in which the player needs to eat worms to feed the bird pet.
This level was implemented with the vision that only 1 worm would be on the screen, in the level, at any one moment. Even just achieving that took about 2 days to get working, as it was the first time that I had to sync up multiple animations on a loop and time them in the game world. The code essentially regulated the worm in this way:
timer –, until
timer == 0;
play worm_Up (the animation for the worm coming out the hole); when that is done playing
play worm (the idle animation for the worm); when thats done
play worm_Down (the animation for the worm coming out the hole, played backwards)
add some time to timer, REPEAT
After the initial implementation was complete; I played the game and it was very dull with just a single worm: so i decided that the game would be modified to have upto 3 worms on the screen at once depending on difficulty.
This was the real headache, as it was the first time that I had to really go back to the drawing board and make huge fundamental changes to the code, adding a few more grueling days to the implementation time due to a plethora of errors, issues such as worms spawning in the same holes, animations not firing, objects not being destroyed etc etc etc.
I’m beginning to ramble so I’ll wrap this up but the point I’m making is this: not everything is always going to go your way. There will be times when you just feel like your bashing your head off a brock wall, reading the same lines of code so many times that they blur together and your eyes start to glaze over. Its gonna happen: and when it does there are a couple things you should keep in mind that could be the difference between you throwing in the towel, and overcoming that challenge.
1) Debug messages are your best friend: whenever you feel like your neck deep in issues and you cant seem to pinpoint them, throw a bunch of debug messages in your code. Put em in every second line if you need to: They are invaluable when you feel overwhelmed, so bring it back to basics and take things one step at a time.
2) Take breaks. I know from personal experience that being stubborn when it comes to cracking problems and beating bugs into always the best approach: sometimes just getting away for a quick sandwich or take a wee 5min breather is all you need for that penny to drop.
3) In my opinion the most important thing to remember. Mentality. Program to improve; to strengthen your craft and explore new things; never lose sight of the fact that every challenge is merely an opportunity for personal and professional growth. Keep this in mind and you cant go far wrong 😉
well thats about it from me for this week guys, quite a long one I know but alas, I had a lot to say.
Till next time! 🙂