Now the interesting, philosophical part. At the beginning of this summer, I made a very complicated 2do list, with sub points, time estimates etc.
Right near the beginning, my 2do list was a subtask "Make and test a AI for using ranged combat." One purpose for ranged combat was so monsters could use it, so a AI that could use it, so this was a essential part of the major task "Ranged combat", so I went ahead and designed a type of monster that would shoot arrows, made a image for it, etc. Then I was about to code the monster, when I decided this was going to be easier to do after I had the XML loading in place, and then just add a attribute whether the monster should be able to throw stuff, what it should be able to throw, etc. The next major task on the list was item identification, but again I decided this would be easier to do after the XML loading also, so I went on to the next major task which was the XML loading itself. This one had a lot of subtasks, especially a lot of attributes to add for basic objects, like ways to define starting inventory, drops, etc. The list of stuff to do was growing faster then how fast I was plowing threw the work, and the work was very confusing, hardly visible, and I ended up procrastinating a lot. At the end, I decided that most of the attributes where non-essential and just move on to the next task, which was the very much related and a lot of the subtasks where more related to the other system really, like "A system to scramble the fake names so you don't know which item is which even if you replay the game" This would need to be implemented in the XML loading class, perhaps with a attribute added to a attr tag, something like "Scramble category", and then scramble the marked attributes later. This system would be important because I want the images to still match the name, even when the function doesn't. The complicatedness of this task was insane so I moved on to some other, later tasks (In this case, ability to limit a item or monster to a maximal amount of incarnations, that was incorrectly put under the item identification)
Now, however, my efforts are getting way to spread out. I am definitely not happy yet with the XML loading, so every other day I tell myself "Just finish that first" Then I look at the stuff to do, and decide I will jump to the next major task, which is very difficult to do without enough monsters registered, so I go back to another task, find it's do difficult also, and usually find a minor task I can do eventually. However, working on to many tasks at once feels bad for me (This is the philosophy part) since I end up working on none of them at all. All the tasks I skipped still really want me to do them before the later tasks, since I am afraid I will have the dirty work left after the summer, which is exactly the part I have the time to do now, but I also don't want old tasks to block my progress and motivation, where finishing new tasks first will make doing the old ones later easier, since even when they are unrelated I am avoiding writing code I will need to rewrite later. While I will probably decide which one to do in a couple of days, any advice on dealing with this situation is appreciated.
(And yes, the new game I downloaded has something to do with it)