   Starting a project..... and finishing it
  hi.im having a problem as a developer, i cant seem to finish many of my own projects...i have no problems to complete work related projects and milestones, but i cant seem to muster any discipline when it comes to my own (supposedly fun) projects.the main problem i think is that when ive prototyped "the hard part", ( the cool part, like a really good terrain algo or some awesome AI ) i lose interest as i start doing all those things "that needs to be done" (tm).that gray blob of glue, interfaces and managersso im just wondering what type of steps you guys take to keep that fun feeling of working on something genuinely your own, from start to finish.   
  A well-known developer once said that once you've finished the first 90% of your game, then you have to finish the other 90%. I've found this to be true myself, and I think it's probably why so few hobbyist and independent game projects are ever actually finished.I'm almost there now (finally), and I'll tell you what's probably made the most difference this time around: a did all the 'glue' stuff (interfaces, game states, etc.) first. And I mean all of it! Before I had a single guy running around on screen, I had a fully functioning hierarchical menu system with all the options you'd expect (modifying controls, audio and video settings, etc.), and a fully functioning in-game console.Those things aren't unusual or impressive of course, but the point is that by doing them first, most of what was left was the 'fun stuff'. Before that I'd done a lot of what you describe - create lots of cool tech demos. But at some point I realized that if I was ever going to complete a game, I'd have to take a different approach.A few other random tips:- Use third-party libraries or middleware wherever possible and appropriate. The less 'glue' stuff you have to write yourself, the more motivated you're likely to be.- Watch for feature creep; if you try to implement every cool idea that occurs to you, you'll probably never finish the project.- If the 'glue' code isn't interesting enough to you to write, try to make it an interesting challenge by striving to make the code solid and well-designed. Or, just use some sort of framework or game authoring tool that does most of that work for you.Even then, that last 90% can be a bear. When you're just working on your own game on your own computer for week after week, a lot of stuff can be ignored or swept under the rug. But once you get serious about it and start thinking about distributing your product for real (on multiple platforms, no less), all of a sudden you've got a lot more issues to deal with. How's my resource management? Does my game use too much memory? What's the download size going to be like? Is it going to crash when run on system X with soundcard Y? Does the user interface consistently conform to the principle of least surprise? Will it look acceptable on any monitor commonly in use, even laptop monitors or monitors with weird aspect ratios? Did I get all the endian-dependent code right? Will there be unexpected problems with Vista? Intel Macs? And so on.Depending on the type of project, some of those concerns may not be relevant. Nevertheless, that 'other' 90% is tough, no matter how you slice it (if, that is, your goal is create a polished, professional, and/or marketable product).This is just my experience of course. YMMV.   ;  You know what? I have the same problem.I think it's quite common for game dev guys.I have dozens of unfinished projects.To date I have maybe finished half a dozen small ones.1) Ratmaze2)Blackjack3)Tetrisa few others..It is programming after all. So easy to get bored. It takes so long just to get the simplest of things done it drives me crazy.And the less I know about an API/Language ect. the worse it is.Endless hours of slogging through MSDN, strange guru code and just plain wrong code to figure outwhat should be the easiest thing to implement.And no I'm not a big fan of game maker tools.It makes me feel limited.But then again I seem to constantly re-invent the wheel only to find out someone else has done it a million times better.What we need is a really good game book.One that designs and codes out a non-trivial game elegantly from start to finish but at thesame time is easy to follow and entertaining. The game doesn't really matter.Call it Maybe "Programming Pacman, Start to Finish"Written with Current Technology, not some 1970's code.I think it's possible to do this...(maybe not , what do you think?)Greycrow   ;  You might get a little farther by trying to do all the boring stuff really well, too. If you do it right, this turns it into a challenge, and it's not boring anymore. Try to come up with an interesting way of doing it.I like software architecture. In my case (I have the exact same problem), I might try to come up with a design for the program that makes, say, all the menu stuff a breeze to do, once I come up with my system for it. I'll be driven to finish the "menu engine", and hopefully once it's finished I'll be all to happy to put it to work with the other stuff. Of course, you have to be careful you don't fall into the engine trap, which will kill your project almost as thoroughly as apathy. If you go that route, make sure you're using the engine as you write it.But try to come up with cool ideas for the rest of your infrastructure and hopefully that will help with motivation. It may also make your game stand out a little more, because of the extra attention paid to all the different parts.As I said, this is something I'm still struggling with, and not just in programming either. This is just what I'm trying.   ;  The first thing I did was to drastically cut the complexity of my future projects. When I thought I'd cut it enough, I cut it again. Every time I thought of a great new feature, I adopted the mentality of 'it can wait until v2.0'.Another small thing that helps me is naming projects. Many people probably do this first (or there abouts) but I had endless projects called 'game'. The naming process made it more intimate for me and I became more attached, progressing much further through the development cycle.As for the boring stuff - to me it's collision detection, UI etc - I always remind myself that 'I only need to do it once!'. If it's written properly the first time, it should be portable to any future project and up-and-running with a few small tweaks.   ;  I think every indie developer has at least one or two projects they started and never finished.A few suggestions, use your strength (creative gameplay) and avoid your weakness (time consuming content).  You don't want to make RPGs, MMOs, or anything that requires lots of content.  Use third party stuff wherever appropriate.  I think keeping your game focused on one core gameplay element and leaving everything else out helps a lot.I'm reminded of the post a few days ago that pointed to:http://www.andrewrussellstudios.com/sketchable/;  I've had the same exact problems. I have folders full of great ideas for games and nothing ever gets done. I mean, I start it and the world seems happy but I could never finish anything. That's when I decided to sit back and observe myself ( yes. It is possible ). What I've been doing wrong all along:1 - Don't make your own engine crap if you 100% don't have to. Abuse 3rd part libraries. Just because you didn't make those libraries does not make the time and effort you make into your game any less of your own game. I have been looking into actual game engines lately and my "side experimental projects" are much more further along in progress than any attempted full game. 2 - As a few members have already said, work on the GUI and mechanics first. One of my main issues was coding game mechanics into a raw and bare source page. It would look like like a game but the later question would be "now how to add more and bend this the way I want it to?"3 - Find buddies. Working solo is great but I notice more work is done when I have someone else working along side of me and waiting on me. I am one of those people who work great under pressure. When I am on my own, I take my dear sweet time. Nothing wrong with that, but I won't get far in an amount of time. With another member on the project ( they have to be somewhat deeply involved for this to count ) I know the other person may be waiting on me in some fashion or another. Pressure = work. 4 - Blog it. Or something. When I put my idea and current progress out for the world, someone is bound to read it. If it is a good idea, they may be returning visitors. When you know people have interest it is excitement and more of a reason to finish the next demo / beta / release / whatever.5 - Making games do not last only 3 months. Many experiences I have been in, the team slowly lose interest because of time. "Is anyone actually working on it?", "Are we not doing this anymore?", "Why aren't we done?".Many great games, and even those that aren't so great but are finished, could last from a year to years. It is not a simple and easy process. especially when others involved can be around the world or have other life that may preoccupy them. Things will get done if everyone shares the same goal. Don't be downhearted if from a year from now you are getting a crappy level system in . That may be farther than any others have achieved and* it is progress.The only downfall I can truly see, from my short experiences compared to some, is that I see developing video games as a form of art. It's not all cash and glory... all the time. Now granted I'd like to get paid for my ideas and creations or/and partaking thereof but I want to make sure I form and mold my art just right to where I'm pleased and happy with it.Anyway, So it goes.   ;  This project took quite sometime to finish. I thought the task was impossible, but fortunately I was able to achieve my goals after so many months.http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=17&t=3037I used Irrlicht and Bullet to create a demo bowling program.   ;  I too have a similar problem, and I think it's just common with this sort of hobby (and others, my hobby OS is far, far from finished).  I've only finished two games in my life, and both were Flash games.  The boring parts of game devving can make you quit, or realizing that you're never going to get it done.  That's usually my problem.I find that in my case, it helps to plan it out.  Create milestones for yourself, have something ready to do the next day.  If I ever had to sit down and look at my code and try to figure out where to begin, I'd instantly lose motivation.My last game fell apart partly due to bad planning on my part and partly due to realization of just how much I had to do.  If I could have broken it into manageable parts, maybe it would have turned out differently.  That's what I'm going to try this time around.   ;Quote:Original post by LackOfGracei have no problems to complete work related projects and milestones, but i cant seem to muster any discipline when it comes to my own (supposedly fun) projects.Think about what you should said there. "supposedly fun". A hobby is indeed supposed to be an enjoyable activity. There is no point in forcing yourself to do something in your freetime if you don't really enjoy it.Quote:Original post by LackOfGracethe main problem i think is that when ive prototyped "the hard part", ( the cool part, like a really good terrain algo or some awesome AI ) i lose interest as i start doing all those things "that needs to be done" (tm).Yep, that's a classic. But is it really bad ? I don't actually think so. As you said, you always finish your work related projects on time. So it's not as if you couldn't do it, there's nothing you have to prove to yourself or others. If you don't finish your hobby projects because they're getting boring at some point, so what ? Move on to something that you actually enjoy, for example the next challenging project.Yeah, 'finishing' something might give you a feeling of accomplishment in the end. But is it really worth it, when you have to invest a lot of time into activities you don't enjoy doing ? I don't think so. Remember, this is not to make money, it's your hobby. And it's supposed to be fun.