Sign in to follow this  
numegil

How to divide work between an Indie team?

Recommended Posts

numegil    142
Hi, I'm currently a college student majoring in CS, and am looking to possibly get into indie game development as a hobby of sorts. I have several friends from high school who are also good at programming, and whom I would be glad to work with. I'm probably going to end up forming a team of sorts to work on creating a few games over the course of the summer, probably for the iPhone/iPad platforms. My question, however, is how can one efficiently distribute the work among the members of the team? This is obviously a no-brainer if you have a dedicated programmer, artist, storyline person, etc. But what if you have multiple programmers? How can it be possible for them to work on the same project simultaneously when their code depends on one another? I have a small amount of experience from like 2 years ago when me and my friend worked on programming a game for an English project. The efficiency was terrible, we basically had to take turns working on the game because it was impossible for both of us to work on it at the same time. So what are some ways that real indie programming teams divide up the work between themselves in an efficient manner? Thanks! -Numegil

Share this post


Link to post
Share on other sites
TheBuzzSaw    143
It really depends on the phase of the project. I know from my current project that you rotate between two states: working on totally separate modules (awesome) and working on the exact same module (difficult). There are times where you have to resolve one piece together (or sit and wait until the one responsible finishes dealing with it).

Clear communication is a big factor in dealing with these situations. One programmer I work with lives in another state, but we have Skype video chat running most of the time during our dev sessions. It helps a great deal being able to discuss the project at any time. Instant messages are nice, but they are insufficient during those heavy discussion times. As long as you can communicate effectively, you can make it work.

Once you get past those bottleneck aspects, just try and divide work up based on everyone's expertise. My partner, for example, is really good at converting mouse coordinates to 3D game coordinates. So, whenever that comes up, I tend to let him take over. (He is good at math in general.) I am pretty good at designing new data structures based on our games' needs, so I generally am the one who adds new classes to the project and gets everything wired together. When I'm not doing that, I focus on wiring Lua into the engine because my partner has zero experience with Lua in C.

You'll find a groove. Yes, there will be bumpy transitional periods, but as long as you make a plan, update that plan, and share that plan often, you'll be effective.

Share this post


Link to post
Share on other sites
Kylotan    10008
Quote:
Original post by numegil
But what if you have multiple programmers? How can it be possible for them to work on the same project simultaneously when their code depends on one another?

The same way professional teams do it. Through management and tools.

Management - plan out what the program needs, and spot the areas that are separate. They can be given to different people. Then look at the areas that are common, and plan to have just one person working on that area at a time.

Tools - source control helps. eg. SVN, Mercurial, Git, etc. When everybody is checking in their code regularly, you reduce the risk of one person accidentally undoing someone else's work, and you have a well-defined merge procedure for integrating everybody's work together. It will take a little effort to get used to using the method but it's worth it.

Share this post


Link to post
Share on other sites
murdock    164
Work out on paper your design down to what classes you want in your game. Once you determine what classes you want to include divide the work by class based on what goes together.

You may also try to divide the work up based on the elements that go into a game. IE: Input, AI, Networking, Physics, etc.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this