In-Depth Blog Post #4

Where am I right now?

I have finished the first chapter of the game, and am currently working on the second chapter of the game. I have recently been working on the battle aspect of the game, and have made very good progress in the area. I have also come to a very important conclusion regarding my In-Depth project. Rather than programming a full game by the end of the year, I will create a demo to the game, and then pursue the creation of the game after the school year as a passion project.

I understand that that may come as a bit of a disappointment, and I am also disappointed myself with this ultimatum that I’ve come to, since I’m not able to deliver with a fully finished game by the end of the year, but I understand that I will come by the end of the year with a finished demo to the game. I believe that this ultimatum is reasonable, since the purpose of In-Depth is to learn more about a field that you may have a passion about, and to deliver a product of your education. Either way, I am still delivering with a product that demonstrates my learning in the field of computer programming, regardless of the size of the product.

Besides that topic, I have reached an exact value of 1,237 code lines in my program. I have also talked with my mentor about how to distribute my game to my peers when it is in beta testing/a finished state.

How did I meet with my mentor? What happened?

Last week, I had asked to get an extension of a few more days, since I was not able to have a meeting with my mentor last weekend. This weekend, I made use of the time I had asked for, and had met with my mentor. Like standard procedure, I presented my game as it was at the time, and he had played through the progress I had made. After he had reviewed the state of my game as it was, he had said that everything was fine with the game, and that I should keep going in the direction that I’m currently going in with my program. While it seems that the meeting with my mentor was close to pointless, I asked a question which quickly took the position as the theme of the meeting, and I will address this question in the Beautiful Mind segment of my blog post.

Proof that I am making progress?

In this blog post, I’ll use the same method of proving my progress as last blog post: By sharing a screenshot of my program’s code.

If you look at the bottom right corner of the screenshot, you will see a bit of text that says “Ln: 1237.” This indicates that the line that I have currently selected is the 1237th line of code in the program. This is how many lines of code are in my program. Based on the fact that from last blog post, I’ve made a spike from ~762 to 1237 lines of code. I think that from that information alone, the amount of progress that I’ve made should be evident.

What are some issues that I’m running into?

Since I’ve made a big change with the amount of work I have to deliver by the end of the year, I am feeling much more confident about my program and the quality I can deliver it with. I am also running into less and less technical errors the more I move into my project, which is to be expected. An example of this is when doing an “if-then” statement, is that you have to do “==” rather than “=” when comparing two terms. For example, in the screenshot above, you can see this statement:

if battleInput == “1”:

This statement is saying that if the variable “battleInput” is equal to “1”, then do something. Of course, that “something” is the indented text under that one line. To not dive too far from the original topic, my point is that while I might have made the mistake to only put “=” rather than “==” before, I’ve moved into a habit of using the correct syntax so that Python can correctly interpret my text.

What sources am I using for my education?

My sources have remained the same. I predict that for the rest of my project, I’ll stay with my 5 sources (Programiz, w3schools, Real Python, DataCamp, and YouTube) as I feel that they contain all of the information that I need.

Beautiful Mind: Asking questions

Note: I forgot to record auditory clips of the meeting, so I had recorded some quotes in text.

For this blog post, we were asked to keep the subject of the meeting interesting, and one of the mentioned ways to do this was by asking questions. In my meeting with my mentor, I had asked a question which quickly made its way to the main topic of the meeting. One of the big problems with my game was distribution. The most clear of which was to export the .py file of my game to .exe, so that when someone downloaded my game, they wouldn’t have to download a whole Python interpreter just for their computer to be able to understand it. So, for convenience, I could export my game to .exe and share it with my peers.

There was one main problem with this solution: It isn’t uncommon for Python programs (which have been converted to executable files) to be falsely recognized by many top antivirus’ as a Trojan horse. For those unaware, a Trojan horse (in Computer Science terminology) is when malware, disguised as a normal program to the unaware, is downloaded onto your computer. To convert my .py files to .exe, I am using a simple tool called PyInstaller, which has a method called “–onefile” which essentially takes a .py file and generates a .exe file. The reason that mainstream antivirus’ detect programs like these as Trojans is because of the fact that the generated .exe file has protected variables within the program, which tells the computer what Python terms mean. This is because PyInstaller relies on the user not having Python installed.

Long story short, if I was to share my game as a .exe file, it would most likely get detected as a Trojan, even though it isn’t. Of course, you could always just run the program anyway, but your computer would keep pestering you about how you should take action against the game.

This is where asking questions comes in. During my meeting with my mentor, I had asked him about this dilemma that I had come across, and told him that I could choose one of 3 options: To either make my program a .exe file and ship it out, to create an installer for it (which would install the game in a directory called “Program files”), or to find some alternate file type to convert my game to. After a bit of thinking, he had come to the conclusion that the best course of action was to just convert the game to a .exe file and ship it out, regardless of the false malware warnings.

Well, think about it this way: Your game takes input, right? Any program that takes some sort of input is technically malware since, without the computer knowing, the program could take an input which could harm the computer.

I had then asked him why not to go with an installer. I already had my own reasons for not immediately going with that option, since I had thought my game was too small to have a whole installer for it, but I asked him anyways.

Well, you’re right. Once you get into game development with actual graphics, installers are the way to go, since the game size will be much larger, but right now, your best bet is to just convert to .exe since a game that small isn’t worth that hassle.

So, to conclude this segment of my blog post, and my blog post entirely: I’ve asked a question to my mentor to keep the meeting interesting, and I really think that that question wasn’t a very simple one, like what my game should be called or any simple problem like that, but one that really changes the entire direction of the game.