It’s been several months since this blog first started. Today is a another “first”. The first guest post comes from Aaron. Aaron is an experienced game developer who shares his experience as a game contractor/freelance developer. Happy to have him here to share his insights and experience so far.
Hi all – great to ‘be’ here. First, a quick shout-out for Tomasz – it’s awesome to see how another game contractor is making it work, so thanks for being so open. I hope my post adds something to the conversation.
I’ve been developing games since 1995, and mostly as a Designer, though recently as a Project Manager / Executive Producer. My background is Computer Science, with an Art minor – I know my way around Photoshop, Illustrator, and a sketchbook, and spent 5 years building levels in 3D Studio Max.
I mention this because as a freelance developer, you never know which skillset you’ll be called on to use in a given day. The client may need artwork cleaned up, or a prototype written, or a new feature implemented. As you delve into various tasks, of course, you’ll need to have the “Producer” hat on at all times to be asking “Is this getting me towards the client’s goals”, and “Am I on track?”
So if you’re interested in getting into freelance game design, I offer this inventory. Check your skills against it to see where you’re strong and where you want to grow. While an incomplete list, this is the set of skills I have used as a freelancer since July 2011 (the past 10 months):
- customer relations
- legal / contracting / incorporation
- finance / expenses / QuickBooks
- team management
- agile software development
- conflict resolution
- communication skills
- xCode / iOS programming / Cocos2d
- Android development
- server development (ex: heroku / node.js / amazon web services)
- Facebook Development
- Particle Designer
- Sketches / whiteboard / etc.
- Prototyping (Hype on Mac, Balsamiq Mockups, HTML5 click-throughs, Powerpoint, etc.)
- System design (economies, mission scaling)
- Writing (dialog, quests)
- Scope management
When judging whether to take a job (or how much to bid), I consider the list vs. the client’s needs, and ask things like:
– Will this client give me time to come up to speed on new skills?
– Does working on this gig help me add or improve to that list?
– Can I partner with / subcontract to someone who has the skills I don’t?
– How will I handle it if I hit a wall? (And anyone who’s ever logged into developer.apple.com knows what I mean)
– How does this fit into my schedule, especially around the other things I need to do as a freelancer – signing up more work, networking, etc.?
– How long is the contract?
– Is there any flexibility in timeframe, or are milestones blocking for future work?
My current client is most interested in prototyping, and I really enjoy that body of work, so it’s a good fit. I’ve learned a lot on the client’s dime, so my advice to new freelancers is that getting that first gig is worth taking a pay hit for. You’ll learn more by doing it once than by trying to hold out for more money. Don’t underestimate the value of learning a new skill while someone else is paying you for it – that’s value that YOU get to keep and bring to your future clients.
Finally, a little dose of reality. Which of these do you think is the highest priority to a game freelancer?
– writing solid code
– being on time
– communication skills
– innovative design ideas
– ability to express a visual idea / art quality
Of course, the answer is none – or all, if you want to look at it another way. Job #1 – the ONLY job that matters – is customer satisfaction. As frustrating as it is, the customer really is Always Right. Your job is to learn where the friction points are in the client relationship, and then TAKE FULL RESPONSIBILITY to fix them. Case in point: one of my clients consistently jumps to conclusions about when things will be done, or tries to dictate it. I’m a firm believer in the Project Management Triangle – you can set parameters of any two items (price, speed, quality), but I get to choose the third. So if you tell me what to do, and that it’s going to be shown to users (i.e. quality must be high), then I get to tell you it will take 3 days. This client consistently got upset when things took more than 1 day, so I developed a system of estimating tasks, and started communicating that to him as we set my tasks.
Now, when we sit down to make a plan, I open my excel template and start adding tasks, including estimates of how many hours it will take. When we’re done, I’ll say “I can have a first playable tomorrow morning, and then will iterate on Feature X over the day. I figure I’ll have another build for you in the afternoon – will that work?” Sometimes the client will say “Oh, no – we had a design meeting scheduled to review this at lunch tomorrow”. I look at the list and find which bits I can cut out to get him a second build in time for his needs. “Well, if we drop the replay component, I can get you the rest by lunch, is that OK?”
Whatever the issue is for your customer, it is up to YOU to fix it. That’s the hard reality of being a contractor – it doesn’t matter if you gave them plenty of notice, if their requests are unreasonable, if you don’t think they’re paying you enough…etc. It’s All. On. You.
Once you start taking ownership of issues like this, though, you become indispensable. You’re better to work with than their own employees, and they will happily keep throwing money at you to do their work.
I hope this is helpful for someone out there, and would love to hear from you. If you have any game development needs, be sure to check out our studio, at voidalpha.com! We’re also on FaceBook andTwitter.