The Good Few
GitHub
- Roles: Lead Programmer
- Time: 10 weeks
- Engine: Unity3D
- Language: C#
- Genre: Turn-Based Strategy
- Team Size: 5 (1 programmer)
- Data: 2017
During this project I was the sole programmer and made every system in the game. Below I’ve mentioned a few systems I would like to highlight.
Skill Creation
- One place for all the information
- Extendable
- Drag and Drop to implement
I created a container for the data related to the skill. This contains everything from the name and a description, to the icon and sound effects. When more information was needed by the systems (for example the range of a skill) it was easy to extend the container. The main way to implement this asset in the game was to drag and drop the asset into lists of skills.
Using the skills
- Convenient access to information with the skill assests.
To use the informaton about the skill I just hade to read from the asset. All the information was gathered in one place.
Level Design Grid
- Visualize the level in realtime
To design levels I added a grid that showed the walkable tiles. If an area were supposed to be blocked we used a components that made those cells unwalkable.
Interaction Grid
- Procedural Mesh
- Grid follows terrain
- Analyzes the surroundings
To show the interactable cells I created a simple texture and generated a mesh. The mesh changes size depending on the distance the character can reach with different abilities or walk distance. I adjust the vertices in the y-axis to not clip the ground. To differentiate between friendly units, enemy units and empty tiles I generate submeshes and apply a different color to the material.
Small UI Components
- Separated the "UI component" and the system that updated it to make it easy to set values
- Event-driven updates
I separated the component that updated the visual UI with the logic that sends the information. This did create a bunch of components but also separated the code into smaller classes.