With Ludum Dare 35 behind me, I want to share some hard-earned lessons about working in groups at game jams. I have finished games for over ten game jams now, half of them were team efforts. This post has three main sections: Team Composition, Game Design and a Time plan. Some of the stuff in here is the opposite of conventional wisdom on software engineering and project management because of the time constraints and ad-hoc team structure. If you have successfully made a jam game with more than three people, feel free to ignore this advice or tell me where I’m wrong.
Team Composition
Team members should have skills that complement each other, but they also need to work together. Everybody builds a different part of the game. Everybody has different strengths. They need to work with the same tools, on the same game, at the same time.
Areas of Expertise
Often game jam meetups ask you to rate yourself on your proficiency as an artist, coder, game designer and musician. This a good idea. Every team needs at least one passable coder and one passable game designer. They can both be the same person. Although coding and game design are important, you do not usually need many full-time designers and coders.
In the early stages of development, a single coder must implement a foundation: the core mechanics of the game. During that time, this coder works with placeholder art while the artists produce the main assets or concept art. Afterwards, the others can interate on all kinds of content in parallel.
Art asset creation and level design are much easier to do in parallel than coding. More artists are better. If your jam team has more than 50% non-artist non-level-designer coders, consider pair-programming. If your team has one or more full-time “game designers”, ask the designers early how they want to make themselves useful. It is easier to produce something with one coder and many non-coders than the other way around, but it can’t hurt if artists also know the basics of your language and game engine.
- have at least one coder who engine well
- many artists are better than many coders
- anybody can call themselves a game designer
- other roles depend on the game design
Technical Constraints
When you form groups, take into account operating systems, file formats, tools and version control software. Try to use exchange formats everybody can open (like above, it is a huge productivity boost if every team member can edit the assets). The time in a game jam is too short to learn new tools and be productive in them. It might be better to use popular tools like Unity or Flixel instead of Lumberyard or Torque2d if your artist is familiar with the former but not the latter. Artists should be able to create a new build of the game, integrate their assets and commit changes to source control. Coders should be able to make small changes to assets on their own, like palette swaps.
It is a huge productivity boost if everybody can work on a part of the game without pulling somebody else off their computer to figure out Blender and Photoshop.
- use a familiar engine
- use familiar graphics tools
- use source control
- use source control
- rather pick tools that more people know
- use source control
Personal Preferences
I once participated in a three day game jam where it took us the first two days to implement Tetris-like falling blocks. We had built it an a rather roundabout way in Unity3D, so AI critters could do path-finding around the blocks. We wanted to use an AI library my friend had worked on with his company. He adapted the library, which was built with 3D RPGs and open world games in mind, to work with dynamic and 2D environments like Tetris. At the end of the second day I expressed my frustration. The game was half finished and we would need at least a fourth day to implement our original design. I considered the jam a failure. He said: “Think about how much we learned! This was a very productive weekend.” He was not frustrated at all.
It is ok if you are not that psyched about finishing a jam game. Just be upfront with your team mates. It can feel really unfair if you think you have a shot at making something interesting, or even winning a prize.
Talk to your team mates and manage expectations:
- Do you want to finish a game?
- Would you rather fail with a greater vision or succeed building something small?
- Do you just want to try out a new tool/engine/plugin?
- Are you committed for the whole time of the game jam?
Game Design
Game Design for teams in game jams boils down to two principles: Consistency and work division. All team members must know what aesthetics they should go for and be able to deliver it consistently. The game design needs to be divided into pieces the developers can work on independently.
Core Mechanic and Minimal Content
Pick a core mechanic that makes it easy to get up and running with your engine. You can build a First Person Shooter in Unity with a few game objects, the stock FPS-character-controller and a couple of lines of code for shooting and destroying objects. The core mechanic should not depend on lots of content or assets. If your game is a city builder, you need to demonstrate the core loop with only two or three kinds of buildings. You can add more later.
- Pick a core mechanic that is easy/fast to implement
Essential Content
Plan what kinds of subroutines and assets you need for your levels/quests/story content and prioritize work on these. Make a list of features/content that should definitely be in the released version. Plan in such a way that the essential content will be done and integrated after 66% of the time available. To be sure, plan essential content to be done after 40-50% of the time. For example, say on day 2 of 3 there will be a main menu, a tutorial, 2 guns, ammo/medkit drops, 2 kinds of mob, a boss and 2 non-tutorial levels.
- Make a list of essential features
- Prioritize essential features
- Essential features shoud be finished after 2/3 of the time at most.
Bonus Content
One way to make content teamwork-friendly is to pick a game genre and story where you can easily fit more content into the game. For example:
| Genre | What to add |
|---|
| ego shooter | levels, monsters, guns |
| puzzle platformer | puzzles, tilesets |
| metroidvania | secret areas, monsters |
| racing game | cars, tracks, car decals |
| MOBA | hats, maps |
| RPG | swords, spells, NPC dialog |
| brawler | moves, enemy types |
| survival game | craftable items, plants, animals |
| SHMUP | guns, ships, enemies, powerups |
You can start with a base game and one developer adds more guns while another adds more levels. In a jam game, you should not pad out the length of the game too much beyond five minutes. More guns and enemies are a safer bet. Different developers can add different kinds of content in parallel.
Genres like 4x or city builders have complex systems that need to be rebalanced when new content is added. Competitive two-player games (Fighting Game, RTS) are sensitive to balance changes.
Avoid designs with a long chain of dependencies: A with a crafting recipe for a sword where you mine iron ore, smelt it into bars, refine that into steel, forge with a hammer and anvil and temper in cold oil has lots of points of failure. If any of the steps isn’t ready by the end of the jam, the game won’t work. Point-and-click adventures are escpecially difficult, with interdependent items, riddles/puzzles, characters and plot points.
Ideally, these additions will each be small and self-contained. If building another level takes one developer too long, you will run the risk of not finishing it/scrapping a bad idea too late and lose hours of work time.
If you run out of time before you can implement any non-essential features: Good thing you didn’t work on the non-essential stuff first!
- Find areas to expand
- Build more content in small doses
- Work in parallel
- Don’t create complex dependencies between bonus content
Mood/Realism
Pick a mood/feeling for the game. It can be fun, joy, exploration, cameraderie, sadness, fear, whatever. Try to build the visuals with a color palette that supports the mood. Pick a soundtrack that supports the mood. Try using sound effects that work together with the other effects, the music and graphics. If you record sound effects for an action in real life, do not mix them with chip-sound effects and vice versa. If your graphics are simple and colorful, your sound is electronic and the characters jump several times higher than tey are tall, your writing can be over the top as well.
- Communicate with the team about the overall aesthetics.
Visual Style
If you have more than one artist working on your team, you need to agree on an art style that all artists can produce. Pick some kind of visual style in the beginning and stick to it. Use an existing game or set of pictures as reference for the level of detail. For example
- Low-Resolution Pixel Art (e.g. Passage)
- Blocky 3D (e.g. Minecraft)
- Low-Poly Flat Shaded (e.g. Race the Sun)
- High-Resolution prerendered (e.g. Myst)
- Smooth cartoony 2d (e.g. Angry Birds)
Don’t aim for realism! If one artist produces something much more detailed, less detailed, more colorful or less colorful, it is going to stick out. Try to establish lighting and color palettes early on. It is easier to make something with fewer than more polygons, so you will most likely use the lowest common denominator of level of detail.
Picking a mood, color palette and relative dimensions of the player in the world is even more important in pixel art, because you can’t easily scale it.
- Agree on a specific art style
- Go for a consistent level of detail
Time Plan
This time plan mostly follows my older post on time management for game jams.
http://blubberquark.tumblr.com/post/127077371470/time-management-for-game-jams
Day 1
Make a game design. Try not to take more than 2 hours to come up with an idea, execution is more important. If you can’t agree on a single idea, split the team and make two independent games. Make some quick pencil sketches of the essential assets, level structures and interaction storyboards. While one programmer implements the main mechanics with colorful boxes, the others can start on modeling the main character, the first level and environment art. Integrate everything into a proof-of-concept gameplay prototype. Playtest this prototype and make sure the core loop of your game is interesting/fun/whatever you’re going for. You want to take the prototype as a foundation for future developments, so everybody should play the prototype to base further additions off it. Now you can work toward the essential content.
Day 2
Integrate the essential content into the game, add win conditions and a main menu and give this game to actual players for feedback. Start adding bonus content. Incorporate feedback from players. Re-work assets to be consistent with the feel of other assets.
Day 3
Incorporate bonus content. Fix bugs found by players. Clarify the rules/tutorial/help based on player confusion. Add polish/convenience features. Use the second half of the third day to fix the last bugs. Don’t change the game too much in the final hours. Design a logo/main menu based on the best assets you have. Good luck!