My advice would be not to try to delve into too much details yet.
Get a general feel of what type of game you want, with a core gameplay feature that you really want.
Once you know what the main gameplay will feel like, start coding. In my opinion, it's very important that your whole idea at first is simple. Don't start and try to make something very complicated with complex gameplay and content. Start out small.
An example of this would be if you wanted a 2D platformer with the core gameplay element being magic spells for the main character. What I would do is I would go progressively through it, like so:
Create quick and dirty placeholders for the level tiles (i.e. don't build too much content yet, avoid spending too much time on art and don't make too many assets). So, say, start out with some very simple blocks.
Make a level system, which you load in the code at first.
Allow the level to be loaded from a file (to make it easier to test).
Add a main character.
Implement physics for your character (tile collision and gravity).
Allow the character to move and jump.
Add very basic spells.
Add enemies, make a level editor, replace placeholders and add content, etc.
You see, you follow a path where you add new small things everytime. Not only does it keep you motivated because you can feel your progress but it also prevents you from falling into the trap of wanting to implement so many complex things at once and getting lost.
TL;DR: Get a general feel of what type of game and core gameplay elements you want (but make sure that they're not too complex) and simply start coding, by making sure that you don't delve into too much details at first. When you have your working prototype, you'll know what you want in your game, since you'll have something to work with. From there on, keep coding!