@mj
my friend, what is your target platform?
this will go in some way as to focus the language you should learn
For anything 16/32bit (like Amiga's early PC's) I would sware by C/C++
I truly love C/C++ while its a high-level language you can use inline asm for REALLY fast routines, and yet use the high-level constructs for speed of implemention and prototyping =)
The real beauty of C is the fact its incredibly powerfull and for the most part platform independent, so what you write (system legal) on Windows can be transfered to say an Andriod platform
For anything 8bit to get the most you need Assembly/Machine Code
The thought of machine code and assemlby language is off-putting for most but its really not hard to lean ASM, it is labourious to master though. while you can sit their and write machine code on paper - its better to use an assembler so atleast you can use phonetics like (ret) instead of a hex value (E9) etc
For today's 32/64bit PC
Well if either of those doesn't float your boat, then there is something called DarkBasic, While I might encourage you to take up C/C++, DarkBasic I think is really what you are seeking for your projects
So dependent on your target hardware platform, it will play a considerable art in determining what is the best language to learn.
so lets look at the type of games you want to develop
A turn based war game
All the processing is based either during or between turns, this is not realtime so theres no direct correlation to needed speed. I have seen Basic language project able to achieve a turn-based strategy like Battle Isle based on tiles.
A turn based simulator / tycoon-esque
With the exception to on screen graphics, the calculations to the game are not done in real-time, thus theres no need for fast calcualtion, this could be realized in Basic, although like the above the graphics you wish to include may require a little more than Basic can provide.
A Graphic adventure game
There are a few online graphic adventure creators our there for various formats from 8bit to 32bit, personally I believe that you could write this in a easy-to-learn basic, as again theres not that much processing at the base level, obviously if you want animations and it dungeon crawler esque then you will need to learn a more powerfull programming language like C/C++
Side ways shoot em up
So here is were we seperate the men from the mice, to start off with have a look at the various "shoot'em up construction kits", theres plenty about to have a look at and this will give you an over-view as to what is involved in a 2D shooter, if you wanted to write your own stand-alone, then I would suggest the minimum you should learn is C/C++ (have you noticed that I keep comming back to C/C++?)
One of the awesome parts of C/C++ is that there is a HUGE wealth of knowledge and help out there, with forums dedicated to setups/formats and all-sorts. There are code snippets to be used for Disk/IO handling, Graphics, sprites, even open source dungeon crawler code.
I would say that if you are willing to spend time learning a language, then C/C++ should be the one you take up, theres thousands of tutorials online, oodles of free resources and how-to guides with setups ready to download.