Having fun is more important than being good[/font]
Due to some problems I ran into while getting spot lights to work in my shaders I came to the conclusion that I would like to have the ability to switch back and forth from the fixed function and the programmable pipelines. I also figured it would be a good feature to be able to target older systems that didn't support GLSL. With this in mind I added the item to the top of my todo list and felt good about doing the "right" thing next. It was at this point that forward progress slowed to a crawl on my project.
The biggest problem with this work item is that I don't really gain anything out of it in the short term. I've already got things rendering fine with my current system so adding fixed pipeline wasn't going to visibly change anything. As for targeting older machines I am barely ready to start prototyping so I'm only going to be running things on my laptop which supports my current pipeline just fine. Despite these issues staring me in the face I still was trying to plod on with this work item but I found myself reading forums and watching hockey more than coding.
Finally after a week of making very little progress and feeling bad about it I decided to figure out if I really needed to be doing this work. A quick look at the Steam hardware survey and a similar one from Unity showed that the number of users with cards that only supported fixed function was noticeable but not necessarily an issue if I couldn't target them. When you add in the fact that I don't have a known end target in mind for my current project one can assume that the number will go down by then. I also thought of some of the things I have in mind to implement and I wasn't entirely sure how I was going to do them in fixed function. The long and short of it was that I finally just decided to say F' it for now. I can always go back and do this work later if I decide that I really need to but there's no reason it has to be high on my priority list right now. With that decision out of the way I felt refreshed and excited to code again. I finished up integrating OIS for joystick support earlier this week and am finally getting ready to start prototyping.
Sometimes deciding to not do something is the best way to make forward progress.