Hi Cody, this is a great question and it gets asked a LOT. Whatever happens, DO NOT ASK THIS QUESTION ON STACKOVERFLOW because you will get excoriated!! (LOL) The very first thing you absolutely need is a good text editor (better than Notepad), such as Sublime Text 2. The most important thing is to get a text editor which highlights code in different colors making it at least fifty times easier to understand what's going on.
Here is a simple javascript example game. When you check it out, make sure to view the source code, and copy and paste it into your text editor for testing. You can make changes to the code, save the changes, and view the file in your web browser to see the changes.
Whatever programming language you end up using, it will function in more or less in the same way as the javascript example game.
With regard to what language to use, I think the following comments from boogyman19946 (in a different post) are spot on:
"Start with a language that provides a minimal amount of control so that you can accomplish what you want. There is no reason to choose a behemoth like C++ because it's "faster" or because it gives you "more control." You're not programming task schedulers, you're learning to make a game. You don't need the extra control! It only adds complexity and makes things harder. When the time comes that you need the proverbial speed of a compiled language, you'll quickly realize that picking up C++ isn't as hard as it would have seemed at first because you'll know most of what you need already."
In the spirit of boogyman19946's comments, I recommend starting out with Ruby, using the Gosu Gem. Ruby is the easiest mainstream language to learn, and once you get comfortable with it, all the other programming languages will begin to make sense. Here is a comment which somebody made on the Gosu Forums, which expresses how many people feel about Gosu:
"A lot of....kids (not me, ok...me too...), struggle with RPG Maker xp/vx/2003/etc. Well tonight I downloaded Chris Pines Pragmatic Programming - Learn to Program Ruby and that makes it at LOT easier. And I get so frustrated with RPG Maker VX because I can't find everything to help me understand. Like the Window_Base script inherits from Window and that script isn't in the script list for editing... But THANK GOD (like really, thank you God) I found Gosu."
Another bonus of Ruby is that it is the language of Rails (the future of web development). If you are on a PC, installing Ruby is really easy.
Here is what the javascript example game from above looks like in Ruby:
require 'chingu'
include Gosu
class Game < Chingu::Window
def initialize
super(600,400,false)
self.caption = "Simple Game"
self.input = [:holding_left, :holding_right, :holding_up, :holding_down, :esc]
@player = Chingu::GameObject.create(:image => Image["face.png"], :x => 30, :y => 70)
end
def holding_left; @player.x -= 3; puts "left"; end
def holding_right; @player.x += 3; puts "right"; end
def holding_up; @player.y -= 3; puts "up"; end
def holding_down; @player.y += 3; puts "down"; end
def esc; exit; end
end
Game.new.show
Definitely simpler and easier to learn than javascript or C++.
Python is also pretty easy to get started with, using Pygame. Java is good for starting out too.
PickupSticks is a great suggestion for a first game to try making.