The great news is that there are a lot of free game design platforms out there to get started with. If you are a beginner, I recommend starting with Scratch and Twine.
A game design platform created by the MIT Media Lab. There's an online version that works on any platform with a browser. There's also a Scratch app for Windows, Mac, Android and iOS. Scratch has a drag and drop block-based programming interface to code sprites for game play and animation. It's known as a low floor, high ceiling platform because it is easy to start with, but can be used to created pretty sophisticated games. Another related platform is Snap! which was created at Berkeley to incorporate more advanced computer science concepts into a block-based programming environment.
Getting Started with Scratch is a great place to begin. Also, see projects below for more intro to Scratch tutorials.
Twine is an open source tool that you can use online or download to create a text-based choose your own adventure game. You can add images, sound and videos.
A digital breakout is a great way to use the power of google sites and forms to create an interactive game for your friends and family!
There are many cool game design platforms out there. Here are a few more that you might want to check out, especially if you are ready to move on to more advanced coding:
Alice (open source) - a 3D programming environment from Carnegie Mellon to create an animation for telling a story or playing an interactive game (intermediate)
Codea (iPad) - create games and simulations (intermediate)
Corona SDK (PC & Mac) - game design platform for mobile devices (advanced)
Craftyy (online) - learn about making games with HTML 5 by remixing games (intermediate)
Game Maker Studio (PC & Mac) - game design platform to create casual, social games (advanced)
Gamestar Mechanic (online) - play games to learn how to create games (beginner)
Game Salad (PC & Mac) - game design engine for multiple platforms including mobile (intermediate)
HTML5-based game engines - check out the variety of game engines available (advanced)
Processing (open source) - learn programming fundamentals within a visual context (intermediate)
Python (open source) - an interactive, object-oriented programming language. It's a great first step in learning a command-based programming language through game making (intermediate)
Quest (online) - create your own interactive text-based adventure game or interactive fiction (intermediate)
Stencyl (PC & Mac) - Scratch-like drag and drop programming interface with more features and mobile support (intermediate)
Unity (PC & Mac) - 3D game design platform. This advanced platform will require much more time up front learning how to use its features (advanced)