There are so many great projects out there and there are so many skilled persons keeping them alive. Sadly not everyone has the breath to work on his project until the end and that doesn’t matter. There are often more important things in life than games and development (really ;)).
I wont bother you again with the reasons why many projects fail like I did in the past. But what I notice again and again is that people start a cool software project and talk it to death. I was involved in a very cool discussion lately on www.gamedev.net on using STL in a game engine with performance issues. While I did some research on the above topic, I noticed that many developers (like me no pro) lead endless discussions on std::list<> vs. std::vector<>. Wow There was really a topic where a guy needed 9 months to develop his texture manager because he didn’t know which container to use. The discussion was held on a high level so not the integration was the problem but the performance and the accessibility. It was an quite interesting discussion and a very technical too but are we serious? I mean this guy lost 9 months on a texture manager how much time will he loose when he integrates a sprite manager?!? I met this guy again lately on ICQ and he told me he stopped the project due to missing motivation. I had the chance to discuss with him some minutes and he pointed out that he was focused on having a texture/material manager with good performance. Yeah, I stated, but was it worth loosing so much time on a texture manager? You usually load textures on level startup and don’t need to reload the levels while game play, so you could have used a std::vector<> container with sequential access and preventing of loading same textures more than once which would have costs him some days.
It was a very interesting discussion. People (non-pros) are often so focused on shaving of some seconds on routines that they loose the real focus —> the project. So it’s understandable if you loose your motivation. Saving some ms in this routine and some in another is good and you should also profile your code to detect weak points and application critical paths but please stop with endless discussions between vector and list. 3 frames more are a small advantage compared to 9 months of development and sure not worth.
My advice: stop talking and start coding. Do you think your game engine will get better if you talk about it? No one will be interested in if you used a vector or a list in your texture manager. No one will notice it and no one will ask for it. So stop enhancing the wrong parts of your engine.