Skip to main content
GameDev.net gamedev.net
🔒 Locked

Overcoming Programmer's Block (suggestion)

Started by skjinedmjeet Aug 31, 2005 at 6:42 AM 4 replies 850+ views
Original Post
skjinedmjeet
skjinedmjeet
Here's something that's helped me overcome Programmer's Block in the past. I thought I'd share with you. Sometimes, especially when dealing with a large hobbyyist project, (and I'm sure proffesional projects as well) you get stuck trying to implement a feature, or your program/code-base is in a state of funtionality but not completeness - and you're unsure of what to implement next, or perhaps even how to go about implementing it. Then you hit stasis! For the past couple months I've been working on a pretty substantial project, with its own scripting engine, file-format for level storage, graphics routines, the whole pizazz. I spent a lot of time thinking about how to implement things, in an effor to ensure as much reusability as possible. Even so, there are significant design pitfalls, and things that I would like to change if I rewrite my codebase. Now, with this project, I recently found myself spending more time scanning the code, and chromeplating what I already had, instead of focusing on improving the functionality of the codebase, and the game being made with it. Because the intended feature list is pretty large, it can be very difficult to determine what to do next, especially when there's a feature you're looking to implement, right now!. Usually when I hit this state with a project, one of two things happens: I Give Up Obviously not ideal, but it happens. External time constraints / social lives prevent projects from being completed. Hack a Feature In This moves the project ahead, and gets more (apparent) functionality into your codebase. The only problem now, is mantinaing the code. This often leads impossible to decipher spaghetti code. So what's the solution? It's something my mom always told me to do, but I never listened, and now my chance to benefit from her wisdom is gone. But I still have this little peice of information, that I carry around in my back pocket. MAKE A LIST! Now, whether or not you have a design document, making a list can still be an excellent way to relieve coder's block. Say you're writing a game, and you need it improve it by adding a significant feature - say, gameplay! Write it down! My List - Add Gameplay Now, Itemize what has to be done to add gameplay! My List - Add Gameplay - Add structure to store global gameplay variables - Add Player Interaction - Add Enemies - Add Shooting Now, itemize the following, until you've got it down to an easily digested set of small, individual tasks. My List - Add Gameplay - Add structure to store global gameplay variables - Add Player Interaction - Get Input (Handled By Engine, Code Exists!) - Use Input to modify player states - create structure to store player states - Add Enemies - Create Enemy Object(s) - define enemy behaviour ... - Create Enemy Managing Functions (e.g. STL list) - Add Shooting And etc. This gives you now a list of small, easily managable tasks, instead of the big doom-filled scary task of "Adding Gameplay" This has helped me so many times in the past to get on making software. I hope it helps you.
necreia
necreia
Quote:
Original post by Kazgoroth
From Slump To Supercharged, by Steve Pavlina
Cultivating Burning Desire, by Steve Pavlina
Overcoming Procrastination, by Steve Pavlina
More of the same.

They seemed appropriate, and are an excellent read. Also, I agree; making lists is an excellent way to get yourself a bit more organised and to be able to clearly see what needs doing.


Overcoming Procrastination, by Steve Pavlina is one of the best reads for motivation that I've seen on the net. (For my persona anyways) I highly advise anyone who is having motivation issues to read it.
Laz
Laz
From Overcoming Procrastination
Quote:
Replace Perfectionism With Permission To Be Human

A third type of erroneous thinking that leads to procrastination is perfectionism. Thinking that you must do the job perfectly the first try will likely prevent you from ever getting started. Believing that you must do something perfectly is a recipe for stress, and you'll associate that stress with the task and thus condition yourself to avoid it. You then end up putting the task off to the last possible minute, so that you finally have a way out of this trap. Now there isn't enough time to do the job perfectly, so you're off the hook because you can tell yourself that you could have been perfect if you only had more time. But if you have no specific deadline for a task, perfectionism can cause you to delay indefinitely. If you've never even started that project you always wanted to do really well, could perfectionism be holding you back?

The solution to perfectionism is to give yourself permission to be human. Have you ever used a piece of software that you consider to be perfect in every way? I doubt it. Realize that an imperfect job completed today is always superior to the perfect job delayed indefinitely. Perfectionism is also closely connected to thinking of the task as one big whole. Replace that one big perfectly completed task in your mind with one small imperfect first step. Your first draft can be very, very rough. You are always free to revise it again and again. For example, if you want to write a 5000-word article, feel free let your first draft be only 100 words if it helps you get started. That's less than the length of this paragraph.


While this is true, it is much easier said than done. Everything in that article is, really. I read that article because I've got a huge problem with procrastination. My current game is not getting done because I find other things that divert my attention. Or, I open my code and look at how lame it is then close it, or realize that I don't know how to do what I'm trying to do, then close it, which directly relates to the quoted piece above.

I constantly have to tell myself that my code doesn't need to be perfect. There is no right or wrong, there is working and not working. If it works, it's right, but there could be room for improvement. I know this. However, I don't practice it. I can say all that stuff from the article all I want, I can tell myself that I don't "have to," but I "want to." But in the end, it's actually following through with these thoughts that is the problem.
matt_j
matt_j
Whoa, I like those articles.

Too bad I just put most of my life on eBay. My coding books, drawing inspiration, musical instruments...

EDIT: Rating++ to Kazgoroth
The Alchemist
The Alchemist
lets consider procastination to be a bad habit like smoking

the only people i ever saw that menaged to stop smoking did not with schemes, treatments, "stop smoking in 24 steps", etc he just put the cigars he had with him in the trash and simple never smoked again

anyway i guess you see where it is going dont you? :)
"Everything works out in the end, if it doesn't then it is not the end"

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.