I'm a noob in your forums, I even don't know Lua. I'm a Java web application backend developer, at the moment learning game development in Java. But guys, your community looks so great that I couldn't stay on the side unregistered. Thinking about learning game development in LOVE.
Even though it is too late to answer, and all the guys above said really good things and advices, I would like to add one more. More "psychology" driven answer. Because sometimes people get stuck because of their fears, doubts and assumptions.
To the topic starter: it is funny but the way You think looks similar to mine. I always do a lot of thinking, self-analytics, meta-thinking (thinking about my thinking process and the way I do it) etc. People say that I have "Woe from Wit".
So... Your questions and doubts are all grown on the ground of not knowing what You are dealing with. You want to develop games, but you are totally unaware of everything: what to do, how to do, when... It is really awesome feeling, a foretaste of upcoming knowledge which will make You able to create something. And it is fine, because You will do something great.
All the stuff like "do I do things in a right way", "do I need or do not need something", "why can't I do that awesome thing like the other guys do", "to be or not to be" are just symptoms of unawareness, Your personal caution and Your self-analysis. A little more than a year ago I was thinking that more experienced programmers around me know some sort of magic or have "the answer to the most important question of the Universe" and I even didn't know which question. And I felt that the answer gave them power to do awesome things that I could not even think about. But this is gone. Now I can do a lot more, and I know how to find information and do something new for me. This feeling is awesome motivation in the beginning of your path, but it will go away after mastering a piece of fundamental things. You just feel that something changes inside and Your "level" goes up.
Don't worry, "magic" will not be gone, but You will know that all the magic is understandable and repeatable. This means that You will be one of those mysterious people that make computers do such a great thing like running a game. A tiny world created out of Your personal imagination, a part of Your personal world and You soul, where other people can live for a while.
A short version of my post: after getting to know a critical mass of things You will get rid of doubts and will be moving like a professional. Just code a lot, make game clones, then implement Your own ideas. This will build up You experience. An experience is not something that You can just learn from a book. And You will feel how to do right, when to copy-paste, when to invent a bicycle and so on...
I would advice You to wait with development of a platformer game. It's too complicated for a beginner. Yes, probably it IS possible to make a game having so little experience, but You will be just stalking jungle with a match. It's like trying to ride a bike when You just learned how to stay on Your feet. So You know now how to make a text-based game? Okay, make another one (something like Hunt the Wumpus, maybe just in a 2D space 8 x 8 cells), but relying more on Your experience rather than on copy-pasting. Think about Your ideas, plan implementations, check reference information if You need, and build that game more independently than the first one.
Then You can choose a simple graphical game, I would suggest Snake rather than Tetris, because in my opinion Tetris has more caveats and sharp corners. Snake is very straightforward. Don't make super-cool graphics or other complicated things. Let the snake be made out of squares, do the possibly minimal feature set. When core game is done, implement menu and other nice-to-haves. Then make another game that is more complicated (Space Invaders, Breakout). Learn things by demand. Break large problems into smaller pieces.
And... don't use game-making software. It is not the true way, You will not be proud of yourself.
Sorry for my English, I'm working on it.