What is In-Depth?
In the TALONS program, the In-Depth project is essentially the defining project of all of TALONS. It is a project that spans about 5 months, where you are able to learn about any field you want (preferably a field that you are not already a master of) and are able to go, as the name suggests, in depth into that field. The goal of the In-Depth project is to have learned a great deal of information about your topic by the end of the project span. If you have learned enough about a specific topic to do an entire In-Depth project about it, you can consider it a topic well-learned. Along with making your own efforts to learn for your project, you are also tasked with finding a mentor who can help you learn about your topic even further (at least 1 hour every 2 weeks), and to aid you in times of need.
What is my In-Depth field?
My In-Depth field is computer programming, specifically the “Python” programming language. I will program a “text RPG” (role playing game) game in Python, with a story, battles, levelling system, etc.
Why did I choose this as my field?
I have already started learning the very basics of Python, and to create a game is, what I think, would be a great way to learn a lot more about this field! I have a great interest in how computers work and think, as well as the development of games, independent of the genre. Developing a game will not only be a test on my programming skills, but many other interrelated skills such as writing to create a solid plot, or mathematics to create functions like damage systems or the levelling system. I am already considering pursuing computer programming for post-secondary education, so I would love an opportunity to get a good start into the world of programming, as I also believe that learning to program at a young age teaches you how to think.
I have chosen Python specifically because it is easy to learn and has many simplified functions. Python has syntax that is easier to read and removes a lot of troubles that come with programming such as memory management, pointers, and structures. Of course, everybody should learn these some time, but it’s good to keep it out of your conscience when learning your first programming language. I have also heard from multiple sources online that the learning curve with Python is smaller than the majority of other languages (of course, this all changes after you learn your first language). Python is also built in such a way that it is the most readable of all the languages, in the sense that it is the closest to natural language. There are also many different routes you can take from Python, such as web development, machine learning, and more.
The reason I have decided to make a game rather than to program an app or calculator of some kind is because not only do I think I can go further with making a game, but that I’ll simply enjoy it more. I really enjoy video games, and not just playing them. I’m interested in their development process as well, and I think that it’s amazing that I have a chance to create my first very own video game!
For the end of this project season, I wish to:
- Have made a text RPG game akin to the Final Fantasy video game series
- Learn and understand how to create a game, not completely limited to this own genre, including the mathematics behind it, the logic behind it, and the plot and story behind it
- Learn more about the Python language
- Possibly build a starting point for a programming portfolio
- Give others the gift of enjoying a video game
How and when will I do this?
We were each instructed to create our own individual timelines for our projects as a part to prepare for the learning experience. My timeline is a bit simplified, but it gets the idea out on what I will be working on at what time. Here is my In-Depth timeline:
|Program the title screen of the game since the title screen does not have anything to do with the plot of the game.||December 19th, 2020|
|Come up with the basic plot of the game. More detail will be added later while programming but will be noted in a document for further repetition.||December 22nd, 2020|
|Program each chapter of the game keeping in mind the plot planned previously while also adding plot points progressively.||May 17th, 2021|
|Play through the game, paying close attention to bugs, compiling errors, typos, etc.||May 31st, 2021|
|Export the game to .exe and share with peers to see if they catch any mistakes that I miss.||June 14th, 2021|
As you can see on this table, I’ve already finished the first 2 of 5 tasks, but I am currently and the, as expected, most time-consuming task. The 5-month long period that I have given myself is supposed to accommodate for the programming, creation of additional minor plot, and of course, the learning along the way.
As I have previously stated, everyone doing an In-Depth project needs a mentor to help them along the way, and I am in a fortunate enough position to have a close relative, my brother, be studying in this very field. My brother is currently studying in the field of computing science at Simon Fraser University. Python, as it so happens for him, is his “main” language, and the one that he excels at. Since we are siblings, it will be very easy to find time for learning sessions, so I can be very efficient at working on my project.
To track my progress
I have created a word document to log my work on the game for every day that I work on it. Of course, I will not be mentioning any important spoilers to the game, but in the document, I will log every day that I have worked on my game as well as what I have done to it.
What will I need help with?
When exporting the game to a .exe file, I will want to add some sort of logo or cover art to the .exe file for my game. I am also coincidentally in the Drafting 9 class, and since I am a student, I have permission to download Autodesk AutoCAD to create such a logo. Drafting 9 will give me the tools to create a good logo or cover art, and in that field, I think I am very lucky to be in such an opportunity. Other than that, there may be some technical errors in my code in which I can ask for help from my mentor. I can also share my finished game with my peers and ask for help to see if they find any bugs or typos.