I'm currently been feeling on the edge of mental burnout, and thus I'm having some difficulty, forming a response. I leave for a vacation on next Wednesday for 2.5 weeks, to visit some relatives down in the USA. I don't intend to bring my computer with me as I want to focus on addressing my mental state of mind without the distraction of a computer, thus I won't be available to answer questions until I get back. My current quality of life right now is quite poor, and I'm having trouble forming concise thoughts or being creative either. REM sleep seems to be completely ineffectual (as I go to sleep have 8-10 hours of uninterrupted dream-based sleeping and wake up feeling almost as bad as I did before sleeping). I have worked out a game plan on how to address my mental state of mind, while on vacation, including reflection, relaxation and processing the problems that I'm running into.
However, I will try to answer your questions, Sirbomber as best I can.
On one hand I would agree that getting a code-engine working is a good idea, but then again I'd disagree. Its like wanting to head to some location in the world. If you don't know where you are going, how do you intend to get there? If I don't know what I intend to do for the design, then building the engine may not be a valuable usage of time. If that code engine is exactly what I want to do, then its a valuable usage of time, but if it isn't what I want to do for the design, then it is a massive sunk time cost with limited benefit. I've also paid attention to a lot of indie developers, and AAA developers and the consensus is that building ontop of a code prototype is often not a good idea, unless you specifically designed that prototype to be easily adapted.
My intent was to design the scope of the game first, then use placeholder assets to design the code to the specifications that I'm looking for.
As for level of programming expertise... limited. I started learning C++ in September of 2014, and am able to grasp most things... except for pointers, which is a WIP. I've built several small code-based programs in the Console, but haven't worked with the Standard Template Library, any of the Graphics Programming Languages (ie OpenGL), or with standalone programs. I have some experience in coding, and spotting my mistakes when I make a compiler error (most often because I didn't put in a function declaration, or missed a semicolon).
Now, I have a pretty good idea what you might be thinking: He's too inexperienced and too ambitious and he's going to run into problems, throw a tantrum and rage quit. Am I right?
However, I digress. My intent after scoping the design out was to design specific functions and classes that I would want in the game itself within smaller prototypes or essentially small "driver" programs (by driver I mean when it discusses testing functions in a separate program called a driver to ensure that the function works properly before integrating into a larger program). I would use this as a way to both ensure that the functions and classes work in seclusion, and then look into integrating them into "stubs" to see how they work with other bits of code within what I want. I would also use this to gain experience in coding, coding practices, learning from mistakes, etc...
I'm smart enough to know I'm not currently smart enough to achieve what I wish to achieve. However, I feel that spending the time designing mini programs, testing out the various features of the game, and continually learning about programming and such forth, and I might be able to start actual development of the game in a couple months (optimistically).
However, again, until I solve my current issues concerning near-burnout and prepare solutions to preventing it in the future (as there is still tons of work left to do and thus likely to pop up again later if I'm not careful) all of this is a mute point. I'll try to respond to this post up until I leave on Wednesday, but after Wednesday I won't be around until approximately September 21st/22nd.