Click here if you are stuck in someone else's frames.
Getting started


Where do I begin?

You obviously came to this page because you are interested in learning game programming techniques used on a PC. You've probably bought yourself a brand spanking new 500 gazillion MHz (we all wish right?) machine and you are wondering if and how you can perhaps, perfect your confectionary masterpiece of a video game (and perhaps even start a career in it and make money too!!!). Well, you've definitely come to the right place. I too have such an interest and what better way to share what I've learned as well as invite user input than to create a web page based on it. Currently, I go over video game programming techniques using the king of all video modes for beginners, Mode 13h. I'm also writing routines that can write to Mode X and High Resolution video screens and I will certainly be posting documentation relating to that here. Right now, I am using rather old techniques, basically DOS with a 16-bit compiler.

I recommend that you all download and install the free DJGPP 32-bit DOS compiler as well, because I do plan to port my code there. I also program in 32-bit Windows using Visual Basic and C++Builder (not Visual C++ yet) but that is mainly job related and has very little to do with games for the time being. I do have the Direct X 6.1 SDK (yes, I know Dx7 is out, but I got the SDK just before Bill Gates released his next version of Dx) so I do plan to write Windows graphics programs there too.

What do I need to get the most from these pages?

A knowledge in C and C++ is essential because I do not cover that topic much at all. I may explain a few things regarding my techniques here and there but not enough so that a beginner C programmer can grasp the techniques in graphics and game programming very quickly. For those of you who still code in QBasic, I have included some samples that will help you to apply game programming techniques in QBasic too. However, I cannot promise that I will continue to provide support for that language in the future. There are just too many limitations in that language to make it worthwhile for any real game programming that I intend to do.

As far as compilers go, I use Turbo C++ 3.0 for 16-bit MS-DOS programming. As I have mentioned before, I also recommend that you download the DJGPP C/C++ compiler and install it. I like it because it is highly ANSI and Borland compatible and because the price is right, FREE. I plan to use it when I start doing 32-bit DOS programming, so having it will certainly be a must if you wish to follow the examples laid out in the web pages here. As far as 16-bit compilers go, I will try to port over as much code as I can to Microsoft C++ using an old copy of Visual C++, however, I cannot guarantee that I will port everything over because I am a bit relunctant to install such an old Windows based compiler on my new computer system. (DOS based compilers are easy to remove, hence why I have no trouble loading those on my system.) There are various sources where you can download 16-bit DOS based compilers for free, one that I have linked is the Pacific C compiler. If you happen to have Turbo C++ version 3.0, then you and I are in sync and you will have no problem following along with any of my code.

Other things that you will find useful are a graphics editor (ie. a paint program), and a sound editor. I use NeoPaint for DOS because I think DOS based Paint Programs are best (they allow you more control over things like the system pallette). A lot of individuals seem to prefer Paint Shop Pro and I've used it myself at my job so I can't really complain about that one. Paint Brush, that comes with Windows, is probably one of the worst paint programs you will ever use. It gives you very little control over the system palette and offers very little as far as options. I use it for small stuff and for starting out a drawing, but I always end up using NeoPaint when I really want to spruce it up. Personally, I seem to get along best with good old fashion pencil and paper when it comes to doing any real artwork (not that mine is all that good). It's a lot easier for me to draw an image on paper and scan it in than it is for me to draw an image with a blasted mouse (as anyone who's tried can probably relate).

Beyond that, all that you really need is a willingness to learn, a good imagination, and the bravery to try new things on your PC. Beleive me, you will certainly be rebooting your machine quite a bit as you get into some real coding. One trend that I did not like happened in the PC arena. Where did that blasted RESET button go on the newer PC's of today??!! (CTRL-ALT-DELETE does not always work but RESET never fails!!!)

Return home

Questions, comments, or ideas?