- You get good at coding, preferably in C/C++. This means you’ll do better at school, during interviews, and when you start working.
- Beyond just knowing the language, you’ll be used to compile errors, link errors, and wrangling different pieces of third party code. You will also likely pick up other skills like using Perl, LUA, building websites, and using art and sound programs.
- It’s great fun, and you get to make something.
- It shows a company that you’re self motivated and capable a lot better than just writing it on your resume.
- It really makes your resume memorable if it contains a link to a demo.
- If you're on a break from school, it improves your skills instead of them rusting away. You'd be surprised how quickly you forget how to code when you're not doing it. Though you'll realize during the interview :)
What’s a good demo?
Here are some ideas:
- Write a particle system.
- Write a cloth simulation which simulates a flag being blown by the wind.
- Write a rope simulation.
- Write a water ripple simulation, which makes use of fancy HLSL/GLSL.
- Write a heightmap renderer which can render a good distance without slowdown.
- Write a simple game like pong.
- Write a game, like asteroids or pacman.
Tips for choosing a good demo:
- Avoid choosing something that will require a lot of art such as 3D models and textures. You’ll end up spending way more time making art than programming.
- Avoid choosing something that requires you to write tools. For instance, you don’t want to have to write a world editor. You can build levels for games like pacman or bomberman in notepad, but when you start getting to R-Type or anything in 3D, you quickly start needing a complex editor. Writing a nice usable editor can take months of effort.
- Try and do several small demos rather than one big one. If you've attempt to make a rope simulation, an AI route finding demo and space invaders, you've got a far greater chance of finishing them to a decent quality level than if you try an make the next World of Warcraft killer.
How can I get started?
- Free compilers are available. I recommend Visual C++ Express.
- There are lots of free engines around which will take care of some of the hard work for you. I’ve used Ogre, but there are plenty of others. SDL is one that has been mentioned before.
- Start by running a tutorial application, and then gradually modify the app until it becomes your demo.