Voltaic Overdrive Amplify your Imagination

DevLog 1: First Improvements

Overview

The main goal for the past few weeks has been to get the core gameplay loop nailed down, even if only in its roughest forms. My objectives were as follows:

  • Complete rough outlines of the basic enemy types.
  • Update the user interface for the heads-up display.
  • Set up core functionality to allow easy implementation of player abilities moving forward.

Enemies

There are four main enemiy types that were implemented this week.

Spikes

These are very simple in nature. If a player stands on the spikes for a few seconds, it activates the trap, and they get stabbed.

Corruption

Similar to the spikes, each second that a player stands on a square, it will deal a single point of damage to them.

Grunts

These are simple, mindless enemies that follow the player around the map. They have four main phases:

  • Idle (stand in place, wait for a player to get within their line of sight.)
  • Chase (follow the player.)
  • Direct chase
  • Attack
  • Search.

What makes these enemies interesting, is that they do not directly follow the most direct path to the player. Instead, they head towards a point, usually within one tilesize of the player. This is to avoid bunching up around the player. As they are mindless enemies, it is quite fitting to not have them be the smartest. Once they are within two tiles of the player, they switch to their direct search, where they actively move to the closest point to the player. At this phase, they attack every second or so, dealing a small amount of damage. If the player is lost, then they simply search for a few seconds, before returning to their idling point. What could make these enemies more interesting in the future, is to potentially have them return to their starting square once the player is completely lost.

Turret

The turret is my personal favorite implementation that has been made. When a player is within range, it launches a volley of shots directly at them. A total of 5-6 shots are created in short succession, before it has to “reload” to send out another volley.

User Interface

At this point, the ability for up to four player cooperative play has been implemented. As such, local splitscreen has been tested, and works quite well for my needs. At this point, I do need to find a way for a designated player to be locked onto for being attacked. What I will most likely end up doing, is creating a helper class that can be used to determine the nearest instance of a player, which will then set a local variable for the “target,” so to speak. As I am using behavior trees via finite state machines, this is a simple implementation that can be knocked out in perhaps less than 15 minutes.

Player Abilities

This was my most recent task for the day, and was quite simple to do. At this point it is simply creating the scripts for the abilities, and assigning them when the player object is instantiated into the scene.

Recap

I have attached a GIF below of the simple pathfinding and basic state machines that are in place. Along with it, the system that I use to generate a grid for the pathfinding can be seen. (Green squares are safe to move on, red are not.)

Image

All in, it has been quite the fun exercise this week. My goals for this week are as follows:

  • Implement helper class for setting the current “target” to search for.
  • Add two new enemies to the game.
  • Add basic bloom/lighting fx to the game.
  • Add additional abilities for players.
  • Set up system for handeling enemy damage.
  • Review bugs of current items to iron out.

With a few additions and a nice review via user testing, I should be able to make a nice amount of progress for the coming week.