As part of the Video Game Design course offered at Michigan, our very first project was to recreate the first few levels of a classic video game from the ground up, including writing our own physics engine (we were not allowed to use Unity's built-in physics engine).
My partner and I chose to recreate Metroid from the NES, a side-scrolling shooter/platformer popularized by its sprawling level design and unforgiving difficulty. Although the focus of the project was entirely on getting the mechanics of the game to feel like the original, we decided to go the extra mile to make it appear as close the original as we could. This included placing each block by hand, grabbing sprites for every frame of animation from an emulator, and putting it all together to create as faithful of a remake as we possibly could.
In addition to recreating the beginning of a classic game, we were also tasked with coming up with and implementing a custom mechanic for the game, and a level to demonstrate that mechanic to the player.
I learned a lot from this project, considering it was my first real foray into game development, including how to work within Unity, how to function as a small team, and valuable time management skills.