What are your tips and tricks to successfully finish a hobby game project in your freetime? How do you motivate yourself to keep it up and drive right through to the finish without losing interest or motivation along the way?
|
|
These tips apply to any hobby software project, and not just games.
|
|||||||||||||||||||||
|
|
I actually just wrote a blog about how I approached the design and development for my latest iPhone project. You might find value in reading it. A few thoughts to leave here are To-do Application Small Tasks
Seeing the picture in finer detail will reduce your chances of missing a key element of your implementation and will provide you motivation as you tick off each task. Keep the Scope Small Eye-candy Have fun Collaborate Playtest Start a Blog Take a Break |
|||||||||||||
|
|
My #1 biggest tip: Disconnect your network cable! I have a ritual of disconnecting my network cable before I go to bed. The next morning - I'm not online, so I have no sites to visit, no emails to read, no people to chat to, etc. So I naturally get straight to work on my game. I don't connect again until I absolutely have to. If there's something I need online - I write it down to look up later, or use my iPhone's browser. It helps to have things like MSDN downloaded and available offline. |
|||||||||||||||||||||
|
|
The biggest problem with hobby projects is not having a well defined scope. Many people start by wanting to make the best game ever with hours of gameplay and all the cool ideas they have. Instead, you should try to scale down your idea to something manageable and then come up with a reasonable schedule. It's true that deadlines are at odds with the game being a hobby project and not a full time job, but they are good for staying motivated and breaking down big tasks into small manageable ones. You can also keep a version history file that is updated every time you add something to the game. Better yet, you should use version control and use the commit history for that. It's a good way of measuring your progress and staying motivated later (by looking at all the stuff you already did). |
|||||
|
|
The creator of Grauioutous Space Battles game, a lone indie developer, summed up some handy tips about making your own game in a blog post. Some of them can be motivating even for hobby projects. Cliffski's Blog: How to stay motivated whilst programming a game Excerpt:
|
|||
|
|
|
Start by creating a game that is stupidly simple, and get it finished and published online somewhere. Remember that even something seemingly simple like pong could turn out to be quite complex if you're new game development, and starting with a simple game will show you whether you have the patience to take on a bigger project. |
|||
|
|
|
I've recently noticed that whenever I read another indie game developer's blog post about his updates, I immediately open my IDE and start working. So, my advice for keeping you motivated is: read other (game dev) blogs ;) Here is a quick list: |
||||
|
|
|
I worked on Snapshot (www.retroaffect.com) in addition to my full time job for almost 8 months before turning it into my full time job. I would work all day, then come home and work on Snapshot until I fell asleep. Sometimes it was a little too much, but other times (most of the time) it was awesome. I'd definitely suggest reading over this: http://positech.co.uk/cliffsblog/?p=753 Also remember that if it is something you are just doing for fun, remember to keep it that... fun. If you burn yourself out then your project with either never be finished or it will show in the final product. |
|||||
|
|
Based on my own experience it's easier to stay motivated if you've got others working with you. So:
Certainly my key tips would be share your excitement and keep the project in a state that works. |
|||||
|
|
I have been working on my hobby project now for around 2-3 months. That means evening or two every now and then plus weekends occasionally. The project is maybe 2/3 done for a proper first release. It is maybe too early to call it success but here are the things that have kept me going so far:
|
|||
|
|
|
The short answer: Iterate, iterate, iterate. Start small, and get something running before trying to implement the whole system. It's still important to do some top-level design and planning, but being able to see what you're working with and playtest parts as you go is incredibly important to staying motivated; it's hard for me (and most any other programmer I know) to work day in and day out on something that doesn't actually show them visible results. |
|||||
|
|
I have a good imagination, but poor organising skills. On the creative side, I have found it helpful in my case to use a tool to help me keep track of everything, and impose some overall structure. I use Writer's Café, which is flexible enough to be adapted for game design. I'm sure there are other tools available. Most important, I think, is to set milestones. That keeps you focussed, will allow you to measure progress, and should give you a sense of achievement when you reach them. |
|||
|
|
|
1. Buy a notepad for keeping every idea you'll get. You don't have to actually put them in your game but you can use them for further inspiration. 2. I'm also trying to hold everything I still have to do on a corkboard or a blackboard so I always can look for my next targets to finish. 3. Don't try to implement things the best way on the first attempt. Try to get things running and make them nice in a later step. So you could have different features on different states of niceness:
It helps a lot in motivation if you get things running first before considering making them nice and smooth. The downside of this method is, that you will be coding more code that you'll put in the trash in the end. 4. Dont implement too much features parallel. Try to conentrate on <=3 features at once. So you have some place to switch to if you stall at one feature but not that much features that you are overwhelmed by the ammount of work to do. |
|||
|
|
|
To manage a hobby game project you need a few things: motivation and the proper tools. My answer is going to focus on using the proper tools, as if you're serious about making a game in your free time, you hopefully already have the motivation down. :) I'd recommend using some form of version control for your game. Sites such as Github or Bitbucket provide hosting for git and mercurial (bitbucket support mercurial, not github). This is your first step to organizing your code and assets. Next is being able to well define a backlog of tasks and features that need to get done. The best process for this is up to you, the developer. Some options include creating a Game Design Document (GDD), a Technical Design Document (TDD), and a Feature Backlog. A good sample for a GDD can be found here: http://www.runawaystudios.com/articles/chris_taylor_gdd.asp For the TDD, model it similarly to the GDD, but focus it more around the technical detail of programming. So what language you are going to use, framework, engine, and other technical specifics. Both the GDD and TDD will help you better understand the scope of the project and figure out what the list of to-do is. You can do this in the middle of the project if you've already started it, as it's always important to rescope and know what exactly your goals and features are. Once you've got that done, you should be set to start developing. I've written a blog post on how to use github to effectively develop a game, including using their wiki features, issues for bug tracking, and just managing your project. You can find that here: Using Git and Github for Game Development Defining soft deadline for your project may or may not help push you to stay on track. Every individual is different, and only you will know how to motivate yourself. Try out different techniques and see what works for you. Game development (and software development) typically take much longer than people initially estimate. So don't get discouraged and stick with it. If you need more examples of GDDs and TDDs, I have mine in Google Doc's, and I wouldn't mind sharing them! |
|||
|
|
|
I use collabtive for my projects, and this allows me to setup tasks and milestones. When I work on a project with multiple people it also allows me to chat with them and assign them specific tasks. On top of the project management software (which is open source), I also use Subversion to help allow multiple people to work on the code at one time. Both of these programs run on a small linux server, and I have honestly not had one issue with this setup yet! :) |
|||
|
|
|
Another tiny tip. - Assemble a team - Communicate with your team on a regular basis (skype, live, email, etc.) All the tips mentioned by other are good. If you create a team, the team members can support each others. Also, by having regular meetings, it encourage you to work on your project to show progress or reach your deadline. Other people can be your greatest resource. That's how I assembled my game studio. We are three partners working on the game for the last two years as a weekend hobby. We are seeing the light at the end of the tunnel now. Have fun with it. |
|||
|
|