I think with the mindset that you have, it's useless for you to ask for advice. Your main lack is that you have never DONE anything. Your main handicap is that you don't know enough to know that the things you want are bad ideas. Make the simplest version of your game you can think of. Take the most obvious solutions and code it the easiest way you can in the easiest language you can. If you finish and you're basically satisfied except for content, then start adding stuff. If, as everyone believes, you run into problems because of limitations in your language or your design, then change those and start again. Once you've done this a couple of times, you'll have a better feel for the enormity of what you're attempting. Not that it can't be done, but trust the experienced devs who are telling you that you don't even know what you don't know yet.
The main problem I see from an engine standpoint are that you want advice about designing elements of your game more efficiently or cleverly. If you are writing your own engine you can forget about that for a couple of years. You aren't ready for that yet. First you have to design and code your rendering systems - collision detection, projectile entities, GUI, fancy lighting effects or not?, if so how will they light 2D sprites?, weather overlays or other full-screen effects, sound engine, text display, score keeping, server sync method, data packet formats and protocols, and a thousand other things you have to keep up with at the hardware level. And then you can design your game on top of those systems. If that doesn't sound as appealing as figuring out how to implement the periodic table in your crafting systems, then you should strongly consider using an engine that has already figured all that stuff out, so you can focus on what interests you about your game. The game and the engine are not the same thing. You won't even be thinking about the story of your game, except as a laundry list of elements you need to figure out how to code into the engine.The engine is about design patterns, reflection, multiple inheritance, encapsulation, and tweaking your inner loops for a couple extra ms of performance. That doesn't seem to be where your interest lies (I could be wrong of course). And it will be hard enough to keep up your enthusiasm for five years doing something you love. How many projects from 5 years ago are you still working on?
EDIT:
To clarify: I don't mean that what you want are bad ideas for a game, just bad ideas for an inexperienced beginner to attempt completely on his own from scratch.