I never do any planning. I find it gets in the way of the "evolution" of a game, and just helps me procrastinate by planning stuff instead of doing it. Clearly that wouldn't work in a team, but since there's only one of me, it works fine.
Having said that, my natural priority is always graphics first. I can't code until I have models and textures to put on the screen. Mainly because you just don't know what issues you're going to hit until you actually have your media in hand. Creating a GUI? I create a GUI skin first. Creating the actor editor? I create some actors first. Creating the prefab editor? I create some prefabs and some textures and normal maps first.
Beyond that, I tend to code whatever seems most likely to cause problems first, For example, I wanted a pretty ( ok, very ) complex GUI system, so the basics of that were the very first thing I did. Then it was also the first thing I wrote an editor for. And recently it was the first thing I stress tested. Huge chunks of the game engine aren't even started yet, but the GUI is already pretty complete. I also imagined that LUA integration would be tricky, so that was done as soon as practical. It actually wasn't tricky at all, but I can now script the GUI entirely from LUA, so that's nice.
I have no idea if graphics first and the hardest stuff as soon as possible is a sensible way to work or not. It just works for me. I think the best solution is to find how you work best. You can normally generalize from other work.
Having said that, my natural priority is always graphics first. I can't code until I have models and textures to put on the screen. Mainly because you just don't know what issues you're going to hit until you actually have your media in hand. Creating a GUI? I create a GUI skin first. Creating the actor editor? I create some actors first. Creating the prefab editor? I create some prefabs and some textures and normal maps first.
Beyond that, I tend to code whatever seems most likely to cause problems first, For example, I wanted a pretty ( ok, very ) complex GUI system, so the basics of that were the very first thing I did. Then it was also the first thing I wrote an editor for. And recently it was the first thing I stress tested. Huge chunks of the game engine aren't even started yet, but the GUI is already pretty complete. I also imagined that LUA integration would be tricky, so that was done as soon as practical. It actually wasn't tricky at all, but I can now script the GUI entirely from LUA, so that's nice.
I have no idea if graphics first and the hardest stuff as soon as possible is a sensible way to work or not. It just works for me. I think the best solution is to find how you work best. You can normally generalize from other work.