This January I began learning how to program via codecademy. Due to my interest in becoming a data analyst, I chose Python as my first language. I was working through the material, I went through data types, functions, for loops, control flow, and then near the end of the introductory python course, I got to classes. Something about classes, and the power of object oriented programming clicked in my head. Nothing I had learned up to that point had much intuitive sense to me, but I had powered through and learned it. Something about O.O.P. just clicked for me though, and I immediatley started imagining all the possibilities it supplied.
My first thought was that classes were the perfect vehicle for characters in a game. They could have attributes like health, or strength, as well as functions specific to their class to influence other characters in the game. I immediately downloaded an IDE and began trying out small scale tests for different game mechanics. What followed those tests is the unfinished game LolaQuest. I based it on my dog Lola, and the things she likes and dislikes (enemies are things like the dreaded elevator, and slamming car doors). Like any code written by someone with only three weeks experience, it will surely offend the experienced programmers out there, in both style and efficiency. I hope however that the passion and excitement with which it was written, shines through. I would also argue that despite being clunky and verbose, _'hey, it runs'.
I did not use any guidance whatsoever in constructing my very own text-based game engine, because I wanted the game to be a dual exercise for myself. I wanted to both ingrain syntax for the most basic Python functions and methods, as well as practice solving problems programmatically. So all the methodologies evident in my code are mine, good and bad. I will continue to update the code as I write more story elements, and figure out how to solve different game engine problems. For example when I wrote the first version of the game, I had no clue what a Python interpreter was, so I was using Python 2.7, and couldn't figure out why certain methods, like input(), weren't working.