'Magno Sheep' is a Sumo style game where you must push all other Magno Sheep off to win. HOWEVER, You have Magnetic Abilities, allowing you to switch polarities, and create magnetic impulse blasts.
This was a solo project that I created in 3 days as part of a job application. Although this was another short term project, I really learned a lot from the experience given the feedback I recieved.
When I realised I would be doing a PVP game, I quickly realised I would have to create functional Enemy AI for singleplayer. I first thought to use Unity's Navmesh agents, yet this came with a problem... NavMesh Agents can't be affected by Physics in Unity. This wouldn't work for a game that is highly physics based and involved blasting enemies off the edge. Enemies still need to navigate around obstacles though, so I developed a system whereby each enemy has a NavMesh Agent that it is loosly moving towards. This way, enemies can be pushed around a lot, but they still loosely find there way around.
For this game, I knew I wanted the player to have an arsenal of magnetic abilities to take down foes. So, the player can switch polarities, and impulse blast. So, this meant I had to create a physics system whereby all sheep are magnetic, and opposites attract, and so on. So for this I just used Explosion Forces in Unity and Physics Overlaps to find the other nearby magnets. Impulse blasts dramatically increase the force and range of the current magnetic interaction. Switching polarities simply swaps round the magnetism of the player, resulting in a game of cat and mouse with some players trying to repel each other and others attempting to attract to stay alive.
For this game, I also had to design stages in a short time. During this process, I had a few limitations to consider. My enemy AI system worked in a way where the stage had to be circular, because the enemies stop moving towards their navmesh agent when outside the range of the stage. So I created a few stages that contained varied obstacles and enemy types, I also had static magnets to play with, which made for a few interesting interactions.
For this game I added local multiplayer, so you can player against your friends (or your enemies if you need to settle a feud). This was surprisingly simple to acheive, I just needed to define a position for player 2 to start on for each stage rather than the enemies, then a variable in my Game Manager to check which mode you're in when a stage is loaded. I also just created a simple "share one keyboard" system, where player two's controls mirror player 1's but on the right hand side of the keyboard.