Initial Goals

The initial goal of this sprint is to add three basic resources to the player. These resources are health, mana, and stamina. Lets break those down and discuss what they do.

  • Health – This is a measurement of how healthy, or alive you are. When you run out of it, you die.
  • Mana – This is a measurement of how much magical capacity you have. When you run out of it, you cannot use magic.
  • Stamina – This is a measurement of how much physical energy you have. When you run out of it, you cannot use physical abilities.

This is a good start, but what exactly is going to change with this sprint. How will the game change?

  • The player will receive a certain amount of health, mana, and stamina when their character is created.
  • The amount of these resources depends on the race and class.
  • When the player is logged in, they can see their health, mana, and stamina in an extremely simple UI (because we’ll do a UI overhaul in the near future).
  • When logged in players will see the health bars above characters (your own, and others).

Ramifications

As I’m typing this, I can already see there are some ramifications with these changes. The health bar UI component is going take a good deal of work. I would estimate 50% of this scope is going to be related to the health bar UI. Lets try to discuss the health bar a bit:

  • The health bar is a bar that sits above or below the nameplate of a character.
  • The health bar is filled with a solid color.
  • The health bar fill color ranges from green (at max health) to red (at low health).
  • The health bar will only be visible when nameplates are also visible.

Something to keep in mind is that the health bar (like the nameplate) should be designed so that it can work for monsters as well as players.

Another interesting note is that I won’t be building any of the actual functionality of losing or gaining resources in this sprint. That is to say, I won’t be tying all of those functions like “doPlayerAddHealth” or “OnCreatureLoseStamina”, into the Event System. Those would bloat this scope, and there’s no good way to trigger them yet, so there’s no reason to build this functionality yet.

Scope

Now that we’ve though through some of this, lets try to put together a comprehensive list of everything that needs to get done. For the sake of simplicity we’ll just call health, mana, and stamina as resources from now on.

  • Come up with a simple table that shows the starting resources of different classes.
  • Add resources to the player object.
  • Add resources to the database.
  • Add resources to the network objects.
  • Manage the saving, and loading of resources when the player logs in, or logs out.
  • Create a health bar component that updates itself on the client side to reflect the current health.
  • Make sure the health bar is displaying at the correct location.
  • Make sure the health bar is only being displayed when the character is also visible.
  • Add a simple UI window to show current resources.
  • Test the UI elements to make sure they are displaying correctly.

Okay, so that looks pretty good for our initial scope. Lets hope it stays this way this time. ~fingers crossed~