Mandatory Giant Spider!
If you want to write a Role Playing Game, but don’t know how to program, or just want to learn how to program in C#, then you’re at right the place.
These lessons will take you from a complete beginner, to being an author of a Role Playing Game, for free.
This isn’t the world’s greatest game. In fact, it’s very short and kind of ugly.
However, as you create it, you’ll learn the most common C# programming practices and techniques. Then, if you want, you can improve the game, adding more features and your own special touch to it.
NOTE: If you already know the basics of C# programming (classes, properties, functions, “if” statements, etc.), you might want to look at the newer “Build a C#/WPF RPG” lessons. The code in those lessons is more like how I would write a “real” professional program – using better design and architecture.
One of the awesome students here created a PDF document of the lessons. You can get a copy of it here. You can also download the source code files for the lessons here. Thank you, Mark!
SECTIONS Lesson 00.1 – What is in these lessons? Lesson 00.2 – General information about programming in C# Lesson 00.3 – The parts of Visual Studio Lesson 01.1 – Defining classes and objects for the game Lesson 02.1 – Installing Visual Studio Community Edition Lesson 02.2 – Building the solution for the game Lesson 03.1 – Building the first screen Lesson 04.1 – Creating the Player class and its properties Lesson 05.1 – Creating objects from classes Lesson 06.1 – Creating the remaining classes Lesson 07.1 – Inheritance and base classes Lesson 08.1 – Setting properties with a class constructor Lesson 08.2 – Using class constructors with derived classes Lesson 09.1 – Using your classes as datatypes Lesson 10.1 – Creating collections of objects Lesson 11.1 – Using a static class Lesson 12.1 – Add the remaining UI controls Lesson 13.1 – Functions, procedures, and methods Lesson 13.2 – Creating functions to handle user input Lesson 14.1 – Variables Lesson 14.2 – If statements Lesson 14.3 – Foreach loops Lesson 15.1 – Getting random numbers for the game Lesson 16.1 – Writing the function to move the player Lesson 16.2 – Refactoring the player movement function Lesson 16.3 – Functions to use weapons and potions Lesson 17.1 – Running the game on another computer Lesson 18.1 – Future enhancements for the game Bonus lessons (enhancements to the game) Lesson 19.1 – Scroll to the bottom of a rich text box Lesson 19.2 – Use a calculated value for a property Lesson 19.3 – Clean up the source code by converting foreach to LINQ Lesson 19.4 – Saving and loading the player information Lesson 19.5 – Changing dropdown default values Lesson 19.6 – Increase maximum hit points when the player gains a level Improving SuperAdventure’s code quality by refactoring Lesson 20.1 – Refactoring the SuperAdventure program Lesson 20.2 – Binding a custom object’s properties to UI controls Lesson 20.3 – Binding list properties to datagridviews Lesson 20.4 – Binding child list properties to a combobox Lesson 20.5 – Moving the game logic functions from the UI project to the Engine project Adding a vendor to locations (with buying and selling items) Lesson 21.0 – Plans for adding a vendor to locations Lesson 21.1 – Adding a price to game items Lesson 21.2 – Create the vendor class and add it to locations Lesson 21.3 – Add a button and create its eventhandler in code, without the UI design screen Lesson 21.4 – Completing the trading screen Use SQL to save and restore player’s game data Lesson 22.1 – Installing MS SQL Server on your computer Lesson 22.2 – Creating database tables from classes Lesson 22.3 – Creating the SQL to save and load the saved game data Creating a console UI for SuperAdventure Lesson 23.1 – Creating a console front-end for the game Final refactoring (cleanup) of the SuperAdventure source code Lesson 24.1 – Make the SuperAdventure source code easier to understand and modify New game features Lesson 25.1 – Select a random monster at a location Lesson 26.1 Displaying a World Map Lesson 26.2 – Hiding Unvisited Locations on the World Map
Bug Fixes Lesson 99.1 – Preventing duplicate quests Lesson 99.2 – Setting CurrentWeapon when the player has multiple weapons