You have a gameplan, so let's try and use it to your advantage.
What I usually try to do (mind you that I'm far from a game-guru

):
1. Make up a gamescenario, draw some concept-art.
This is a really chaotic stadium, in which I write down/draw everything that's in my mind, and only filter it afterwards.
2. Once the description of the game is more or less finished, start extracting entities out of it. A possible way to find those are asking questions like:
What are interactive parts? and
What are the actions this entity(player/npc/item/potion/weapon/...) can do?
Try listing them for all possible entities.
3. See if you can group those entities, and determine how they relate to one another.
UML can be of great help here.
Example wrote:Bullets are items that can be stored in a bag or a gun, that can be bought, so they need a price, and that are consumed/used by a gun.
This teaches us that their is an entity 'Bullet' an entity 'Bag', as well as the entities 'Shop', 'Gun', 'Item' (more differentiations can be made)
4. Now make sure you have a clear listing of all your entities (classes) and check the functionality (methods) for each of them.
5. In the meantime, work on some graphics
6. Split your game in seperate parts (milestones) that can be tested. Do not firstly create all enemies/items if you only need part of them in the first level. This way keeps me motivated to continue on a project, for there's relatively fast something playable, something 'real' to see.
7. Investigate what libraries you're going to use (iirLicht for graphics offcourse

, but what with sound/phisics/..). Work through their demo-applications and basic tutorials. You do not need to know their complete API's, but you do need a good understanding of when and where you'll have to use them.
8. Time to start your coding. I have the habit of firstly implementing my engine-loaders, then a level-loader, next the player as a static object. Then I start by adding methods to my player (first make sure he moves ok, then make sure if he can pick up items, to do so, first make an item etc...). However, regularily check back to your UML to see if you are implementing the correct relations.
Pfew.. there you are, my basic view on development of a game. I hope it's of some use to you.