For my Game Tools course I will implement an enemy manager tool that will help level designers through the development process of Empyreum Ascension. This tool will basically allow them to spawn individual or groups of enemies in any location in the scene of the game.
How will it be used?
The script will be attached to an empty game object. In order to select the spawn location, the user will need to click on the position where a gizmos shape will appear. The user will also be able to specify how many enemies will spawn within a set radius for each location. Additionally, there will be an option that will expand the editor uncovering a number field for each pre-set type. The user will be able to use these to mix pre-set types. They could spawn 2 heavy armor soldiers and 5 normal soldiers as an example.
When enemies spawn, there will be a red bar that will appear on top of the enemy indicating their health points. I believe this will be useful when testing player attacks on enemies. Health bar will only appear on scene for debug purposes.
Designer will be able to instantly create an enemy model using a button through the inspector. There will be two pre-set types: Normal soldier and Heavy Armor soldier.
Movement speed: Average
Weapon Type: Blaster
Heavy Armor Soldier
Armor: Heavy Armor
Movement speed: Slow
Weapon Type: Blaster
In case the designer wants to change the preset values, they will be able to do so by pressing the customizable button. This will allow the following fields to show up:
- Health points
- Armor Type
- Damage points
- Weapon Type
- Movement Speed
- Firing Rate
Steps for creation of tool
- Implement an Enemy data class.
- Implement click event and draw gizmos at the location where player clicks.
- Create a custom list class that stores each location and allows the player to set a radius value.
- Include a field that will allow the user to set enemy model.
- Implement spawning event.
- Include health bars on top of spawn enemies.
- Implement pre-set types of soldiers and also make sure that unnecessary fields/options are not effective when player uses these.