What is This?
This is a series of small programming assignments testing each of the following subjects:
- Input, Output, and Variables
- Conditional Statements
- Classes and Structs
- Pointers and References
The tests in each section are focused only on that section and those that come before it,
and they're meant to test your ability to write a small, complete program with each skill.
The tests stop just short of Polymorphism because, while very helpful,
I don't consider it something necessary to understand in order to begin game programming.
Once you get the hang of other concepts, it won't be that much harder to learn it.
However, I consider the things listed above to be absolutely necessary to not only know,
but to be comfortable with in order to be successful with your game programming projects.
Note: This prerequisite guide can also be used for
Java and C#, except for the section on Pointers. If you're wanting to make games with
C++, Java, or C#, please try some assignments in each section.
Many young programmers-to-be begin their journey being interested in making games- I did.
But, while many people begin in a calm, focused, and studious manner, many people want to just make a game
and cast any sort of programming basics aside.
Of course, if you want to make games but don't want to program,
you have plenty of options.
But for those who want to program, rather than just design and make a game with an existing tool, many choose
to learn C++, since it's widely the industry standard.
But, rather than sitting down and learning C++, a lot of beginners try to jump in head-first with Allegro,
SDL, SFML, or OpenGL following various tutorials online, against the authors' preliminary remarks to start slow and learn their language.
Inevitably, they get confused. Ask questions.
While it's obvious to more experienced people trying to help, the beginner refuses to accept that their
understanding of C++ is not strong enough to begin, and end up only frustrating themselves and those trying to help.
Therefore, I've written these tests to:
- Test a person's C++ skill
- Help others figure out what points they are weak in
- Allow everybody to take the tests and get peer reviewed, and hopefully learn new things via constructive criticism.
The tests are layed out into sections, covering very specific areas, such as "functions"
In each section, there are 3 tests to complete. These are essentially programming homework assignments with specs laid out.
For each section, there is a corresponding video with the same specs, and example vide of that the program should look like.
Posting your Entries
You can either send your entries directly to me, or post it on the message board for a group review.
Send work to Moosader
Zip up your .cpp file(s) and email them to: Rachel@Moosader.com . Put "Programming Test" in the subject, or something similar.
Post your homework on the board
- Join the message board. You will need to wait for an admin to enable you to post.
- Upload your code to PasteBin.
- In the Game Dev Discussion & Help board, post links to your code with what section it belongs to.
If you need help, feel free to email me, ask in the IRC chat channel, or post on the message board.
Even if you're not familiar with C++ and need to spend more time studying it, we're still up for helping and would be happy having you in the community.
Nobody is born knowing C++, it is just something learned over time.
Being patient, being able to read, and being willing to learn are some of the most valuable skills you can have.
Other peoples' entries
Yes, other peoples' entries will be posted on the board, but it really doesn't help you at all to cheat.
If you do copy somebody else's code, it's immensely obvious to us any time someone is stuck, claims they know C++,
but doesn't seem to grasp the answer we try to provide.
If you just want to compare other peoples' code with yours, go ahead. Make sure you try the assignment and get help first,
though, before checking!