Alexander Lövberg

Game Programmer

The Good Few

  • 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.