Game design is more about design than actually creating the game, that's what I've learned.
Programming is important, but the most important thing is making your game fun, you usually have such awesome ideas in your head, but once they come to be, a lot of people might not like it for one reason or another. The control scheme mightn't be intuitive, the story might be confusing, the gameplay mightn't be fun for some people. The true hardship of making a game is being able to sacrifice your image, the thing you have in your head, being able to change that and sacrifice it so it's inclusive for the community around you.
=============================
I'm currently working on a MazeGame in Java (for uni), where you have to go through a maze, avoid enemies and collect treasure. It's no where near finished but here's just some pics of what it currently looks like
(KEY
White = SPACE
Black = WALL
Purple = PLAYER
blue = START LOCATION
green = END LOCATION
red = ENEMY (two types but they look the same for now)
yellow = TREASURE
pink = HEALTH)
Here's just the title screen, currently doesn't resize well (When the game is running it resizes)
Here's the game on "easy difficulty"
Here's the maze on "medium difficulty"
Here's the maze on "Hard difficulty"
Another maze on "Hard difficulty" to show you the maze generation truly is random