| Title | SDL | Beginner's Difficulty | Beginner's Time | Description |
| Memory | Y/N | * | ** | Memory is a very simple and classic game. When a new version of a memory game comes out, the changes are always in the graphics, which points to the simplicity of the game itself. You can find these card games for kids with just about any Disney character on them. However, there is a lot of room for creativity. Take a Memory game and add something unique or allow customization. |
| Simple game | N | * | * | Part of my C++ tutorial includes my quick attempts at simple games. These kinds of games include things like 'Guess what number I'm thinking of' and Tic-Tac-Toe. This is probably the best starting point for a true beginner. |
| Steganography | Y | ***** | ** | Make a program that hides a text message within an image file. This was my first project in an intro CS class, and I thought it was pretty cool. The most basic form is to encode each bit of the text as the least significant bit of a pixel's red value. Another program which reads this image would then look these up and stop reading when it came to a few bytes of zeroes. If that doesn't make sense to you, send me an email! There are tons of other ways to do it, too. You can use my SPriG library to do all this with SDL. |
| Simple game | N | * | * | Part of my C++ tutorial includes my quick attempts at simple games. These kinds of games include things like 'Guess what number I'm thinking of' and Tic-Tac-Toe. This is probably the best starting point for a true beginner. |
| List Alphabetizer | N | ** | ** | I tried this one early in my programming life but couldn't quite get it. At the time, I decided that MS Excel would do the same thing... But the fire still burned... I came back to it a few months later and finished it. The main idea is to take a list from a text file (most conveniently as a command line argument), sort the list, then overwrite the file. I found it best to work with the standard string class and file streams. This project really dives into stuff that becomes very useful later on. |
| Hangman (themed) | Y/N | *** | **** | I played a PC Hangman game once, called 'Le Pendu' (kinda standard, I guess). Obviously, it was in French, but that made it more fun to me. I tagged this as 'themed' to invite you to make a Hangman game that is based on a particular idea. Maybe the wild west or space. Maybe Physics terms (Oh! My favorite!) or a different language. Maybe even a scramble or another game mixed in. To make this project robust, it should read from a text file. Output would be nice using SDL (themes make more sense then), but it can be done very effectively using the command terminal. |
| Battleship (themed/changed) | Y/N | **** | ***** | Try making your own Battleship game. You can design a theme or change some gameplay aspects to make it really unique. This project should take a while to finish. I have a friend who was assigned this project in an intro CS class. It isn't really difficult, but it makes you have to be sure of your arrays and everything. I did find this page that might help a little (if the link is ever broken, let me know). |
| Image viewer | Y | ** | ** | Use SDL and SDL_image to view images! It's not very tough if you know some SDL. |
| Image editor | Y | *** | **** | This project can become something good really fast, but never seems finished. You can use SDL and SPriG. I would suggest having an idea of at least one neat feature that you'd like to create. I personally would like to see an image editor with a better focus on editing alpha (opacity) values. |
| Snippets library | N | * | *** | Write a utility library that provides useful functions each with a commented title, description, and keywords to use for easy searching. Better yet, if you only include functions that are related, other people would be more likely to use it. |
| Sound player | Y | ** | * | I was getting annoyed by Media Player having to load and popup on me every time I wanted to hear a short sound clip, so I wrote a simple sound player. Mine is really simple. It doesn't have an interface at all. It just plays a sound file from a command line argument. Thinking about it, I really need to add a 10 second length limit... For this project to be as easy as I say it is, you'll probably want to use SDL_mixer. |
| Card game | Y/N | *** | **** | Most card game projects I've seen are 'Blackjack'. You can make decent card games without graphics. That's a good way to get into this stuff, but I jumped straight into a new card game project similar to Magic the Gathering. To sum it up, I gave up on it. I designed the card game beforehand, but I didn't actually design the computer game before I started programming it, so I was lost in a heap of messiness. |
| Board game | Y | *** | ***** | How about a board game? I guess this one should have graphics, but the rest is up to you! I wasn't exactly impressed by Culdcept, a fantasy board video game by Squaresoft, but it had some good ideas... |
| Simple platformer | Y | ** | *** | Start off with a really simple platformer (a jumping and running game like Super Mario Bros). You can make one without screen scrolling (like Donkey Kong) to simplify things a lot. Then you can keep adding stuff like items. Don't go overboard; You might be better off starting a new project with a full design rather than slapping stuff onto this simple one. |