This was a project I worked on during an internship. This project was made by only me as a developer and another intern as a tech artist. I worked on this project for about a month before I had to pass it on to the next group of interns as my internship period was nearing its end.
The game itself is a VR wave survival shooter. Earn points by shooting and killing mummies and use these to upgrade your guns to survive as long as possible.
These pictures were taken during only my own development period and might not fully represent the final product.
This game features enemies that have to navigate towards the player to attempt to hit them. Navigation of enemies was done with the standard Unity navmesh and some tricks to make them behave properly, it is not flawless but worked for our purposes.
One of the tricks I used to prevent the agents of trying to walk through each other was by turning a navmesh agent into a navmash obstacle when they reached the player. Doing this made other enemies walk around each other so they could properly surround the player.
The entire system of spawning enemies and waves was made from scratch, it works on a request based system to make the enemy spawns a bit more random. There were set spawnpoints around the map that could poll the main class that is responsible for spawning enemies to ask if they could spawn one, the main class would check if there are not too many enemies on the map currently and if there should be more spawned this wave at all. Whether the spawner could spawn an enemy or not, it would set itself on a random cooldown between about 1 and 2 seconds until it would try again.
The upgrade menu was made to be dynamic and easily editable. If more tiers of a specific upgrade were desired they could easily be added by changing a number, the actual effect of these upgrade tiers would automatically be calculated so everything scales nicely.
The prices of each upgrade tier were also dynamic as in that the price is always set between 2 set values and scaled between those values based on a unity animation curve. If this curve were to be made steeper the later upgrades would be way more expensive than the previous ones. If the curve would be made into a line the price increase would be lineair.