It's no secret that indie games are having a moment. Recent games like "Stardew Valley" and "Undertale" have achieved widespread critical acclaim. Indie games are generally made by one person or a small team of people. These games are not necessarily the product of programmers, or even tech aficionados. "Undertale", for example, was the product of gamer and musician Toby Fox, and artist Temmie Chang. This begs the question: If two creatives with an idea and access to a computer can create IGN's best game of 2015, what's stopping anyone with an idea? It's certainly not lack of programming experience. With a good idea, some basic tools, and a YouTube tutorial or two, anyone can create the next great indie game. Here's a basic guide to getting started!
In my opinion, the best tool for an absolute beginner is GameMaker: Studio. The base version is free for Windows and runs on just about any computer made within the last 10 years. Some consider GameMaker an amateur's tool, but this is an unfair assessment. Its drag-and-drop interface is easy to use. If one is so inclined, its proprietary coding language is intuitive and opens up nearly infinite possibilities for 2D game creation.
GameMaker's website has free tutorials that teach the basics of the software. People also upload tutorials for any given function on YouTube. For those looking to start coding right away, here's a comprehensive, baby-step by baby-step tutorial for making a SNES-style RPG.
GameMaker is not the most powerful tool out there today, but it's free and accessible. Its capabilities are virtually limitless in regard to 2D games, but its 3D capabilities are rudimentary at best.
2D games are the obvious choice for novice game designers, but if 3D is non-negotiable, Unity is a great tool. It has a steeper learning curve than GameMaker, but there are plenty of high-quality tutorials out there to help speed up the process. One side benefit of Unity is that it uses the C# programming language, which has multiple uses.