It might help to have a C/C++ class, but it is not necessary. Once you know one language well, it is not as hard to pick up another one. You just have to pick up a compiler and go through the learning curve. Most of the really good programmer friends I know have applications that they write when learning a new language. A good friend of mine always did "Mastermind" ( http://en.wikipedia.org/wiki/Mastermind_%28board_game%29) on a new language. I used to do Dungeons and Dragons character generators. Now I typically write a new game in a language and did one recently in Flash to learn Flash. So, the best thing you can do is pick up a compiler and a book and make something you think would be cool.
A new language is always a struggle and most of the battle is getting used to the error messages produced by the compiler and the various nuances of the language syntax.
The requirements will be to have a firm grasp on at least one language. I will review C/C++, but you will have double duty of learning the language and getting the projects done. It would be best to have a lot of the language learning curve behind you.
Wood
--
http://www.memorize-it.com
several of the quake games have been fully open sourced:
http://www.idsoftware.com/business/techdownloads/
You can snag the Half-Life SDK, though you'll have to pay like $10-20
for the engine itself. Never the less, there is quite a bit of
community support regarding the SDK, and plenty of materials available
online. unforitunately though, many of the official mirrors are no
longer maintained. Still, it's available on FilePlanet and whatnot:
http://www.fileplanet.com/44991/40000/fileinfo/Half-Life-SDK-v2.1-(Full)
There is also, for half-life, a bit of a souped up, more functional
version of the game that fixed several bugs and tweaked a bunch of
stuff. This, also, has a bit of a community following. Source and
further information can be found here:
Again, this would require purchasing HL for the engine itself.
- Jess