Outline for “Learn C# by programming a simple RPG” guide

 

Here is what I’ve come up with for the basic outline of the guide. This will almost certainly change as I build it, but I think it is pretty close.

If you have any ideas on what you’d like to see in the guide (from a programming or game point-of-view), please leave a comment.

UPDATE 22 May 2014: To see the lessons, visit the “Learn C# by Building a Simple RPG – Index” page.

  • Define the game we’ll build
  • Installing Visual Studio Express 2013 for Windows Desktop
  • What is a program?
    • Compare with a recipe (ingredients = objects, cooking steps = procedures)
  • What are objects/classes?
  • What is procedural code?
  • Importance of clear naming
  • Creating the solution in Visual Studio
    • Create multiple projects (UI, business logic)
      • Default files
    • Set reference from UI project to engine project
  • Creating the character class
    • Naming classes, properties, and methods
    • Scope (public/internal)
    • Properties
      • Datatypes (string, int, etc.)
      • With, and without, backing variables
        • Private/public scoping of properties and backing variables
    • Start with Name property only
      • Set without constructor
      • Set through constructor
        • Importance of matching casing of parameters/properties
    • Add other properties
  • Create the simple UI
    • Character creation screen
      • “using” statement to Entities
    • Game screen
      • Character is passed from character creation screen
      • Display values in labels
  • Creating the item class
    • Items that can have items inside of them (chests/bags/etc.)
    • Introduce base classes and class interfaces
  • Creating the location class
    • Need minimum level to enter
    • Need specific item to enter
  • Creating a monster class
    • Create abstract ‘Creature’ class
      • Maximum/CurrentHitPoints properties
      • Attack method
    • Have Character class use this as a base
    • Add List<Item> for inventory
  • Creating, and populating the ‘world’
    • Static class/methods
    • Constants
    • Connecting locations to each other
    • Adding items
      • List/collection
  • Simple UI forms
    • Character name entry
      • Drag-and-drop controls (label, textbox, button)
    • Create Game UI form
      • Add in simple controls
  • How to use the debugger
  • Moving around in the world
    • Switch statement
  • Adding items to inventory
    • Limited inventory space
    • Stacking items (different quantity for different types of items)
      • Constructors in derived classes
    • Use of items – determine with class interfaces
      • Weapons
      • Armor/clothes
      • Consumables (food/potions/etc.)
    • For, foreach and if
  • Crafting complex items (items that use other items)
  • Creating creatures
    • Random numbers for hit points
    • Move HitPoint label display to shared method
    • Loot table for each creature
    • Move Gold label display to shared method
  • Fighting creatures
    • Compare attack skill against armor class
    • Random numbers of damage
      • Math.Max
    • Add experience
    • Increase character level
    • Collecting loot items
  • Using potions/foods
    • Update fighting code to allow using potions/food
    • Save/read settings to file on disk

     

Leave a Reply

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