In Depth Introductory Blog Post

My Chosen Skill

For my in-depth project I have chosen to learn game design. I will be learning how to design a 2D video game using a program called Unity. I will be learning how to create a game, including all of its assets, as well as how to code its various game mechanics like collision, projectiles, NPC behavior/pathfinding, etc.

The Rationale Behind My Choice

I play my fair share of video games, and subsequently, game design has always slightly intrigued me. From the time I picked up a controller for the first time, it has always hung at the back of my mind, and has recently resurfaced in light of the in-depth project. How convenient. In addition to my pre-existing interest in game design, a number of my friends also are aspiring freelance game developers and are thinking of collaborating. I do not want to miss out of my fair share of the guaranteed masterpiece that will inevitably be created. What a convenient opportunity to learn this skill.

My Goals

My goals for this project are to obtain mastery over the program, being able to navigate its various tools and functions with ease, to learn the C# coding language and use it to code a game, and be able to code a variety of game mechanics. I will be able to do all of this unassisted, with a reasonable degree of quality.

My Mentor

My mentor is my father, who is a software engineer. He has previously worked at Ericsson, the leading supplier of 5g networking equipment to the U.S., and is currently working at Arista, who provides cloud networking equipment for corporations like Facebook and Amazon. He has 25 years of leadership and management experience under his belt with a Bachelor’s degree in Electrical Engineering and holds several patents in computer networking. I will be meeting with him every Tuesday, but as we are family, the meeting times are very flexible. I will be using a combination of his computer science expertise, Unity tutorials, and other online resources to help me firmly grasp the many concepts I have yet to learn.

My Plan Outline

In my first meeting with him, he confirmed my fears that my plan was far too ambitious (a product of inexperience), and would take an unrealistic amount of diligence and dedication, that I’ve not the time to spend. Thus, he set my sights on a much more realistic goal, with a similarly realistic plan of approach:

In the first 3 weeks, I am to learn how to navigate the Unity program, and the basics of the C# coding language using one of Unity’s tutorials.

In the next week, I will learn how to create the player character, and how to script in an event loop with player movement without a maze for the player to navigate through.

In the next week, I will create a maze into my game, and add object collision, effectively creating my first physics system. This will prevent the player character and other objects from clipping through walls and such.

In the next 2 weeks, I learn how to allow my player to use a projectile-firing weapon. These projectiles will have be able to detect collision with walls, objects, and other in-game characters.

In the next week, I learn how to make non-player character (henceforth, NPC) movement, as well as pathfinding using an algorithm known as A-Star.

In the next week, I will complicate NPC behavior by adding attacks to their movesets, specifically projectile weapons of their own.

If there is any time afterwards, I will polish my game, and add more weapons, a particle system, and more enemies kitted out with different movesets and behavior patterns.

By the end, I will have a fully playable 2D game with fully functional projectiles, NPC behavior & movement, and collision.

I am very much looking forward to what I can learn and achieve under my mentor’s tutelage. I hope that after so long, I will finally learn the skill I have subconsciously yearned for so long, ridding myself of a particularly persistent proverbial mosquito.