Rogue C# – Official Project Page

Welcome to my latest programming tutorial – Rogue C#!

This is a demonstration of Microsoft’s C# programming language that I’m developing right here on In this tutorial, we’ll work through the process of creating a role-playing game (RPG) in C# based on the classic game of Rogue. Throughout the chapters, I’ll show you the code and explain the ideas involved so you can follow along and customize your own roguelike game.

On this page, you’ll find links to all the lessons along with supporting information, resources and updates on the progress of the project itself.

Download the Code

The latest code for the project can be found on Github.

Table of Contents

View the latest chapters by selecting the Rogue C# Series category from the categories list or start from the beginning in the Table of Contents below.

  • New Tutorial Series – Rogue C#
    Introduction A few years ago, when I was teaching a college course in database programming, I remember one of the students looking at a sample program and wondering out loud “How does anyone actually put […]
  • Choosing a Programming Language
    What language should I learn? That’s the first question that I often see from aspiring programmers which is understandable.  With all the technologies out there, it’s easy to get lost in all the choices and […]
  • Writing the Program Requirements
    One of the most important tasks in software development is defining the software requirements – in detail. Architects have blueprints, writers develop outlines and smart programmers get an idea of what the finished program is […]
  • Working with ASCII Graphics in C#
    A little history … In 1980, when Rogue was first designed, the world of computers was largely non-graphical. If you went into a computer lab, you would see rows of green (or amber) monochrome, monospaced […]
  • Rogue C# – Creating the Game Project
    The original Rogue game was created as a console application that used a C programming library to control the character placement on the screen. At the time before Windows, there was no such thing as […]
  • C# Form Controls and Properties
    Visual Studio provides a wealth of controls that you can use in Windows Forms apps from buttons and text boxes for displaying information to combo boxes and menus for providing choices to the user. Each […]
  • Algorithms
    Generating the map is pretty much central to everything else in a roguelike game so we might as well get it out of the way first. It’s also one of the most challenging parts. Before […]
  • Rogue C# – Working with Classes and Objects
    In the previous chapters of the series, we setup the main form for our roguelike game; now it’s time to add some code. C# is what’s called an object-oriented language, meaning that it makes constant […]
  • Using Constants in C#
    The MapLevel class that we added in the last chapter will contain all the code for actually generating the random map, including the hallways, within the 80 x 25 area assigned to it using specific […]
  • Class Properties and Constructors
    In a previous chapter, we added the MapLevel and MapSpace classes to our game project and, in this chapter, we’ll add some class properties and the code to actually create objects from those classes. Along […]
  • Creating Roguelike Map Rooms
    Now that we have some supporting classes and constants, it’s time to start generating the map for our roguelike game. This chapter is loaded with new concepts for beginners. You’ll see examples of: It’s time […]
  • Enumerations and Dictionaries in C#
    In the last chapter, we got the measurements for the rooms on our game map – now, we need to plot them to the array itself. First, we need just a little bit of supporting […]
  • Concatenation and the StringBuilder Class
    Now that we have the beginnings of a game map, it’s time to see the output. In fact, the next step of generating the hallways would have been impossible without being able to debug them […]
  • Connecting Rooms on the Game Map
    Completing the hallways on a roguelike map is one of the most challenging parts of the game and it goes back to what I said in an earlier chapter about teaching the computer to do […]
  • Rogue C# – Verifying the Game Map
    If you’ve read the previous chapters in this series, the process of creating a roguelike map has probably seemed like a long one but, along the way, you’ve seen demonstrations of many features in C# […]
  • Rogue C# – Building the Class Structure
    Now that we can consistently generate a roguelike game map, it’s time to make that map part of a larger game and we need a couple more classes. First, a Game class will manage the […]
  • Rogue C# – Gold Rush
    If you work as a programmer, you’ll often find yourself adding features to existing software that someone else created. This means getting familiar with the code and making selective changes in a way that won’t […]
  • Responding to Key Events in C#
    One of the recognizable features of the original Rogue game was the long list of key commands that the player used for all actions, from the arrow keys for movement to “i” for inventory, “r” […]
  • Rogue C# – Wandering the Map
    In the last post, I showed you how to work with key events in C# and got the program responding to the four directional keys, even if it was only to say they were pressed. […]
  • Searching a C# Array with LINQ
    In the last chapter, we added some extra detail to our roguelike game map by specifying separate class properties for the map elements, the items on the map and the characters walking the map. This […]


Add a Comment

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