Absolute Beginner
Frequently Asked Questions

How do you make a program?
A program usually comes in the form of an exe file. The exe file is created by the compiler and the linker from the source code.

What is source code?
Source code is what the programmer writes. It looks something like this:

highscore[game]++;
printf("%d\n",highscore[game]);

This source code tells the program to add one to the high score for the current game, and then print the high score. Programmers write a lot of source code. It is not unusual for a program to have 10,000 lines of source code. A very sophisticated game will have much more.

What is a compiler?
A compiler is the tool a programmer uses to turn source code into an exe file. Most modern compilers come with helpful tools, like an integrated editor, and visual programming tools.

What is a linker?
A linker is a program like the compiler. These days, it is usually part of the compiler. The linker takes care of the linking process. That is the process by which the source code, which has been compiled, is combined with certain other resources and libraries, to make the exe file.

Where can I get a compiler?
You can buy one. There are a variety of compilers available, from companies like Inprise and Microsoft. There are also some freeware compilers available.

Which compiler is the best compiler?
It depends on what you are looking for. Get the compiler you can afford, and which supports the language and features you want to use. Click here for a list of compiler recommendations.

What is a programming language?
Source code comes in different languages. Some popular ones are C, C++, Pascal (including Delphi), Fortran and Basic. They all have strengths and weaknesses. Some are easier to learn, some have more powerful features. Professional programmers are usually familiar with more than one language.

How can I learn a programming language?
You can get a book and study it. Or you can get a compiler and study the manual and try all the example programs. Or you can take a class.

What language should I learn?
That's up to you. If you are just starting, you may find Microsoft's Visual Basic or Inprise's Delphi a good starting point. If you are serious about a career in programming, you will want to learn C and C++ eventually. But don't feel like you have to learn everything the first week. Pace yourself.

What is the difference between C and C++?
C++ uses quite a bit of the same syntax as C, but it adds structure in the form of "classes". You use C++ to write object-oriented programs. It's a bit harder than to learn C. I don't usually recommend it as a first language.

What is debugging?
Debugging is what happens when you have a bug, which is a mistake or problem in your program. Sometimes the compiler catches your bugs and you can fix them right away. Sometimes the bug doesn't show up until you try to run your program.

Plan to spend a lot of time debugging. Even really good programmers like me spend a lot of time debugging.

What classes should I take in school?
That's up to you, of course. But I would recommend taking as many classes as you can in as many subjects as you can. I found these classes particularly helpful:

  • Mathematics (my major)
  • Physics
  • Engineering
  • Programming
  • Logic
Less obvious, but also helpful in your career are:
  • Technical writing (people will think you are intelligent if you can write well)
  • Psychology (it will help you understand what motivates people to buy/play games)
  • Sociology (it will help you understand trends in society)
  • History (strategy games, war games and some simulations rely on this)
  • Literature (games often draw from classic works)
  • Marketing (selling games is very important)
  • Art (games use lots of art)
  • Music (games use lots of music too)

As you can see, just about any class you take will help your game development career. If you are thinking about dropping out of school to become a game developer, I would advise against it. You might profit in the short term, but nothing can replace a good, well-rounded college education. Stick to it.

How much money do game developers make?
There is no limit to what a game developer can make, but to tell you the truth there are a whole bunch of game developers who aren't making anything. And not because they have no talent, either. It's a tough industry. You have to be very clever to survive.

The short answer to this question is, "I don't know". But there is some data available on the IGDN Salary Survey.

How do you put graphics in games?
There are several ways to do this. Your compiler may come with some simple graphics capabilities: lines and rectangles and so on. Usually gamers need more than this in their games. So they use a third party strategy, in the form of libraries, drivers, and dll's, such as DirectX, OpenGL, or Fastgraph.

I should note at this point, my company develops and markets Fastgraph. That is how I make my living. (I also write games).

What is DirectX?
DirectX is Microsoft's answer to graphics and animation for Windows. It has several parts, including DirectDraw, DirectInput, Direct3D, DirectSound, etc. It has some advantages: drivers are provided by hardware manufacturers and support hardware acceleration features. It has some disadvantages as well. The biggest disadvantage, in my opinion, is how convoluted and tricky it is to use. There is a significant learning curve associated with DirectX.

What is OpenGL?
OpenGL is an alternative strategy to DirectX, with some differences in features and strategy. OpenGL is available on a variety of platforms. It particularly focuses on 3D programming.

What is Fastgraph?
Fastgraph is a general purpose graphics library that works with Windows or DOS. You can use it with or without DirectX. It is written in assembly language, so it is very fast.

Fastgraph is good for beginners because it is so easy to use. It is also powerful enough to satisfy the demands of advanced programmers.For example, to display a pcx file and paste it to the screen, your code would look something like this:

fg_showpcx("game.pcx",0);
fg_vbpaste(0,639,0,479,0,479);

There is no function in DirectX or OpenGL that simply displays a pcx file. Fastgraph gives you lots of functions to do animation in 2D and 3D. For more information, and a shareware version, you can click on the banner below.

Will you mentor me?
No. Sorry. I'm busy. Besides, you don't need me to hold your hand. If you will read all the material on the makegames site, and go to the links and read all that material, and get a compiler and try it out, and practice on the examples I gave you, you should do just fine.

Good luck! Now get to work.


Click here to returne to makegames.com.

Copyright © 2000 Ted Gruber Software, Inc. All Rights Reserved.