Briant![]() Member Posts: 742 From: Stony Plain, Alberta, Canada Registered: 01-20-2001 |
Often I go through cycles of motivation/unmotivation to work on my projects. Recently, I've been riding a very long positive wave of motivation, and I've been getting lots done. I've found the following things help keep my motivation up: - Define the ending at the beginning. Don't get into "open-ended" projects that have no real focus or defined goal - they'll just drag on forever and you'll loose interest fast. Design up front! You'll find it MUCH easier to track your progress, and thus drastically improve your sense of accomplishment as the project progresses. - Set small goals. Work on (and test with) bite-size pieces - don't overwhelm yourself with "I need to program a 3D engine", or even "I need to write code to handle textures", but even smaller: "I need to write a class that holds a texture's coordinates and graphic info and another class that loads a .jpg file". - write *good, clean, readable* code - it takes a few extra seconds to make your indentation consistent or write that comment, but when it's done, you have a sense of pride in your code - you feel like you really accomplished something, something that you would feel good about showing someone else. If your code looks like crap, you'll feel crappy about it - even if "it works". - thoroughly test each chunk of code as you write it. Don't get it "almost finished" while moving on to the next piece - having to repeated come back and rework/debug the same code gets discouraging. Do it right, be sure about it, *then* put it aside and move on. - write reusable, modular code - if you need some code to load a graphic file or read the keyboard for your game, chances are extremely good that you'll need some code to load a graphic file or read the keyboard for some other project in the future. So when writing your code to load that graphic, don't integrate it tightly so into your current app that it won't work anywhere else - instead, write it generically and stand-alone. You'll feel better about the design (sense of pride), and you'll also reap the benefit of drastically speeding up the development of your next project when you just basically drag and drop the code in and it works - which will really help with the next point: - let yourself see your own progress - don't spend too long of a stint in code that has no real visible progress. Spending 5 months on the plumbing of a graphics engine may be what's needed for a project, but do it in such a way that you don't even see anything different on the screen for weeks or months at a time. I used to work on device drivers that massaged data "behind the scenes" with no real visible progress to see as the weeks went on. Those projects became monotonous and even discouraging, (even if they are making real progress!) simply because you can't *see* your progress at runtime. Don't spend four weeks writing a good mesh-loader without trying to display meshes daily as you add code. - watch other people's progress. Don't work in isolation. Isolating yourself makes it easy to slack off. Let the progress of others inspire you to make similar progress. - when you play a game or even use a "plain app", think about it - How did they do that effect? How does that work? How would I develop this feature? - Think often about the end result. Think about getting it out, think about how you'll feel when it's finished, other future projects that can be based off it. Even think about the money it could generate! Crunch some numbers! E.g. "If I charge $10 for this software and submit it to 15 download sites, and get 100,000 people to try it out in the first year, and only 0.5% of those people pay for it, that's 500 people paying, or $5000!" That will REALLY increase your motivation to code. - tell non-programming people (your friend, your mom, your neighbor) about your project - and then keep in mind that when they see you next week, they're going to ask you about it! You better have something to say other than "Oh, well, I've been meaning to work on it but...." These are some of the things that keep my motivation high. What works for you guys? |
D-SIPL![]() Moderator Posts: 1345 From: Maesteg, Wales Registered: 07-21-2001 |
Motivation for programming, hmmm... I normally funnily enough get motivated by certain music. Some music gets me in the mood to code! Mainly The Verve! Also if i'm writing a christian game then I have to find something that makes the subject come alive. Like if i'm writing a game based on the end times then i will watch a film, something apocolyptic. That normally gets my creative flow going. I find it hard to get motivated when writing tools though, like map editors and stuff, i find that so boring... along with GUI's and menu's (like the HUD)... Anyhoo these are just a few things that help motivate me... You have to keep things fun. --D-SIPL ------------------ |
CPUFreak91![]() Member Posts: 2337 From: Registered: 02-01-2005 |
Hmm, my motivation is: Write a usefull program that someone might get excited enough to buy, or make it free and open source. (Everything I do is open source right now. I haven't mastered Py2exe). I like the tips you gave, Brian. Thanks. ------------------ [This message has been edited by CPUFreak91 (edited April 01, 2005).] |
CoolJ![]() Member Posts: 354 From: ny Registered: 07-11-2004 |
quote: I hate to pick just one out of a great list, but I REALLY like that one! Also, you forgot this one - print up BrianT's list and keep it near by! For me it's, stay away from google news and quit reading the same news story 100+ times from 100+ different places, it's all biased, depressing anyway and wastes so much time! |
CPUFreak91![]() Member Posts: 2337 From: Registered: 02-01-2005 |
Hey BriantT, I think that your motivation is good enough to make an article here on CCN. I have a desktop background changer for my comp. and I have your motivation as a .jpg text background. ------------------ |
Goldrush13![]() Member Posts: 107 From: Registered: 02-27-2005 |
I decided to take your advice guys, I crunched numbers whilst listening to The Verve........... Long story short, remind me never to read a BrianT thread again. |
Briant![]() Member Posts: 742 From: Stony Plain, Alberta, Canada Registered: 01-20-2001 |
Wow, I didn't think it was that great of a list, just some ideas. ![]() Goldrush13, I don't get it - why don't you want to read my threads anymore? |
Goldrush13![]() Member Posts: 107 From: Registered: 02-27-2005 |
I hate it when my jokes don't go down well, maybe it's because I don't use those ridiculous smiley face things. |
bennythebear![]() Member Posts: 1225 From: kentucky,usa Registered: 12-13-2003 |
goldrush was referencing to d-sipl's use of "the verve" , and figuring out how much money he would make by "crunching numbers" (from briant's list)...i laughed once i read back to get what he was saying...actually was funny to me. p.s. smiley faces would've ruined it ![]() ------------------ www.gfa.org - Gospel for Asia www.persecution.com - Voice of the Martyrs |
Goldrush13![]() Member Posts: 107 From: Registered: 02-27-2005 |
Yeah BrianT, what he said. |
Briant![]() Member Posts: 742 From: Stony Plain, Alberta, Canada Registered: 01-20-2001 |
Ah, I'm slow on the uptake. ![]() Speaking of crunching numbers: Very successful shareware will get from 2% to 5% purchase rate, as opposed to the 0.5% I gave above. So although the numbers I gave above are probably much closer to realistic numbers to expect, let's consider a "best case": - you develop a *good* game or app OK, that's amazing. Likely not going to happen, but not impossible. OK, motivation up again, off to code...... |
CPUFreak91![]() Member Posts: 2337 From: Registered: 02-01-2005 |
Hmm, I wonder how many people would pirate the game/app if you put in the registration code section: Please don't distribute this you username and code to others. I/We trust that you will not, but if some one does please notify me/us imediately. ------------------ |
fingolfin![]() Member Posts: 197 From: IL Registered: 03-19-2005 |
Yeah, a good way to keep your steam it to section your time into things that aren't fun and things that are fun. Do some of the boring work and them some of the less boring (and even fun) work. This way you can attempt to avoid the getting caught in a huge mass of really really boring work. I try to do that with school. |