If Global.GameMaker_Is_Free = 1 { Script_Execute(Download)
Game Maker Standard is free
At first, I thought of Game Maker as a tool for unskilled beginners to make psuedo, they-don't-count games. Then Spelunky came along and took away my snobbery, showing me that the entry-level tool could be used to create fantastic games. Then Gunpoint came along, and replaced my snobbery outright with a permeating sense of bitterness and regret; the kind which penetrates deep to your core and gradually erodes all your personal relationships.
Consider me a cautionary tale, and make use of this offer: Game Maker Studio's Standard edition, which normally costs $50, is free at the moment.
Game Maker is mainly designed to enable you to make 2D games, putting them together with its drag-and-drop object system or via its forgiving scripting language, GML. It's tremendously powerful for those just starting out, and blessed with a good set of in-built Help files and a strong community. For example, here's Spelunky's creator Derek Yu writing a still-useful Game Maker beginner's guide in 2008.
To get the free copy of the game, download Game Maker Studio, select the beta update channel, install the offered updates, and then when prompted choose to register in order to receive an emailed key for the Standard edition. It's not clear whether this is a time-limited offer, so get in quick. The Standard edition lets you do everything you'd want as far as making your game goes, and you can update for a free to the Professional edition later should you want to start exporting your game to platforms other than Windows.
Game Maker Stusstudio can be used for creating 3D stuff, as one of its developers recently demonstrated, but you'd probably be better off using Unity if 3D is your aim.
Otherwise, don't let anything stop you. If you want to make a game, throw yourself in, muddle your way through, and you'll definitely get more out of it than you put in. The alternative is becoming a dried-out husk of failed ambition and lost opportunity, like me.
} else {
script_execute(ignore_news)