Interaction and Scripted Enemies

Get the starting game and try it out. It is a simple, not fun at all tile-based overhead combat game. You and one enemy, whoever runs out of health first loses. WASD movement, click to attack in the direction of the mouse.

First Iteration starter repo: https://classroom.github.com/a/ym3I4FNr
Second Iteration submission repo (empty): https://classroom.github.com/a/UdkbOZyz

Starting with the base game, your job is to make it more fun. Specifically, you must improve the given enemy and at least one more enemy that differs in actions and behaviors.

We are focusing on the enemies here. Obviously, you can make the game more fun by enhancing the player as well, and things you create for the enemies can also be used by the player. There are four types of changes that you can make:

Actions

It's hard to make diverse, interesting enemies if they all interact with the player in the same way. Having different actions (attacks) that the enemies can perform gives you more to work with.

Behaviors

Given their set of actions, the enemies have to decide how to fight you. They are typically simple and reactive, but there is still a wide space of variations to create different experiences.

Systems

To support different actions and behaviors, you may need to add other systems. Entity resources like stamina or ammo. Stats like attack power or armor. Statuses like knockback, slow, and invulnerability. Combos. Focus on things that change during combat, since we’re not doing long-term upgrades here.

Aesthetics

Images, sounds, theme all matter. They significantly change the player experience. Feedback is critical. Apart from basic feedback (make sure they know they were hit!), we’re not focusing on these elements in this class. But you are always welcome to do some of this because it’s fun and makes a big difference.

You are welcome to change the map also.

Design Exercise

We didn't do these in class this time, but they are fun and I recommend this as an approach to figure out what changes you want to make.

  1. Brainstorm at least 10 different actions that the enemies might use. At least 3 must be non-attacks.

    Give enough detail to capture what is mechanically different about each action (e.g. targeting, windup, hit mechanics, telegraph, cooldown) as well as systems needed to implement it (e.g. building up combo points and then using them, putting a trap on the ground that blows up later).

    e.g. Quick Strike: A quick, light hitting, long range melee attack that shoots out in a line from the player. Instant cast, does not move with the player or lock the player in place. Short or no cooldown.

  2. Brainstorm at least 5 player stories about an interaction between the player and an enemy. Describe what happens action-by-action, paying special attention to what choices or skill challenges the player has that impact winning or losing.

First Iteration

For the first week, improve the given enemy and add a second enemy.

  • For the given enemy, you must at least change their behavior.
  • For the second enemy, you must add at least one more action and change their behavior.
  • Implement whatever systems are needed to support those changes.
  • Whatever aesthetic changes you want to make. Aesthetics are fun!

Document the changes you plan for each enemy with player stories and action descriptions. Fill in this iterative_improvement_worksheet.docx and make sure to commit it with your code.

Second Iteration

For the second week, add a third enemy. If you did not complete the first two, do that as well.

  • For the third enemy, you must add at least one more action and change their behavior.
  • Update the improvement worksheet to detail the third enemy (copy the second enemy section).
  • If you finish or improve the first two enemies, update the improvement worksheet for them also.