Create Games With C# & WinForms (step by step for beginners)


Updated on

Course overview

Course type
Paid course
9 hours
116 lessons
Available on completion
Course author
Pavol Almasi
  • You will gain a good grasp of 2D coordinate system
  • You will be able to manipulate and work with 2D arrays
  • You will understand how 2D arrays relate to 2D world
  • You will be able to create a basic path finding algorithm using loops and recursion
  • You wil understand how to draw objects
  • You will be able to create a game loop based on Timer tick
  • You will be able to simulate a simple animation
  • Tou will be ready to tacke more complex games


Project-based Learning: Create simple games using C# with WinForms (Windows Forms) without frameworks or libraries

Do you know basic C# concepts, and know your way around loops, conditional statements, arrays, and very basics of object oriented programming, but never really had a chance to incorporate any of it into a game project?. If that describes you, then this is a course for you.

Full disclosure: we won't be creating any earth shattering games. What we ARE going to be doing is LEARNING how to use with C# in game projects, and how to THINK like a game programmer. All games will use Winforms (Windows Forms) as the game board.

The goal of this course is three fold

  • First, is to show you how things work

  • Second, help you understand how things work under the hood.

  • And third, to drill the basics so that they become a second nature to you.

This course concentrates solely on creating game logic and algorithms in C#.

We will use Windows Forms as the game board and we'll use events to code the application logic to. This way, we won't get distracted with million other little things that come into play when you try to learn the game programming and a framework such as Unity at the same time. Like I said, the goal here is to LEARN the basics, and to RETAIN the knowledge. What good is it for a beginner to game programming to watch someone build a complex game when three quarter of the stuff presented goes right over your head? Not in this course. 

If you go through this course, and if you code along, I am absolutely sure that at the end, you will have great foundation to build on, and you will be able to move to more sofisticated applications and coding styles.

The course consists of four games, and more will be added later if there's enough interest. 

The first is a Hungry Snake game.

It's a great game to use to learn basics of drawing on the board, dynamic animated movement, collision, score keeping, dynamic changes to the game, key press events and more. You'll be surprised how little code is needed, yet at the same time, how much of all the mentioned concepts you will understand at the end of this section.

Second is a Bubble Breaker game.

We'll get into details of defining a path for a selection triggered by a player's mouse click. I will show you both loop and recursive solution. We'll learn how to draw bubbles and paint them using gradient colors. You'll understand how 2D arrays relate to 2D x and y coordinates. We'll go into details of Graphics class of C#. We will make the game dynamic and allow for variety of bubble sizes and number of bubbles on the form. We will learn more about mouse events and how to branch the game logic based on user clicks. We will enhance the game with keeping the historical scores in a text file and allowing player to enter his/her score into the file. And in the process, you will not only learn game programming, but become a master of arrays, loops, and Enums. 

Third is Pong game. (added June 2018)

A simple game that everyone is familiar with. But, we will go deeper, and I will show - and explain - how to move objects on the form, how to change direction of the movement upon detecting a collision, how to manipulate the speed of an object, how to generate new objects and keep track of their position in real time and much more!

Third is Brick Breaker (Arkanoid clone) game. (added August 2018)

A classic game with a little twist. Our version of the game features randomly placed bricks of random colors and sizes. We will also bounce the ball off the paddle based on what part of the paddle intersects with the ball - left part will bounce the ball to the left, right part to the right, and middle part straight up. Our scoring system will be based on brick colors and as the game progresses, the speed of the ball and paddle increases. And everything will be coded using OOP principles.

This whole course is designed as follow along course. Meaning, you are encouraged to code along with me. Everything is on the video, there are no code snippets being magically pasted into the Visual Studio. Also, I don't want you to just learn the concepts and then forget them a week later. I want you to remember and retain what you learn in this course. 

And let's face it - that is possible only when you code along. 

And one more thing that makes or breaks learning to program - using what you learn, and using it frequently. Therefore, I code even the repetitive things from scratch and I don't simply just refer you to previous lessons. But that means, that some parts may feel slow and repetitive. However, if you actually code along, I guarantee you will learn, and also REMEMBER what you learned. 

But, If you prefer more instructional videos, that show everything once and move faster, then this course is NOT for you. Please keep that in mind before purchasing the course. I encourage you to watch some of the sample videos so you get a feel for the course structure, topic difficulty, and my teaching style.

Now, I made the videos short and to the point. Most videos are only around 5 minutes long. That is deliberate, so each video is a small learning step that is easy to follow.

Alright, there's a lot of coding to be done. So let's code some games!

Similar courses

Complete C# Unity Game Developer 3D
  • 31 hours
  • 203 lessons
  • Certificate
Create Games With C# & WinForms (step by step for beginners)
  • English language

  • Recommended provider

  • Certificate available