Lesson 02.1: Planning the Game

 

Before writing your program, you need to know two things:

  • What the program needs to do
  • What the user interface should look like

 

Because we’re building a simple game, we don’t need to be very detailed. But, we do need to do some planning.

 

Features of the game

These are the things I want the player to be able to do in the game.

First version

  • User can create a player
    • Different classes (different bonuses for each class)
  • Player can move to locations
  • The location might have a monster to fight
  • If the player defeats the monster, they receive:
    • Experience points, gold, random loot
  • If the player loses to the monster, they:
    • Return home
    • Are completely healed
  • The location might have a quest
    • Completing the quest requires turning in an item
      • Item is from monster loot
    • When the player has the quest completion item, and returns to the location where they received the quest, they receive:
      • Experience points, gold, a reward item
    • The location might have a trader
      • Player can buy/sell items
    • Player can save/load game

 

I created a second group of features, to add to future versions of the game.

When working on any program, you want to work on the most important parts first. For this game, it’s all the features listed for the first version. That will give us a basic, but playable, game.

Notice that some of the items have question marks. Those features are ones I don’t know exactly how I want to implement them. I’ll decide on the details when I get ready to write the code for them.

 

Future versions

  • Add automated tests of the code
  • Support multiple languages
  • Improved graphics (J-RPG style?)
  • Player can learn crafting skills, to create items
  • Crafting requires recipes? Levels of crafting skill?
  • Player can learn, and use, spells
  • Scrolls? More potions?
  • Add armor
  • Add magic jewelry
  • Ability to enchant items
  • Add pets
    • Helps in combat? Heals? Attacks?
  • More complex combat (apply armor/weapon/jewelry/potion/spell bonuses)
  • Populate world (locations/monsters/items/quests/etc.) from disk (files or database)
  • Game Creator app, to let people create their own locations/monsters/items/quests/etc. without writing any code (the app creates the files or adds to the database)

 

User interface of the game

After deciding what features the game needed, I drew the screens on paper. This is the fastest, and simplest, way to experiment with how you want the program to look.

I don’t have the scanned images, but this is what a test version of the game looked like.

Screenshot of WPF game screen

 

The player’s information is in the upper-left. The lower-left will show their inventory and quests. The lower-right will have the movement and combat controls. And, the large upper-right section will show the player’s current location, current enemy (if they are fighting a monster), and the game messages.

 

The game world

For the first version of the game, we’ll create a small world. This is a map of the locations in the world.

Screenshot of game world

 

There are only nine locations in this map. But, we the player can encounter monsters in three of them, get quests at two of them, and trade at one location. This will give us a good start, and let us test all the features we need for the first version of the game.

 

Now that we have an outline of the game, we can start creating it.

 

Return to main page

 

Leave a Reply

Your email address will not be published. Required fields are marked *