Project maintained by ninim00n Hosted on GitHub Pages — Theme by mattgraham

Programming My First Video Game in Unity

For this project, I decided to learn how to design, program, and render my own video game in Unity. I decided on creating a 2D game with the illusion of depth, meaning that the player character is capable of moving in all directions on the X and Z-axes and also jumping. The gameplay focuses around platforming, exploring the environment, and clearing multiple levels of enemies.

Engineer School Area of Interest Grade
Inan Fahmid Choate Rosemary Hall Aerospace Engineering Incoming Senior

Headstone Image

Working Game Demo

Working Game Demo

Some small snippets of the player code:

Sample Code

Sample Code 2

Final Milestone

For my final milestone, I finalized my player interaction with the enemies and the environment. I incorporated health for both the enemies and my player, as well as hitbox detection and corresponding damaged and death animations. Because of the time constraints, I was not able to incorporate every single element that I originally intended to include. For instance, there is no practical platforming sections in the finalized game demo, although all the components to incorporate platforming do exist within my code and game assets. The code I’ve created is generally universal between the enemies, and able to be applied with miniscule changes to some lines of code that identify which animations to play when hurt or killed. Considering that the average game takes months or even years to develop with a whole team of people, I still feel that I accomplished a lot in my 3 weeks and learned many crucial aspects of game design and Unity overall.

Final Milestone -- Demo

Second Milestone

My second milestone involved incorporating parameters for the player and enemies in terms of movement, detection, and basic combat. After completing this milestone, my enemy sprites were capable of detecting the player within a certain radius and chasing after her, and they can further trigger an attack animation when the player is within an even smaller radius. I was not able to fully incorporate health and death in this milestone, but I gained a better grasp of many aspects of C#, and many of the pieces of code that I compiled for this milestone were of my own design as opposed to having been taken from tutorials. While there were still many errors and troubleshooting sessions, this milestone left me with a much better understanding on player interaction with NPCs and the game environment, and how to use Unity.

[Milestone Two -- Enemy AI]

First Milestone

My first milestone was learning the basics of programming and using Unity, which I did through a variety of Unity tutorials, watching videos of basic game-development concepts, and consulting the help of my instructor. I decided to solidify my understanding of Unity’s built in physics, interaction systems, and general processes before I jumped into making full levels. Whilst learning to use Unity, I managed to figure out the basics of C# (Unity’s primary programming language), learned how to render sprites and create animations, and transition between different sets of animations. I created a controllable player character and I also understand the basics of how to create interactable, physics-based levels and background objects. My next milestone is most likely going to be based around learning how to code enemy AI, coding enemies to recognize and target the player when in a certain range of each other, and implement simple combat with a health system. I would also like to work on creating floorplans of some levels using the assets I have in Unity.

Milestone One -- Player Movement