Well I have created projects many times now but another problem for me at this point is either finding the time for this stuff, being motivated (I program all day long school work, portfolio and this You get tired might quick) and just finishing stuff I started. I probably have gone through a dozen projects that I just never end up finishing. Though I am trying to finish the latest one I have started (an amorphous clone because hey the original creator isn't dong anything I might as well).
Yeah mini games are different from larger games. You can create a mini-games in a single external class and not be lost in hundreds of lines of code but with larger ones it just doesn't make sense to make it a single class since each class could have hundreds of lines of code and there is no way you would make head or trails if it was just shoved into one class.
The simplest way to look at it is look at the game you want. Figure out the objects you have player, enemy, bullets and whatever external libraries you are using and write the main loop of the game without writing the classes yet. Once you have that done to simple point where it would be easy to test you write the other classes test those out. Then you run the simple game you have and Viola a start. Now if you haven't changed your design much you just add to the game (the fun part) since at this point you have something you are just making it better.