- Online Community Forums » Off-Topic Ordeals » Motivation

This thread is locked; no one can reply to it. rss feed Print
Kris Asick
Member #1,424
July 2001

I tried three times to get myself to program more of my graphics application today but all three times I was only able to get about 50 lines of code in before my mind turned to jelly. Food didn't help, water didn't help, and neither did pop.

Granted, I'm adding the file handler into my program now, which is something I'm not greatly experienced at doing, and it's being made more overwhelming since eight of the ten load/save dialogue windows are all using the same code. (So that I only have to write them once instead of eight times.)

...I find it funny that I can write a basic tile mapping system within an hour but I can only get 1/3rd of a file handler done in three. >:(

I didn't get any work done on it for over a week as I was working on documentation for other projects coming up, so I'm only up to v0.11a. (About 3000 lines of code.)

But enough about that. I'm basically wondering what everyone here uses to motivate themselves. Perhaps I can apply some of the wisdom to my own situation and really get myself wanting to program again.

--- Kris Asick (Gemini)

--- Kris Asick (Gemini)

Hard Rock
Member #1,547
September 2001

Well right now I'm watching a movie, and tomorrow I shall be going out and the day after I'll probably do some reading and maybe some studying for school.

Yeah I notice theres no programming in there :p.

Basically, as it's been said before, if you don't want to program don't force yourself to. There will be lots of time to do that when you work.

Anyway if i really need to get some work done, I make a schedule every week and try to adhere to it as best as possible. You can average out work between multiple projects and the fun and boring stuff so as to not lose to much motivation. It's made every week because I never actually make the schedule hence it needs to be updated frequently.

You'll find once you get one project done, you get snowballing momentum, and then when you let go of that it's hard to get anything done.

Hard Rock
[ Stars Dev Company ][ Twitter ][Global Warming: ARA My TINS 07 Entry][Pong Ultra Website][GifAllegS Ver 1.07]
"Well there's also coolwebsearch but we'll let that be an IE exclusive feature" - arielb on the New Browser Plugins "What's better, HTML or Variables?"

Matthew Leverton
Supreme Loser
January 1999

First, ask yourself if it's really that important. You only live once, so there's not much use in doing something you don't want to do.

That said, it's very hard to do something when you feel like you are on an island by yourself and that your work is irrelevant. So one tip is to share the details of your project with people and create excitement about it. Also, you need to discover a purpose. If you cannot justify what you are doing, then you won't be motivated to do it.

Basic daily motivators are as simple as keeping track of a TODO list and forcing yourself to do at least one per day, no matter how small it is. Taking extended time off a project can effectively kill it.

Thomas Fjellstrom
Member #476
June 2000

I totally agree with everyone here. That said...

I really need to find myself a good todo manager... And I need to re train myself to use one, with lots of little steps instead of all the larger ones that look like too much damn work :D

Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" --

Member #6,152
August 2005


Taking extended time off a project can effectively kill it.

ML's really got a point here. I decided to take a break from my rigorous programming as of late to get back in the mood, but haven't managed to get back into the swing of things. Little breaks are okay, long breaks are bad. You know, you have a four day vacation from work and on your first day back you don't want to work too hard. With hobbyist programming, you don't have to work at all, and the "vacation" will keep being extended.

As I said before, I hate dealing with files and/or file handling. In situations like this, there's two options. Sit down and chain yourself to your desk until you get it done or have several modules of your project you can work on and when the file stuff gets annoying, work on another, less-annoying module.

------------ | My Tech Blog: The Digital Helm

Member #1,090
July 2003

Tomasu said:

I really need to find myself a good todo manager...

What I use is notepad. An example todo list of mine looks like this:
(It's from the DCGG.)

1((v)ictory!)write to-do list
2(v)set unicode mode
3(v)startup allegro
4(v)load all strings
5(v)kill all strings
6(v)load datafile
7(v)unload datafile
8(v)load AUTH,HOME,MAIL strings from datafile object BITMAP_DBLOGO
9(v)unload AUTH,HOME,MAIL strings
10(v)shutdown allegro
11(v)examine menu items and take notes for additional dialogs
12(v)examine mockup and take notes for dialog items
13 and positions
14(v)examine buttons and take notes for additional dialogs
15(v)write menu array
16(v)write dialog array with all the standard d_procs
17(v)write custom d_clear_proc or add fixed modesel.c and guiproc.c to release
18(v)write non standard custom messages(scroll up,down,left,right)
19(v)write main loop with support for scrolling dialog on backbuffer
20(v)write basic sub dialog starting/ending branches
21(v)make bmp,pcx,tga,code,dcgg file strings global to preserve their content
22(v)write customizable RED ERROR alert(centered on screen)
23(v)write ascii file extensions to unicode converted table, init deinit
24(v)debug exit bug with unsaved changes
25(v)write cleaner subdialog handling with custom scrolling dialog routine
26(v)function to stretch the unsaved changes alert as necessary
27(v)unsaved changes alert dialog (buttons save, save as..., ignore, cancel)
28(v)unsaved changes click return behaviour
29(v)same for load and new (move inner switch to outer then just change sub_request)
30(v)the load dialog itself
31(v)fix tab,pgup,pgdown,up,down,home,end "change signalling"
32(v)write function to "reset preview bitmap" from loaded gradient (kill bitmap,new bitmap, draw (black cross))
33(v)fix < 32bpp color modes, broken mouse cursor and color conversion
34(v)fix 8bpp red alert message
35(v)insert secret grayscale mode(select 8bpp, hold shift on click ok)
36(v)write callback function to show render progress message
37(v)write function to process click on "recalculate"
38(v)change class hierarchy in gradient generator to prevent some more conversion trouble
39(v)add gui info getter function to attractor classes
40(v)write function to update author/title contents from loaded gradient <-
41(v)write function to set author/title contents from fields ->
42(v)write function to update field contents from selected attractor <-
43(v)write functions to set attractor from input fields ->
44(v)fix set_hep BUG with POLYNOMIAL
45(v)write attractor scroll list d_proc (msg_draw, msg_scroll_xyz, msg_click)
46(v)write attractor scroll up/down button message sender d_proc
47(v)write bitmap scrolling d_proc (msg_draw,msg_scroll,msg_key)
48(v)write bitmap scrolling buttons up/down/left/right message sender d_proc
49(v)select language dialog
50(v)make type dialog
51(v)make mode dialog
52(v)make select color dialog
53(v)make distancemode dialog
54(v)add button processing function
55(v)duplicate button processing function
56(v)delete button processing function
57(v)make coefficients dialog (one fedit field and a custom list)
58(v)make set dimensions dialog
59(v)change update absolutes of attractors to accept a callback function, that
60 will inform about progress (e.g: if large lookup tables have to be created)
61(v)fix memory hole with gradient_generator
62(v)finalize save function
63(v)finalize make save as dialog
64(v)overwrite confirm alert
65(v)check size of logos and position text strings
66(v)make about dialog
67(v)make export bmp dialog
68(v)make export pcx dialog
69(v)make export tga dialog
70(v)write quick reference text file and place a hint to it manual dialog
71(v)insert thanks section into manual
74(v)fix some visual glitch(restoring backbuffer, before running frontbuffer dialog)
75(v)fix save as cancel SAVE FAILED bug
76(v)stretch proc should also shrink the first object if it is too large(noticed on unchanged dialog)
77(v)change 1,4096 clamping behaviour of dimension dialogs to perform only "on lostfocus"
78(v)optimize datatransfer between edit fields and generator to perform only "on enter || on lostfocus"
79(v)remove mouse_inside_window check because it is unreliable and still systemdependant
81(v)allow resolutions higher than 800x600 stretch preview field then
82(v)clean up code
84(v)allow moving of attractors up and down the list
85 (v)draw move buttons
86 (v)put move buttons into datafile
87 (v)add move buttons to interface
88 (v)write switch method for two entries for gradient_gen
89 (should autohandle invalid switching and stuff)
90 (v)attach attractor movement (using the previously written switch method)
91 to interface buttons
92 (v)make the list scrolling follow the moved attractor if necessary
94(v)change callback function to be called on milliseconds elapsed, not values processed
96(v)fix wrong ELLIPSE behaviour(throw it out!, promote ELLIPSEP to ELLIPSE!)
97 (v)make load function interprete ELLIPSE as ELLIPSEP
98 (v)remove old ELLIPSE from interface, generator
100(v)make export code dialog (shadowbox, ok, cancel, instancename, stretchbox, yield, null)
101 ok --> select_file
102 (v) extension ".cpp"
103 (v) add a string INSTANCENAME to the languagefiles and to the string enum
104 (v) write the dialog definition
105 (v) include that string into the conversion/attaching of string to dialog entries
106 (v) write function to show and handle the export code dialog
107 (v) attach that function to the specific item in main menu and activate it
108 (v) fix wrong caption in export code dialog
110(v)add wrong extension alert to bitmap exporting and code exporting
111(v)add wrong extension alert to save .dcgg file
112(v)add autorecalculate check item to options menu
113(v)apply autorecalculate to dt_apply_changes
114(v)fix "gradientchanged" on lostfocus, even if already changed on enter
115(v)fix about dialog display problem with larger font
116(v)remove recalculate on change author/title
118(v)write click/keypress and associated setting of edit fields to attractor ->
119 (v)click - position (all except global)
120 (v)rightclick or R (range, different for circle and ellipse)
121 (v)mclick or D (radius for circles, width height for ellipse and pointe)
122 (v)A (angle)
124(v) add drawing of small position and angle indicating lines when bitmap has mouse focus
125(v) change new s to new (nothrow) s.
127()manual dialog
128()write documentation about attractors, formula, user manual
130 * implement missing features(render over image(generator already
131 has it, but it is not yet
132 accessible from GUI),
133 save language on exit
135 * write USER, TRANSLATOR, DEVELOPER documentation
136 * seperate GUI code into smaller (better maintainable) files
137 * optional loading of font from a datafile "languagename.dat", so
138 that translators can create fonts that include the needed UNICODE
139 ranges for languages not supported by the Allegro standard font
140 (write FONT creating documentation (max font height will be 22 pixels)
141 * clean up code
142 (only the top-priority "todo"s are listed here)
144()fix point e / ellipse middleclick dimension setting (is set wrong when attractor is rotated)
1469()add new mode: multiply
1479()fix wrong POLYNOMIAL to curve behaviour (has probably sth. to do with LUT)
1489(ignore)popup dialog export dimensions crashes in the DEBUG build (an allegro bug? (i think yes))

It works as follows.
I first insert one line per item todo:

() make chickens palette
() animate chicken walking left
() draw bomb icon

I then sometimes put priority numbers in front of those items (whenever I don't feel like working them down from top to bottom).
When an item is done, I immediately go and check it off the list by putting a 'v' inside the '()'. What's very important with this is to think "The V stands for victory!" when putting it in there.
The items that are already done are kept on the list, so that in times of motivation problems, it is visible that already lots of stuff has been done and that gives me faith that the other things will also be done eventually.

So.. why is DCGG still not finished? Well, I got a job while I was working on it, so it's basically on ice.
Anyway, remember: "The V stands for victory!" :)

Member #7,317
June 2006

Kris, sounds like you need to take a few days break? Get away from where you are and just blob out somewhere without the PC.

"Shame your mind don't shine like your possessions do" - Faithless (I want more part 1)

Richard Phipps
Member #1,632
November 2001

Sometimes you just have days like that.. :-/

Thomas Fjellstrom
Member #476
June 2000

Dennis Busch said:

What I use is notepad. An example todo list of mine looks like this:

Sadly thats not easy enough ;) nor pretty enough. Something that effectively timed how much I work on an item would be nice to... But that would be interesting and inaccurate (you'd have to like attach projects to program windows and check for usage...)

Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" --

Member #2,606
August 2002

Isn't this the project that was supposed to take two weeks, two months ago? I'd say it's about time to wrap this thing up and move on to other things....

Thomas Fjellstrom
Member #476
June 2000

Except hes making it so he can use it. Its a tool after all.

Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" --

Richard Phipps
Member #1,632
November 2001

Hmm.. a few people here seem to be suggesting he should give up. That would be a mistake in my opinion, he should carry on and finish the paint program.

Member #737
November 2000


Sadly thats not easy enough ;) nor pretty enough. Something that effectively timed how much I work on an item would be nice to... But that would be interesting and inaccurate (you'd have to like attach projects to program windows and check for usage...)

If you're working with Eclipse, check out Mylar.

Indeterminatus. [Atomic Butcher]
si tacuisses, philosophus mansisses

Crazy Photon
Member #2,588
July 2002

Yesterday I discovered this blog with lots of useful advice. This one is the top 20 motivation tips BTW, ML's advice is #2!

Enjoy and happy programming! :)

Resistance is NEVER futile...

Kris Asick
Member #1,424
July 2001

Thanks for the advice, everyone! :)

In regards to taking extended breaks, I find I can't. Every day I always seem to work on some project or another, whether as code, as graphics, as sound, as music, or as documentation. It's actually very hard for me to skip away from my work for too long.

The thing is it's hard for me to work on one thing at a time. So when I try to work on the most important thing, it doesn't necessarily end up being the thing I want to work on. (And my drawing program is important as its font features will dramatically cut down the amount of time it takes for me to make conceptual screenshots.)

The past six or seven weeks has only seen about four weeks of effort into my drawing program, one of which was conceptualization, so only three weeks of programming has actually gone into that project since I started it.

Beyond that I've been working on documentation for four game ideas, three of which I'm likely to make by the end of next year, and my game engine docs.

I guess, to be more specific, I believe what I meant was I need to find a way to motivate myself to do what I need to do, rather than what I want to do.

It wasn't hard when I coded for another company, though occasionally I would spend a day or more writing side-code that wasn't actually going to go into what we were making, but which probably saved me time in the long run. And every opportunity that came up where I could code something above and beyond the standard, I jumped at it. But, while I worked for that company, I found it was nearly impossible to code at home. (Coding for 6-8 hours a day would leave me not wanting to look at another line of code afterwards.)

And it doesn't help that we weren't using C/C++, so for two years my C/C++ skills atrophied. It's been taking me time to really get back into it.

--- Kris Asick (Gemini)

--- Kris Asick (Gemini)

Arthur Kalliokoski
Second in Command
February 2005

It depends on what the 50 lines of code has to do. There have been plenty of times where I took a couple days to write 5 lines of code and I didn't consider that "too slow".

“Throughout history, poverty is the normal condition of man. Advances which permit this norm to be exceeded — here and there, now and then — are the work of an extremely small minority, frequently despised, often condemned, and almost always opposed by all right-thinking people. Whenever this tiny minority is kept from creating, or (as sometimes happens) is driven out of a society, the people then slip back into abject poverty. This is known as "bad luck.”

― Robert A. Heinlein

Dustin Dettmer
Member #3,935
October 2003

I find bugzilla highly demotivating. My todo list never moves. And finishing a bug isn't rewarding at all, it just drops me off at the next bug in the list!

Something simple, a cool graphic, maybe even a flash gadget saying "Good job!" would do wonders for my motivation..

Francois Lamini
Member #7,791
September 2006

Did you go to the john yet? That's what I do when I can't think of what to program. Turns out I need to take a dump and it was that that prevented me from thinking.


Member #1,204
April 2001

It's very difficult to stay motivated. Almost all of my personal projects ended up in the recycle bin.

Member #2,030
March 2002

Crazy Photon: ... both your links are identical.

This post was brought to you by

.m7791 {
 display: none;

Move to the Democratic People's Republic of Vivendi Universal (formerly known as Sweden) - officially democracy- and privacy-free since 2008-06-18!

Crazy Photon
Member #2,588
July 2002

Thanks gnolam, corrected!

Resistance is NEVER futile...

Go to: