So I was trying to figure out how to reorder it all. What windows do I need? How do I divide it into different screens with shortcuts? Do I need a hotbar? If the user is in a shop does the floor need to be visible? Should the message log be minimal but expandable? etc. I kept hitting the same brick wall - I can't answer a lot of those questions until I know what game I am making. For example I was wondering how the user would put spells a hotbar, but that depends on, among other things, how many spells there will be. I haven't even worked out the spell system yet (or even decided if I will have spells!)
So I have reached this conclusion: Design the game before making it
Until now I have been trying to make an enginey kind of sandbox and worry about what game I am making later. I know I am making a rogue-like but what is the setting? (medieval? sci-fi? fantasy?). Does it have magic? What is the skill system? What is the XP system? What items will there be? What monsters will there be, etc. How does it all fit together? That's the key part: fitting it together. If I just implement things separately. they won't tie together. I mean that's how minecraft was done and while it's one of the best games ever I think a general weakness of singleplayer is that there was no focused game, just cool bits and pieces being added on in each update. Eg wolves, how do they really fit into the game?
I don't expect to be able to design the game completely up front. There will be discovered problems and new ideas that will modify things, but even with a rough design it will be much easier to prioritize things, faster to develop and the game should be better at the end. I can also bounce the rough design off people who might turn round and say "no way that sounds boring!" and then I can go ahead and do it anyway in defiance. So next post will outline exactly what the game is, the setting, the ending, all of it.
How do other people do all this? Do you already have a 90% complete game design written down?
Well, this isn't the state of art either :-) Designing before creating would be a waterfall process, whereas the software industry moved over to more agile software processes like [url="http://en.wikipedia.org/wiki/Scrum_%28development%29"]SCRUM [/url](a good read, even for one man projects, there's a lot of good ideas you can benefit from).
In other words, you develop the game with a more or less detailed idea at the start and refine the idea while developing. In this mind, you're developing in an agile way, and believe me, you are not the first one who drop a gui design (I'm currently at the 5th iteration and I fear, that this one is not the last one ).
Experience is one of the most important properties which helps you too avoid such results and you will only learn by failure. In this way, you've done all right , keep the work up :-)