I have always believed that restriction is the cause of innovation, I wanted to create a 2D game with unity game engine that is very simple to understand yet very difficult to master. I have created a tower defense game with a player in game. The user can move the player around the screen and perform different actions, such as picking up and placing towers. There are waves of enemies that come and follow a specific path to reach the other side of the map. The main objective of the player is to prevent these enemies from reaching by destroying them with the help of towers. Here is the catch, the enemies when destroyed drop coins that the player has to pickup to buy new towers, but the projectiles of the towers the player places also damage the player himself. The user is stuck in a dilemma, if you place too many towers close together you can destroy enemies easily but it becomes hard to collect coins from them (the towers will destroy you easily too!) on the contrary the towers placed well - spaced would let the players collect coins easily but may let the enemies pass through.
Import this project into your Unity Editor!