A short history of game programming, and how to Do It.
When people think about game programming, they often imagine that it's hard, time consuming, and requires many years of special education to do properly. And so they never really bother to find out more about it, because they believe that the average person couldn't do it anyway.
This actually used to be the truth in the beginning days of computer programming. At first everything was programmed in machine code, using a "language" called "Assembler". This language consisted of codes which looked like "LDA#01", "STX#3C". These codes were used to store and manipulate bits and bytes in a computers memory. When those bytes were arranged in a certain way, the end result was a functional program. But you needed to understand the computers memory map and it's technical details quite well before you could even hope to start making a program in machine code.
Then came the first generation of home computers: Commodore 64, MSX, Spectrum, and others. Most of these machines had an in-built "Basic language" installed in them. Basic was easy to learn, because almost all commands in it resembled spoken language. Commands like "Goto", "Gosub", "Return", "PutSprite", "Line", "Circle" etc. allowed normal users to make their own little programs with ease. At that time computer magazines used to have many pages dedicated into "program listings", which were Basic programs sent by the readers. People could then simply copy those code listings, enter them into their own computer, and Bang, you just got yourself a new game or utility program for free.
But there was one big drawback in Basic: it was very slow when compared to machine code. Depending on the task, machine code was either hundreds or thousands of times faster than Basic. This meant that Basic was good for only simple games, and most commercial software was still coded using assembler. You could comfortably code a "one alien Space Invaders" in Basic, but if you needed more aliens, then moving to machine code was your only option. And these two languages were extremely different: Basic was very easy, while machine code was very hard. In those times everyone liked to pretend that they knew machine code, but only a few of them really did.
And then came the second home computer generation, look; the Amigas and Atari STs arrived to amaze us. And it was during this era, when the first advanced Basic languages arrived to market. These new languages were no longer in-built in the machines themselves, but instead they were external programs offered by independent software companies. The most notable of these were AMOS/STOS and Blitz Basic. Both of these were as easy to use as the old Basics had been, but this time there were no noticeable speed problems. These new Basics were fast enough to make commercial quality games, as well as normal hobbyist programs. A few commercial games were actually made using these programs, but most were still made with other languages than Basic. (Although there was no real reason for this...over 50% of commercial Amiga games back then could have been easily made with AMOS or Blitz Basic.)
But then the Amigas and Atari STs died, and the modern PC era begun, and this is the era that we still live in right now.
Today there are a lot of different programming languages available, more than ever before in history. The original Assembler of the old days is nearly forgotten. Instead people use C++, Java, or some of the many Basics that are available. Of these C++ and Java are the hardest, while the Basics still remain the easiest, as easy as they were in the 80'ties, if not even easier.
So if you're a beginner, and want to learn game programming, then go and pick up one of the Basic languages. There are many choices, some of them are free, while others cost a little.
But which one of them should you choose?
The best choice in my opinion is Blitz Basic. That's right, the same old language which was introduced back in the Amiga era. It still exists, and it's better than ever. It's very easy to learn, in fact it's possibly the easiest language out there, and at the same time it offers you almost the same speed as C++ does. It costs a little, but with the price of a single videogame, you'll get the best programming language there is.
Here is the Blitz Basic website:
There are three different versions of the program: BlitzPlus, Blitz3D, and BlitzMax. Of these BlitzPlus is meant for 2D games, and Blitz3D for 3D games, while BlitzMax is a little bit of both. I myself have been using BlitzPlus, and I can recommend it for everyone.