A challenge for aspiring developers to create their very first game
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Snake Challenge


This challenge is an idea I thought of while creating my presentation for EU Code Week Varna 2017. During the conference, I created the classical Snake game live and left some tasks for attendees to complete themselves.

Why am I doing this?

When I first started programming, I was creating console applications and made some text show up on the screen. And at first, it might have been cool, but it's not something extremely interesting. But the first time I fell in love with Programming is when I created my very first game. It was a simple console-based game pretty similar to the one I made here. But in order to create it, I had to spend several weeks researching how to create my own game.

But now, I want to help newcomers to software development go through this great experience themselves. I have created a Snake game, which is partially complete for you to see how to create simple games of your own. The techniques we cover here can serve you to create any kind of other arcade game in the console such as Pong, Tetris, Cars, etc.

Also, I haven't completed this game fully. I have left some things which are up to you to finish. A great part of being a developer is reading through and extending other developers' code. Now you have the opportunity to try that out in a safe environment, doing something fun like creating your own game!

I hope you have fun going through this challenge and I hope this lightens up your passion for programming and computer science just like it did for me years ago.

What we have so far

I have recorded a screencast for you, which is available here:


Go through it in order to get a grasp of how to make your own game in C#. I suggest you write the code I write in the video while watching it. If you have a second monitor, that will help a lot. Tne end result should be something like this:

Snake Game

The Challenges

Currently, you have a functioning snake game. But there are some bugs left and areas for improvement. I have outlined some of the issues present in the game currently, and have suggested some improvements. However, if you have any ideas of your own, feel free to extend the game as you please.

Also, you can submit a pull request to this repo if you want me to make a code review for you and highlight some improvements in your code. If you have any other issues with anything for creating the game, feel free to contact me.

The Improvements you can make

  • Snake should not be able to move "backwards" and eat itself
  • apple should not spawn over snake
  • make apple respawn after timeout
  • Add score
  • Make the "Play screen smaller"
  • Display score at top right
  • Add border walls
  • (For Pros) Add a second player


If you have any questions or need help with anything, feel free to contact me at preslav@pmihaylov.com