Gameplay & Systems Programming

This is a tool used for testing in engine allowing developers to easily adjust the players states for balance testing as well as bug testing.


Created for ease of testing allowing developers to dynamically adjust values at runtime without opening editor menus and searching for relevant values. 

This is an example of one of the tools I made to be used by the Level Designers where they can easily swap the type of an item and the mesh, as well as any relative values of that object are updated automatically to reflect the new item’s type.

 

 

For Example, each of these primitive shapes represent a different item type that the player can pick up.

 

By changing the item type from the dropdown menu the objects model and scripts are updated to reflect the new type while still keeping the objects position in world space.

 

 

Other values that can be modified include: the size of the item in the players inventory, the items sprites, healing or ammo values, and if the item is a key.

 

This allows for easy customization of items and balancing in world space. 

An added benefit is the tool supports item randomization.

This is an Item and Door randomizer tool I made as an unlockable game mode to add replayability to the game.

 

The player will be able to adjust the level of extent they want the game to be randomized too.

 

They can randomize specific pools of items amongst themselves, or combine them all into one all encompassing pool. As well as randomizing the resulting door the player is sent to when interacting.

 

The control of having an editable seed allows the player the option of recreating the randomness themselves or to share with others.

AI

The AI has 7 States that are chosen between based on the location and range of it's target actor.

States

Passive:
Wait at your current location for set period of time until interrupted by another state.

Sleeping:
Walk to the predetermined sleeping location and once there become passive.

Attacking:
When within attack range begin attacking on cooldown.

Chasing:
Pathfind to the target's location and once within attacking range change states to attacking.

Stunned:
Interrupt all current actions and wait a determined amount of time before resuming.

Searching:
Pathfind to a location determined by the AI's senses in an attempt to find a target actor.

Dead:
Cease all actions and stop state machine logic.

The AI behaviour in this example is for an enemy made of “mold” with below average intelligence. 

It’s behaviour is determined through the management of it’s 3 senses: Sight, Hearing, and Damage.

 

Senses

 

Sight:

  • The enemy has poor sight so it can only sense other actors when they are within a close cone of vision.
  • Visualized by the green vision cone in the direction the enemy is facing.
  • The green orb around the player represents the last remembered location of the player within the AI’s vision.

Hearing:

  • The enemies hearing is its dominant sense and is represented in a radius.
  • Visualized by the yellow circle.
  • Any sound within the yellow range will become a location the enemy will pathfind too in an attempt to seach for the player.

Damage:

  • Any damage to the enemy within the radius visualized in red will enter the AI into it’s combat state and reveal the location of the inciting actor.