Disclaimer: Before you read this blog post, I would like to mention that I did not record any clips of me talking with my mentor as I did not know that I would need to further reference the meetings between me and my mentor, and I apologize.
Where am I right now?
At this point, I have completely finished the title screen of the game and am currently working on the first chapter of the game. I have also had my first meeting with my mentor and revised my code according to his feedback. At this point, my goal is to finish the first chapter so I can begin with the rest of the game, since the beginning of the game will be very linear, but will still introduce concepts to the player such as battling, item collecting, and more. I also don’t want to overstate the length of my game. I think my game will be very linear, and will be very battle focused, rather than exploration/dialogue focused. I wanted to focus on the battle aspect of this game more than the other aspects because of the mathematics behind it; There could be many weapons that amplify the damage you deal by a certain multiplier, and there may be a move that does more damage than others.
How did I meet with my mentor? What happened?
Last weekend, my mentor came over and we decided to have a teaching session right there and then. I showed him my code at the time, and the main comment that he made was that my code was very cluttered and unorganized. Because of this, he suggested for me to learn classes to help organize my code. I looked more into the subject and talked to my mentor about my thoughts. I had thought that with the way my game is progressing, and it being more of a linear game rather than a game with extreme detail in dialogue or exploration, classes would not be the best option for my game. However, since he mentioned that the point of classes was to organize my code, I opted to add more comments to my code (in Python IDLE, you can add comments to your own code within the coding program, like many other languages) and to space my code out to make it more readable. Here’s an example of before (on the left) and after (on the right):
As you can see, the code on the second screenshot is less cluttered and has been spaced out. I have already consulted with my mentor and he approves of this method as well. Also, besides the main comment of organizing my code, he also mentioned to quicken the time gaps between each line of text, since they were print out quite slowly.
Proof that I am making progress?
Of course, in the two screenshots above, you can see a piece of dialogue requiring an input from the user to determine the supporting character’s name. This is just one of the pieces of code I have programmed in the game so far, and as of the date of writing this (January 28th, 2021), I have written over 500 lines of code, with many more to come.
What are some issues I am running into?
In terms of actual programming, I am not running into many technical issues that have to do with any indent mistakes or typos, but if I ever do make an indent mistake or a typo (not in strings, but in the actual code functions), the IDE (integrated development environment) will automatically point them out and I will be able to fix these errors quickly. Besides any technical issues, I am running into a small stress from being able to work on my school work and my in-depth simultaneously, but I am finding that I’ll be fine if I take things one step at a time, and not all at once.
What sources am I using for my education?
Aside from my mentor, I am learning from multiple different websites, such as Programiz, w3schools, Real Python, DataCamp, and occasionally, YouTube. I have used these sites to either learn about something very simple such as the OS (operating system) method, or something a bit more complex such as classes and object-oriented programming.
How did my mentor and I agree?
Me and my mentor went over two specific topics which, coincidentally, I feel like fit for these topics of having a beautiful mind. I think that me and my mentor had agreed in the sense that my code needed to be organized, and that there was too much time between each printed line of code. I will be going over the first topic, since I feel like going over the second one would be too simple.
Firstly, my code was very cluttered at the time, like my mentor had mentioned, and I recognized this. He had also mentioned that if I wish to do more projects like this in the future and possibly beyond secondary school, that I would have to organize the code not only for myself but if I am doing a collaborative project. I understood that with the way my code was currently organized, I would have trouble finding certain parts of my code and even get lost in my own program.
This is when I realized that I had to organize my code, since I saw from his perspective that as someone who had never seen my code beforehand, it was just a mess, like a stack of clean laundry needing to be sorted. I saw where he was coming from and decided that he was right, and so I opted to organize my code, but in a different way.
How did my mentor and I disagree?
As I mentioned in the previous paragraph, my mentor had said that my code was very unorganized and suggested that I should learn about classes as a way to organize my code. After that meeting, I had decided to learn about classes and see how I could implement them in my program. However, after further research into classes, I had thought that it may not be the best idea for my program.
One of the common concepts of classes is the functions within the classes being able to call themselves. I had thought that, for a more linear project like mine, that this idea wouldn’t be of much use, and that I would be better off not using classes.
So, I later consulted my mentor with my thoughts and mentioned, while classes are a great function to learn about, that I thought that not using classes would be better fit for my type of program. He responded that the main idea of classes was to organize code and to make it readable. He also mentioned that, while my game works great as it is, it is just very hard to read and understand. He suggested that if I decided not to use classes, that I should find another way to organize my code.
I then decided to add more comments to my code and to add more space between the lines of code. You already saw an example in the pictures above. I mentioned this to my mentor, and he agreed that it would be fine. I believe that in this situation, I did not disagree with my mentor simply just to disagree, but because I genuinely thought that not using classes would be better for the flow of my game.
How did my mentor and I differ in opinion?
Me and my mentor differed in opinion in the same ways mentioned above. While we may have previously differed in opinion, we talked about it and understood how the other person’s opinion works, like how I later understood how classes work.
I do believe that me and my mentor have different ideas about how my project will turn out, but that is to be expected, since my mentor has only seen my code in two different sessions now, and I believe that over time, as we have more meetings together, our vision for my project will slowly start to be more and more alike.