Jump to content

  • Log In with Google      Sign In   
  • Create Account






[Intro] Instant Gratification (And Why It's Important)

Posted by superman3275, 27 October 2012 · 741 views

Many people start an endless amount of projects to no avail, finishing a small amount of them because they get bored halfway through development and/or have an onslaught of new ideas. They don't see the idea of instant gratification, and they don't apply it.

What do I mean by instant gratification? Think about this: How much more happy would you be to work on your game if every time you programmed something new you saw the effects? The idea behind instant gratification is to develop small things that snowball together, meaning that you won't stop development because every step of the way you'll see the effect it has on your program. Wouldn't it be far easier to work on the coding for your game if you knew at the end of a few hours of work the new feature would be something that you could see or hear.

Now that we know what instant gratification is, how do we apply it? If you don't apply the idea of instant gratification right, then your code will either become a mess or you'll end up with half-done features that would be better left out. You have to apply instant gratification correctly for it to work for you. How I generally apply it is by testing these out in small interactive ways. I just wrote a new Input Manager, so I make an extremely small game using it (A pickin' sticks clone with two squares). With instant gratification, instead of bending features to see their effect (Coding a graphics library with unnecessary things so that you can see the effect all the time), you need to take the code you need and utilize it for something to keep you going. It would be dumb to code in special functions into my Input Manager so that as soon as I start coding I'll see the effects.

Now, using the technique above you may find there are still things you need to hard code before the gratification, however that's software design. The idea behind instant gratification is that with every new feature you make, you'll see the effect. So, that means you have to actually make the feature before you apply it. Now, what I mean is once I've actually made a feature to catch mouse clicks and see if the position of the mouse is inside a box can I write a mock up main menu.

This effect can also be considered as the SnowBall effect we'll talk about in another article. The snowball effect is where you start with expandable basic features and then expand, making sure you can see the changes for every expansion. The instant gratification effect works in tangent with that, and it's smart to make them work together.

Now, why is it important to apply this technique? It's important because as a developer, you need to be motivated. Once you're out of the learning stage and you're making games that you honestly want to see being made and love, it'll be harder to get motivated to continue on projects. Applying this will make it so that you're always happy to continue coding and developing your games.

If you liked this post, please comment down below about what you do to stay motivated, and if you didn't like it or have corrections, post them down below. Cheers :)!




I never done anything on this scale.  In the past i enjoyed making short snippets of functions  I like the idea of breaking all my code down into small bite size pieces that I could call whenever I needed something to run.   It allowed me to work for briefs amounts of time and accomplished something within that time.  It helped me keep track of the pointers and made bug testing much easier.

 

The biggest project I've done was a completely word based board game that might have been only 300-400 lines so it isn't anything complex.  However, it was my best work so I was proud.  Since it was for a final project on my class I couldn't use any libraries and we didn't go to deeply in their use.  My next goal was to create graphics to go with my game and that proved to be much harder than I realized going in.  I had so much to learn about open GL that I never made it anywhere with it.   I'm learned that I need results to stay motivated.  Reading a book and tutorials for a year+ isn't going to do the trick if it means not working on what I want to be doing.  

While I certainly appreciate the importance and effectiveness of instant gratification for boosting motivation, I don't think it's easy to apply to programming, especially if you limit your link gratification to just "seeing something on the screen". The larger the project you're working on, the less likely it is that you'll be able to adhere to such a strategy. I worked on a shader editor very similar to the material editor in UDK, and it took me a whole month of hard work to finish the working prototype. The majority of the month/effort was spent designing and coding the underlying system, switching back and forth between visual studio for coding, and notepad++ for writing down my thoughts about whatever design issue I was having. Only at the end was I really able to play with it and see something on the screen.

 

Additionally, programming is a creative process, similar to art. Consider digital painting. Here is a creative activity that has instant gratification built-in, and yet digital painters suffer from lack of motivation just like programmers do.

 

There are a lot of strategies that can help boost motivation, but I've found the most effective to be necessity, or pressure. That's what I think.

I've found this interesting:

www.youtube.com/watch?v=u6XAPnuFjJc

PARTNERS