Problems completing projects, Am I reaching too far?
Members - Reputation: 594
Posted 15 December 2012 - 07:51 PM
I'll try to be brief here, basically I'm a hobbiest programmer(technically a cs student but I've yet to learn anything new from college because I already had much programming experience) and I've been coding since I was about 15, I'm 21 now. I only spent about 2-2.5 years of that programming though because I was very off-and-on with it.
In my first year of programming I rapidly learned visual basic and managed to complete the base of an rpg game, it was 2d with animations, real time combat, items/armor, VERY simple ai, and online capabilities. It was sloppy as hell(I literally can not emphasize how sloppy my code was, every line was in the same form file) and very minimal, but I was proud that I was able to accomplish that within a year of starting to program, and when I got back into it about a year ago I assumed I'd be able to do much more than that by now.
I picked up java when I got back into it and learned good OO practices and became very familiar with the libraries and everything, I feel like I know what I'm doing MUCH more than I did back then in vb, but I really haven't been able to accomplish much more than I did as a young kid. I can write small tech demos that do pretty much anything I want, and I can organize my code and make use of design patterns now, but I can't get a working game polished and completed. I got close on a couple games, one being a tower defense android game that was like 90% done except for the levels and polishing and some more features(which would have been the other 90% I'm sure) but that's the furthest I've gotten, and it was about 4 or 5 months ago, I haven't finished anything since.
Wow this is getting long, I'll try to get to the point. So basically I feel like I have the ability to design a good object oriented layout for a game, code all the logic and functionality for all the classes/components and everything, and theoretically I should be able to complete a game by combining those two. The thing is I never do and I've been trying to pay attention to what it is that causes my projects to be unsuccessful. Here's what I've come up with..
Motivation seems to be at the root, not surprisingly. I mean if I put a few hours every day into the project and just kept progressing it would get done eventually, and I have plenty of free time to do that, but I don't. Here's the life cycle of my motivation as I observe it; I get a new idea and I think it is totally awesome, I'm all motived to work on it and I get started right away. I try to get a FULL design on paper before I jump into coding, usually I get about halfway done that before I convince myself that I need to write some code for a 'test of concept' so I don't waste all my time on a concept that isn't fun. I'll make a sketchy little demo and sometimes I'll think it sucks at that point and quit, about half the time I move on though and do a small amount more planning before jumping into coding the actual game. Although I never fully complete the planning phase it doesn't seem to effect me too much, I never have problems with code getting unmanageable or overly difficult to change/update, however my code does suffer a bit from being lazy and taking shortcuts. I'll usually get a steady 1-3 weeks in and during that time every single day my opinion of the game gets worse and worse. I usually don't get past half way done before I decide that my idea is either complete shit or beyond my abilities to implement and I'm wasting my time, I need to think of a better idea and work on that. I don't know if thats my laziness giving me a justification to quit, or just a negative outlook caused by low self-esteem that slowly chips away at my motivation.
I feel like I have a reasonably good idea of what is causing my problem, but that is not helping me solve it very much. I tried planning out 2 hours a day minimum that would be set aside to working on that project only(I tend to jump around between projects and work on many at the same time also, in an adhd kinda way, the more time I spend working on one the less interesting it becomes and the more interesting the other ones become, and my focus drops to -8 when I don't find something interesting) but In the end the exact same thing happens. I decide taht my 2 hours a day would be better spent starting a new project. It's hard to explain how I can be so stupid.
anyway I just wanted to kind of have a discussion with other people who may have had a similar problem or maybe have some insight/advice to offer me for my situation. Sitting here and thinking about it by myself is getting me nowhere, if I had the answer in my head I would have found it by now. So I'm open to hearing anything, sorry for the long post and I hope to hear from you guys, thanks!
Members - Reputation: 594
Posted 15 December 2012 - 08:06 PM
Moderators - Reputation: 6069
Posted 15 December 2012 - 08:09 PM
I want to help design a "sandpark" MMO. Optional interactive story with quests and deeply characterized NPCs, plus sandbox elements like player-craftable housing and lots of other crafting. If you are starting a design of this type, please PM me. I also love pet-breeding games.
Members - Reputation: 857
Posted 16 December 2012 - 12:00 AM
Don't be distracted by new ideas, If you have an idea for another game, that is bloody fantastic But whatever you do, don't start coding it now, don't even give it too much thought, make some notes and some quick sketches about your ideas and file it. DON'T start another project. And don't have many projects going at once. Have a core project and maybe a couple of minor projects (if even that). I have my game as my core project, then I have my model class and model viewer / editor as my secondary project, but it is a supporting project to my game, so that's OK. Then I dabble in C++ and inter-op and trying to work out how SlimDX/SharpDX work and necessarily a little bit of DirectX, but that is absolutely and by necessity a minor project. My girlfriend will often make sure I stay focused on my game, because she knows that I can get distracted by these other 'shiny' things. That actually really helps. Because if I'm not careful I can suddenly lose 3 days reading about languages and compilers 8-.
You have to have 1 core project and 1 only. Seriously, if you are doing 7 different things, you are probably doing 6 things too many. Sit down and decide which project would you like to complete, and balance that with the likeliness of completing each project based upon it's difficulty. It's OK if it's difficult, but you might be working on it for 2+ years, be prepared for that. I have been working on mine for 12 months now, but it has been my core project at all times. I didn't do very much work on it during semester, but my holidays are always gung-ho on my game.
Whatever your core project is, keep working on it and keep making it better, eventually it will be finished and it might not be great, but it will be done.
Anyway, I gotta go, hope that helps.
Members - Reputation: 3584
Posted 16 December 2012 - 12:10 AM
There's no one-size-fits-all solution. We all have different personalities, interests and habits and have to find our own way. But it does help to hear what works for others. I'm much, much better about it now than I used to be. For starters, after a painful process, I've cut down on the number of hobbies I have. I've kept the ones that are good for me physically (hiking, cycling and going to the gym), mentally (reading, programming) and that give me the most satisfaction (movies!). So now when I sit down to program I have fewer things I could otherwise be doing so I'm not so distracted. I make sure I try to keep each hobby to a semi-regular schedule, which helps mix things up. Before I would go for weeks spending all my free time at the keyboard, then in a fit of guilt spend two or three months exercising and reading without touching a line of code. As to the act of programming, I now work on multiple projects at once, usually one on one day and another the next, or split up over several hours in a single day. I'm not doing anything commercial, so there's no reason for me to stick to one project continuously. And I like to use more than one language so that I don't grow bored with one. Doing this, I feel, keeps me sharp and helps each project feel fresh longer.
Anyway, it took me a long while to recognize my shortcomings and try to fix them. But once I did, I became more productive on hobby projects than ever before. The good thing is, I didn't have to force myself to do it. If that had been the case, I would have dropped programming like a bad habit and focused on something else.
Members - Reputation: 370
Posted 16 December 2012 - 12:34 AM
Members - Reputation: 193
Posted 16 December 2012 - 02:48 PM
To counter this I've started to document my ideas much more before staring working on them. Creating some concept art work to go as well as deeper analysis of the idea and where the fun is. Even if I abandon a project I still got the idea and work I've put in if I wish to continue or revive the idea at a later point. I've also started refraining from jumping the gun and start coding without some rough sketch of the code and how to handle everything. This has also resulted in better quality of my games as well as much more reusable code/design. Solid code is easier to change which also helps preventing abandonment of the project because I cant be bothered to redo what I've already done. Having some design sketches also makes it easier to go back to an old project since you don't have to remember all the details about it.
And last but not least I've started to work a bit more with a few friends, getting help bouncing ideas and getting graphics done. This also helps with the motivation part.
Members - Reputation: 622
Posted 16 December 2012 - 03:56 PM
RULE 1 of Motivation: It has to be a project or idea your a desperatly passionate about.
IE: if you can't stay motivated making a game maybe you should find something else that motivates you.
An example with me is I can't stay motivated making games what really drives my passions is the technology behind the games. So I focus my passion twards learning the technology behind game middleware.
RULE 2 of Motivation: Small little tasks. It is hard to stay motivated on a large project so use sub projects of the large project to drive your motivation. It is easier to stay motivated if you notice you are making solid progress. The best way to do this is guage progress off the sub tasks not the large project as a whole.
Hope this helps. It helps for not only Programming but aslo writing in sunandshadow's case. I would suggest for him to tackle that novel. But focus on chapters rather then the overall picture. The overall picture is nothing more than the combination of the peices.
Members - Reputation: 393
Posted 17 December 2012 - 06:35 AM
The trick is to not allow yourself to do anything other than work. Motivation comes when you make progress so you just need to slog it out for a couple of days until your mojo comes back and then you'll find that you'll want to spend your time working on your project and that you won't need to be quite so hard on yourself any more.