Well, today I want to talk about efficiency. This is not, however, about the technical aspects of writing efficient code. That is not my area of expertise. There are plenty of people on this very site and others that can talk at great length about that topic. No, I am here to talk about making the most effective use of limited time in one's life to achieve reasonable goals.
That was a mouthful, so let me say it another way:
I Don't Have All the Time in the World! There, I said it, I apologize for for breaking the illusion that I am a timeless being. I know you were thinking it, don't tell me you weren't.
So how then do I make the most of the time I do have to actually make meaningful progress on a game that unfortunately is not my first priority right now? How do I use a spare half an hour to actually get something done? Well, as with many things it all comes down to planning and thinking.
What I have made it a point to do in the recent past is to actually use a lot of the hidden minutes in my day productively. You will often find me making my 30 minute commute to work in silence. No radio, no podcasts, no music of any sort. I do this because I am then able to think. And rather than the wandering thoughts of showertime, I try my best to focus. I think about my game and what my most immediate goals are. I think about my code and what current problems I'm facing and think through various solutions until I find one I like.
Want to know what else I do? I carry a little notepad, and I often scribble down thoughts in it. There is almost nothing worse in my mind than sitting down to write some code and remembering that I had an idea I had wanted to put in only to realize that I forgot what the idea actually was. It's infuriating, so I solved that problem.
In fact, I have a number of other little habits (most of which would be fairly unique to me, so I won't bore you) that pretty much all come down to pre-planning my next few steps. It's amazing how little thinking I do when I actually sit down to work.
Most of the thinking I do about my project has already taken place by the time I sit down to do it.
Obviously, there are snags. There are eventualities that I didn't think of ahead of time, and these have to be dealt with. But all I'm talking about is a framework. I almost never sit down to work and find I don't know what I'm going to work on. And I'll tell you, my progress is much better as a result.
When I go to bed and struggle to fall asleep, I spend an hour thinking about my code and planning what I'm going to do next. In practice, this has given me some good ideas and has given me solutions to bugs which I've been stuck on. I get so excited by these bed time ideas that I wake up the next morning/afternoon and remember what I discovered the previous night and get to work on it.