It's a rough schedule that allocates days to certain tasks, but doesn't constrain me to allotted hours, because I never know how many hours I'll get to spend in any given day. Still, my schedule goes something like this:
Monday - Blog post day
Tuesday to Friday - Work on Game 4 for Phone 7
Saturday - Bring Windows and Xbox versions of Game 4 up to date
Sunday - Work on Dysnomia for Phone 7
Bear in mind that I usually have only one or two hours each day to spend on the assigned task. I kind of like it like that, as it allows me to really focus on bitesized chunks of work.
I tend to treat Saturday as my "anything goes" day, as it's the one day I have plenty of time to spend on development. The only task I set myself as must complete for Saturday is to get the Windows and Xbox versions of Game 4 up to the same level as Phone 7.
Throughout the week I develop on the phone as it's the lead platform for Game 4, but I'm giving the Windows and Xbox versions the same amount of respect by making sure I carefully tune the UI and controls for each platform. Sometimes this may only take 20 minutes on a Saturday morning, adding in any new content files and tweaking the controls. Sometimes it takes longer, especially if there's new UI items to do - especially on the 360, where I need to display button prompts rather than having clickable/tappable buttons on-screen. There's a lot more to developing on all three platforms than simply creating copies of a project in a solution and hitting compile!
So that's my work schedule - but how do I remain focused? Like many creatively-minded people the world over, I tend to have moments of procrastination. It's easy for the mind to wander to other things. Here's my top five tips for staying on a project, especially if it's just a hobby:
- Work with someone else. There's absolutely no substitute for teamwork. If you're working with a partner on a project, you're always pushing forward because you don't want to let the other party down. I have Leon constantly churning out art assets for our games, and that pushes me to get things done.
- Work in bite-sized chunks. If you know you've only got an hour to spend on something, plan ahead and assign yourself a task you know you can get done in that hour. Conversely, if you have a full day - don't spend all of it working. Work on a large task that might take five or six hours, but have plenty of breaks. And when you're done on a task, it's okay to call it a day. If you feel you've accomplished something, then it's probably a good time to stop.
- Music. This is a personal thing, but I find that music helps me concentrate a lot more, especially if I'm listening to familiar tunes. I often find I have the same few albums in rotation for several weeks before I try something new. For the record, I listen to a lot of melodic death - but whatever floats your boat!
- Get a whiteboard! I love my whiteboard. I use it to keep track of tasks, doodle UI sketches and work out geometry math. If you don't have room for a whiteboard, you may find a pen and a pad of paper a suitable alternative.
- Do the hard and/or boring stuff first. Specifically in games development, there's the cool stuff like gameplay, animation and visual effects. Then there's the monotonous stuff like menu screens, file handling, Xbox profile support, tutorials and so on. Reward yourself for completing something boring by working on something cool. Otherwise, you'll finish your main game after several months, and still have a month's worth of essential polishing to go, when all you want to do is get the game out the door.