Ahh, the corporate video game lifestyle. quad 24″ monitors, $1000 office chairs, free snacks, and beer o’clock. But when you and four colleagues throw that lifestyle away to pursue your indie game dev dreams, more often than not you can’t (and shouldn’t) rent a fancy office, because in case you weren’t paying attention, you’re now peasants and every cent counts. But with the right tools and processes, you can work together remotely on a tight budget.
In this three-part article, I’ll run through the tools and processes we use for remote game development at Space Dust Studios. Part 1 focuses on communication, Part 2 focuses on collaboration, and Part 3 focuses on security and backups. We’ve evolved this setup over the last 12 months and it’s working well for us, though we’re a team of five living in the same city, so your mileage may vary. If you’re working with a bigger team or are spread across different time zones, you may need to make some changes.
We’re always on the lookout for improvements, so please leave a comment if you’ve got suggestions!
Part 1. Communication
Phone numbers, personal email addresses, social pages
Let’s start with the basics. Make sure all team members have each other’s phone numbers, personal email addresses, and that you’re all friends on Facebook/Twitter/Google+/whatever. The goal here is redundancy in case your company communication channels go down. It sounds obvious, but you’d be surprised how easy this step is to overlook when you’ve been working in the same office for years.
Work email addresses
Once you’ve chosen your company name, buy the domain and arrange web hosting. This is the most expensive part of the whole operation, coming in at around USD10 per month. Set up a work email address for each team member. I’d recommend going with a fully hosted mailbox over an alias, as this will allow you to send and receive email directly from the work address without your personal email showing up anywhere in the message header. It’s not a great idea to email Sony about bringing your game to PS4 from email@example.com via firstname.lastname@example.org. With a fully hosted mailbox and some fiddling, it’s possible to configure your personal webmail account to send and receive through the work account transparently, so you can check your mail in one place without this happening. Remember to test it out!
Public email addresses
While you’re here, now’s a good time to set up some public email addresses for your company. You’ll want a general public contact (eg. contact, info, pr) and a business development contact (eg. business, bizdev, bd). These can just be aliases for work email addresses, but it’s good having them separate to control spam, and to give you the flexibility to change which team member they forward to down the line.
Team mailing lists
The next step is setting up an internal team mailing list, so your team can easily have discussions and share progress with each other. Your hosting provider should have a mailing list manager such as GNU Mailman that can do this for you. Pay careful attention to web security here, as many mailing lists create publicly accessible archives on your web server, or append administrative links to the bottom of every email. Also make sure only approved email addresses can use the list.
To start out you’ll probably just want one list for the whole company, but you may find it useful later on to allow different projects and departments (art, code, design, QA etc.) to have their own mailing lists.
You’ll want somewhere to store permanent information accessible to the whole team. We started out using MediaWiki, but eventually we migrated to Google Docs as it supports concurrent editing during meetings, and since we also use Google Drive for file sharing, this allowed us to integrate our wiki structure directly with our file sharing structure, which became very important once we started dealing with file attachments and assets from accountants, lawyers, publishers and so on. MediaWiki allows you to upload files, but it’s pretty clumsy in comparison to something like Google Drive.
Once your wiki is up, you’ll want a section for the business, and sections for individual projects. Store a company address book for all internal and external contacts. Store information for new hires, such as project setup instructions and an overview of your team tools and processes. A company password list is also essential for keeping things like Facebook and Twitter login details, and should itself be protected with a master password. The wiki is also a great place to keep track of expenses until you go with a more robust (and expensive, eep!) accounting solution like Xero. At Space Dust Studios we also have a time tracker spreadsheet to see how long each person is spending on individual projects, which we can use to figure out revenue sharing, and who decide who needs a holiday the most.
Update (1st May 2014): Jojo asked for clarification on how we use Google Drive/Docs as a wiki. First create a Wiki folder in Google Drive, then right-click and share it with your team members, giving them full access. Now everyone has access to all new documents created within this folder. You can treat each document as a wiki page by using headings and inserting a Table of Contents at the start of each document. If you click a heading in the Table of Contents, it provides a link popup. You can right-click this link and paste it in other documents, and everyone with access to those documents can use those links to easily jump between them. You can share files in the same way. Now you’ve got all the benefits of a wiki, with all the goodness of group editing and automatic synchronization with your Google Drive desktop folder.
For anything time-related, you’ll want a cloud-based team calendar that’s easily accessible from laptops and smartphones. We use Google Calendar for marking important milestones, meetings, and blocking out holidays and time off. If you’re using Trello (shameless referral link) with the Calendar power-up, you can merge Trello’s iCalendar feed into your Google Calendar feed to show tasks with due dates.
IM is an essential communication channel for quick informal chats. Fortunately almost every web service has chat built in, but we prefer Google Hangouts because it keeps a searchable record in your Gmail history, and you can still message people that are offline. Formerly two products (video chatting and Gmail Chat/Google Talk), Google Hangouts now has a desktop client available for Mac/PC, as well as native clients for iOS/Android. Really though, your IM choice doesn’t matter too much as long as everyone agrees to use it.
Update (1st May 2014): @tenpn raised an excellent point that not all IM clients are equal. Important features to look for include automatic startup with your OS, status indicators (online/away/do not disturb), the ability to create group chats and chat rooms, history, and the ability to mention someone to get their attention. A great candidate for this is Slack – a cloud-based group chat solution similar to XMPP/IRC, but with more bells and whistles.
Daily “stand-up” emails
If you’re not familiar with a stand-up meeting, the basic idea is that every morning, the whole team has a standing meeting (to help keep it brief) in which everyone runs through their tasks for the day. This is a useful routine for keeping everyone in sync and it helps catch potential conflicts early.
In practice, there’s many problems with daily stand-ups. They often run too long despite the best intentions. They eat into the most productive part of the day for many developers. They’re synchronous: everyone needs to be there for them… how pre-internet! If you set the meeting too early then some people will be late. If you set the meeting too late then some people will be burning time avoiding real work until the meeting is done. Plus if you don’t have an office, where do you meet?
We started out doing daily stand-ups as video conferences, but found these took up far too much time, just like stand-ups in real life. So we came up with the idea of an automated daily stand-up email instead.
At 9AM every workday, an email gets sent out to our team mailing list. It contains the following information:
- a countdown to the next milestone and all upcoming milestone dates,
- a link to our business and project time tracker document,
- three questions to answer briefly:
- What have you done since the last email you sent out?
- What are you working on next?
- Is there anything blocking you or that could affect others?
Replies are encouraged to be short, so this usually only takes a minute or two of your time. But more importantly, you reply whenever it’s convenient to do so. This serves the same purpose as an actual stand-up meeting, but without the time wasting and mental derailing of a synchronous meeting. Plus as an added bonus, you’re free to continue discussing issues in excruciating detail over email.
This system works really well when there’s clear long-term direction for the team, such as during a production cycle. But we found it inadequate when we were dealing with unfamiliar tasks, such as preparing for our first GDC trip and arranging meetings with publishers. In these situations, we’d switch back to a daily video conference instead, as we needed the back-and-forthing of conversation to figure out the best plan of attack. Be aware that you’ll need to adapt your processes regularly to fit the needs of the team.
Whether you’re doing video meetings daily or weekly, make sure you’ve all got decent internet connections and reasonable webcams (or just use your smartphones and tablets). If you’re on a budget I’d go with Google Hangouts as your video chat client, as it allows group video chats and screen sharing for free, but if you can afford it I’d recommend a premium Skype account as we’ve found the audio and video quality to be superior, plus it appears to be more reliable in general, and most third parties seem to prefer it.
Video meetings are expensive in terms of time (just like real meetings), so use them sparingly. To avoid wasting too much time, appoint a meeting chair and let them drive the meeting agenda to produce clear actions at the end of the meeting. For all their downsides, video meetings are a great way to nut out tough problems, figure out longer-term objectives, and build more personal relationships without the need for pants.
No matter how good your HD webcam is, there’s still nothing like a physical meeting; cabin fever builds quickly when working remotely! A physical meet-up allows you to step outside of your normal work environment, play-test your game together, brainstorm with coffee and alcohol, re-focus your team vision, and build morale in a way that simply can’t be done remotely. Time-wise these are the most expensive meetings as everyone needs to travel somewhere, so try and do these rarely. Once a week or once a month feels like a good frequency for us, depending on how badly we feel we “need” it. We knew each other well before we started, but you may need more physical meetings when bringing new people onto the team.
Everything outlined above is working well for us now, but as we ramp up our team and projects we’ll most certainly need to get office space. But for that awkward period between starting your company and bringing home the bacon, hopefully the tools and processes I’ve covered here will help get your team and project moving along for very little financial investment.
Have we missed something? Please let us know in the comments and we’ll add it to the post!