1) I can't seem to nail down what I actually want it to do. I say I want it to do one thing, but I'm coding and designing it to do something totally different.
2) I can't write a GOOD system to run underneath an engine when I lack the experience to even write a good engine. All together I've made 2 or 3 pong clones, Chompy, and Blocks Gone Wild.
The sad part is that Chompy and BGW were my best designed games: they weren't hacked together, they used a stable, solid library (my Quickies library), and all together worked really well. It took me about 8 hours to write the Quickies library along side of Chompy and then about 3 hours to separate the two. Then it only took me another 3 or 4 hours to write BGW. I don't know if any of you remember Spelunker, the game I started writing right after BGW (I don't even know if I ever posted the screenshots I took), but I had the engine for that and 5 levels finished in around 4 hours.
This is going to kind of be my course of action for my 2D RPG. However, I've been asked to finish the prototypes that I designed out a while back before I do anything else. So, what I'm going to be working on over the next week or two is writing four small projects (that I've dubbed Prototypes.)
Prototypes are basically one level of a working engine without a GUI, game states, etc. The characters will be controllable and I'll code what little UI I need (a simple dialogue system for example), but the rest will be controlled via the command console I'm working on.
So, say you're playing the RPG prototype that I have planned. You pick up an item using the mouse, which would print something like "# of item_id placed in Player's inventory." Then, to equip it, you'd type something along the lines of "/equip Player item_id" (just an example off the top of my head really, I'm still working on how the command system.)
I am going to add a couple very basic features to the toolbox. Mainly saving/loading textures, creating a graphics device, and probably a way to make a window. Nothing fancy like resource caching or anything, just the very basics.
I'm also tossing around the idea of writing a stand-alone font engine for Direct3D. I have no clue when DirectWrite will finally be released (I'm assuming sometime around when Windows 7 comes out), but, while it is very awesome, it's not game oriented and is very "generalized." I'm thinking I'm going to rip out what I have in RGDK, remove any attachments it has to my graphics core, and finish that. That way I'll always have a font engine ready to go when I start a game. Plus, when I finally get around to my stand-alone GUI library, I'll have a matured (not "mature", but I'll have used it in my prototypes and found some bugs and whatnot) font engine to start off with.
My to-do list looks like so:
* Add basic wrappers to my toolbox
* Write a stand-alone font engine (maybe)
* Do prototype #1
* Do prototype #2 (platformer)
* Do prototype #3 (RPG)
* Do prototype #4
A good month or two worth of work, but I think it'll be worth it. Anyway, that is what's going on with me.
I forgot to mention it, but I'm going to be starting each prototype from scratch. I decided to do this for the simple fact that my mind won't be busy wondering if I'll be using this or that in the next one. That's always my downfall; I start a project, code something that could be reusable (keyword being COULD), so I strip it out and end up working on a library of some sort.
Also, I know that I said I was starting a game in my tweet, but I decided against that. I don't want to do any of the games I have planned yet and I could spend weeks trying to come up with a medium-length game (something that takes more than a couple hours to finish, but less than 10) so I decided against it and a friend suggested I finish the prototypes that I was talking about.