Game Development Life Lessons
Bruce | June 6, 2019, 10:59 p.m.
It wasn't long after I returned from America back to the UK that I was already saving to buy a professional laptop with the dreams of becoming a full software/ app / game developer. I went onto the website we've all seen from those annoying Youtube ads, Udemy. And downloaded a "Zero to Hero" python 3 course and started my journey into programming.
Im going to write another post that goes into more detail about the best advice I can give about teaching yourself to code, or actually, teaching yourself anything. But this post is specifically about the game development experience Iv had so far.
I had in my mind a personal development road map of sorts for coding which involved concepts of games, websites, apps, ethical hacking yada yada.. So it came to coding my first "REAL" game. Not really having a clue what I was getting myself into I decided to write it in python 3 (the only language knew) using the pygame package. No Unity, no Unreal, no engine, from scratch.
The concept for this game was a sci-fi, retro, arcade style platform game. You had a jump, a wall slide, a dash attack and a deflect attack. The idea was you spawn into a giant machine as an electrical glitch.. and you have to escape. All the enemies were shooting and you had to deflect the lasers back at them with your deflect. Or blast through them with your dash attack (you got more points for the deflect)
Turns out the even most simplest of things proved a huge challenge for me this early on in my programming career. I had to draw it all, animate it all and code it all with no engine. Countless days and nights, banging my head against my laptop, not having a clue why if I held left and right at the same time after executing a jump from either direction, resulted in the character teleporting through the walls(screams).
How come if my character goes to the outside section the frames per second slows down to the point its almost going backwards..
How come.. if Im holding down right to wall slide and see an enemy in front of me.. if I attack, because Im holding right he doesn't dash forwards / left because he's left facing as he slides down the left side of the wall that requires you to hold right so the left directing dash attack is cancelled.
How come if I'm holding right after a wall slide and off the bottom of a wall he doesn't turn to face right once he has become detached from the wall.
One bug took me 6 weeks to find.
It's these things (and more) that I really wasn't ready for. By this point the script was over 10 thousand lines long and navigating it proved challenging to say the least. Its okay I said to myself, its like how they used to make the retro games.. its more authentic.. LOL! (hats off)
9 months of dev time later and it was "done". One level, one boss, three keys and a maze. I was so stoked and so sick of it at the same time. Things I took away from this.. Next time Im using an engine, Unity or Unreal Engine. Probably both as I want to make more games. PLAN don't make it up as you go along I found myself re writing code just to fit in a new feature that, once was rewritten broke the original code (the classic fixing one bug creates ten more paradox).
All in all the game isn't great and wont make me millions I think I got $41 in donations once released on you can visit and download on my projects page TERRA-FIRMA.
On a final note, the amount of workload I put on myself(draw, animate, sound, code), the amount of bugs I crushed, and writing 10k lines of OOP python 3 MASSIVELY improved my problem solving and coding abilities, no script too long, no bug too big, face your game and beat it down like a final boss.