How hard it is depends on what kind of game you want to make, and also what tools you choose to make the game with. Pure programming languages are a lot harder to use for beginners than a dedicated game design program is. If you've done programming before, I would recommend searching for engines or frameworks that are written for that programming language. Otherwise, get something like GameMaker (for a general game) or RPG Maker (mostly for classic turn-based RPGs). If you're going for 3D I'd suggest Unity, but know that 3D is usually harder than 2D. Personally I use GameMaker. I've thought of switching it out a few times (Construct 2 looks to be semi-popular for HTML5 games, as is Javascript), but I've always come back to it. The convenience is simply too great to pass up for a hobby-level game designer like me. I had no prior experience with programming when I started using GameMaker many years ago. Although it still takes time to learn the right concepts and techniques for a properly designed game, using a program like this is a great help. This program provides you with a scripting language that you can use for coding the game, but it also has many pre-defined functions loaded up into simple drag-n-drop icons that is a fantastic help for beginners. It does not, however, come complete with full game engines. If you want to make a platformer, you have to set up the gravity yourself; if you want an RPG, you have to do all the stats and the whole turn system yourself; and so on. Luckily there are tutorials and examples for most game types already. GameMaker: Studio is the latest edition of this program, and the Standard version of it is free. If you're brand new to making games, I will suggest downloading that and taking a look at the tutorials. If you need help with anything, feel free to PM me about it.