Archive for February, 2011

So I’ve posted the job up at oDesk and eLance, two of the large freelance sites. I went through the Game Design Doc and summarized it into just one page of blabbing and I picked out the key things the game requires that may take special skills or attention from the developer. Like I need someone that knows how to use Cocos2D, and how to integrate Twitter into the game for posting scores, etc. so I made sure to mention this in the posting. I read a bunch of other game dev job postings and a lot of them were super vague and clearly not proof-read, etc. so I didn’t end up using any of them as a guide. I just wung it, and here’s what I posted:

Developer needed for iPhone & iPad game, art and design doc provided!

The game is a simple 2D reflex game for the iPhone and iPad, using the Cocos 2D framework. I will provide all art and audio assets! The game will need 2 versions, one for the iPhone that detects retina support for the iPhone 4, and a version for the iPad. I will provide appropriately sized art for each screen resolution.

The player touches his finger on the screen to make the ninja dodge throwing-stars and other items that fly toward him. As the time counts up, the game gets progressively faster and the player’s goal is to survive as long as possible!

This is only a brief description of the game, there’s an actual Game Design Document that explains all the details and has mock-up images and tables to make development easier. The entire game is already designed, I simply need a developer to piece it all together!

Key requirements and notes:

- Only Landscape mode will be needed

- I’ll require daily builds for testing purposes

- An animation parser built for Cocos 2D will be provided, along with the necessary files and documentation to use it (it’s a VERY simple bit of code, don’t worry!)

- The game will need a timer that counts up, displaying how long the player has survived

- The time will need to be recorded on an Apple Game Center leaderboard and the player should be able to send their score to Facebook and Twitter, so you should have experience integrating Apple Game Center, Facebook, and Twitter into an App

- Achievements should use the Apple Game Center as well

- It would be nice if the top player’s name and score were displayed on the screen during gameplay but I understand this might not be possible!

- A reminder for the player to review the game should pop up after the game is played a few times

- The game should use Flurry Analytics to track some anonymous game statistics

- Certain sound effects will need to play randomly from a list (for example when the ninja shouts, it randomly chooses between shout1, shout2, and shout3)

- A very simple menu option should allow the player to scroll through a list of all the sounds in the game and listen to them (just a default list like the ringtone choice in the iPhone’s settings is fine)

- I’m keeping a development blog of the game’s progress at which you can check out for more information on the game.

Please be available to work on this full-time as I need to release it as soon as possible. Also please have samples of your work. I’m looking for a developer who has experience with Games, not just Apps, because this will be more complicated than a menu-based Shopping List App.

If things go smooth there will be more work available in the future as I’m going to be creating a new game every month or so.

Type: Hourly
Workload: Full-time – 30+ hrs/week
Duration: Less than 1 month
Planned Start: March 1, 2011

So now I’m finally officially looking for a programmer, feel free to pass the word around or send a portfolio to! I’ll do a write-up in a few days about how the applications went and how I end up choosing whoever I go with.

- Quickdraw

My game is a continuous game where everything gets faster and faster over time, until you can’t keep up and get hit by 3 objects and then it’s Game Over. From a gameplay perspective if all you do is move left and right and dodge the same type of object that increases speed at the same rate, there’s only going to be so much variation in your results…you’re going to learn to know “when I get to about a minute in, it’s impossible for me” and all the fun is taken out of it because it’s now predictable.

One way I’m mixing that predictability up is by having mutliple types of objects…each of them comes at you in a different way or damages a different sized area. There are also objects that heal you. So now it’s a little less predictable…you don’t know if a throwing-star is going to come out, or dynamite, or some healing sushi.

On top of that I’m adding a Super Meter that’ll charge up every time you successfully dodge an object, and when the meter is full you’ll be able to tap the ninja and do a magic deflection move that’ll deflect an object, giving you another chance. It’s basically a panic button. I figure like the random objects it’ll help make sure the player gets a different experience each time because they can decide when they want to use it and it might be the difference between surviving another 10 seconds or not.

- Quickdraw

So I’m going to be outsourcing the programming for this game. I’m getting closer to finally looking for a programmer, and I’ve had a lot of suggestions from people on how to go about it and what to be careful of, etc. Originally my plan was to just outsource cheaply to an India-esque place where they have big groups of 50+ programmers working under an agency that takes projects and assigns them. My ideal way of working is in-house with a programmer in the same room as myself, but because I don’t have access to that right now I’m going to give outsourcing a try.

A lot of people are nervous about outsourcing to places like India, Russia, Lithuania, etc. (I’m going to just refer to them all as “India” from here on) They think it’s automatically sketchy and the contractors are going to take the money and run or the quality of the work will be terrible quality.  A lot of companies even try to hide that they outsource, like they’re ashamed of it, which is understandable given the whole “sweat shop full of children making shoes” stereotype everyone’s heard and the rough economic times we’ve had lately.  I think part of this is just a bias of “it’s different so it’s scary” or “it’s not how it’s SUPPOSED to be done, so it’s wrong and will result in doom”. I’m attempting to approach this pretty logically. So let’s take a look at the main pros and cons.

Outsourcing to a cheap foreign agency VS a more expensive local hobbyist

Pros :

Cheap price – No beatin’ around the bush, this is the main draw to it. From skimming freelance websites, some place in India will work for $15 – $25/hr, whereas a guy in North America will work for $40 – $80/hr. If a game takes 2 weeks to make, India will cost $1200 – $2000 VS North America’s $3200 – $6400. This is a pretty dramatic difference, it’s not like we’re talking about saving a few bucks here and there. You could fund two India projects for the cost of one North American one. I’d love to hire a fellow Canadian, but as a start-up paying out of my own savings at the start, $40+/hr is pretty steep.

Skills – A hobbyist programmer offering up his freelance service has probably made a game or two, and is likely a fast learner, but probably hasn’t messed with stuff that wasn’t directly specific to whatever few games he’s developed. If a game required Twitter integration for posting high scores, and the guy hasn’t done it before, he’ll probably learn to do it quickly but that’s still time that costs money, and if it doesn’t work right the first time or he doesn’t bug-test it properly because he’s never messed with it before, that can add up.

On the flip side, a large agency with 50+ programmers and dozens of completed projects likely has SOMEONE who’s done that Twitter integration before. And because of the large number of projects they tackle, they’re probably well-equipped to pump out new projects quickly…they likely already have a well-tested basic framework they use for their games. If every game they put out is automatically ported to iPhone, iPhone 4, and iPad, they probably have some systems in place for doing that efficiently. The hobbyist might have this too, but it’s probably not going to be as tested and efficient as an agency that has dozens of projects under their belt.

Reviews – Large freelance sites are set up with a review system like eBay. If someone bails on a project, they get bad reviews. If someone does great, they get good reviews. You can hire someone with no reviews, but I think that might be a sketchy crap-shoot…maybe the next John Carmack is in there but I don’t have the money to find that out, someone else can risk it. Logically, if you hire a company that has 10+ reviews and all of those reviews rate them as 4.5 – 5 stars and the reviews say the people were great to work with, responded quickly to concerns, went the extra mile, etc…that pretty much eliminates the sketchy argument.

Time zones – My business coach thought of this one. My game is fully designed, there’s not a lot of need for creative input left on it. So logically, I just need someone who will follow steps A, B, and C and boom, I have a game. This is because I’m doing the art and design ahead of starting the programming, which is offset from how game development normally works, where a programmer and artist work hand-in-hand through the project. So I’ve got a game designed, and all the art done for it, and a task list for the programmer to go through while I just oversee the builds here and there. There’s no reason we both need to be online at the same time for this…so by going with someone on the other side of the world, they’re working at night while I’m sleeping.

The benefit to this is receiving a build at the start of my work-day and being able to test it and by the end of my work-day I send off an E-Mail saying “I checked last night’s build and it needs this this and this fixed, thanks!” Then I can go off to bed and when I wake up, I’ve got a new build with those changes in it. This could be pretty efficient when juggling multiple projects.

Meeting milestones – If I’ve hired a hobbyist and he gets sick, or has another project going that gets in the way, or he just decides not to come into work one day, I’m pretty screwed. I can’t do anything except hope that he gets back to it as soon as possible. In a large agency, the developers are more interchangeable. If Bob in India gets sick, a representative at the agency is going to go “Oh no, nothings wrong, nothing at all!” with a big smile while quietly substituting Joe till Bob gets back, all for the sake of keeping up appearances and making the deadline. This sounds kind of messed up, but from a pure business perspective and needing to get a project done on time, this is a pretty comforting notion.

Regulated process – The large freelance sites set you up with everything from a Work Room where you can discuss the project, share files, create and check off tasks and milestones, and view commented daily logs describing the game’s progress, to payment systems where both sides submit their credit card info to the site and the site handles the transaction process to ensure that both sides agree the milestones were met and the payment has been earned. This is way less sketchy than paying some guy over Paypal because the website is the middle-man in the financial transactions.


Language barrierThis is especially frustrating when you’re attempting to discuss creative ideas and have to describe abstract concepts to someone who’s grasp of your language is rough at best. My business coach pointed out that generally the large agencies will have a few “representatives” who speak fluent English and represent whoever’s behind the scenes working on your project…VS the small 2 – 4 man foreign teams who don’t have the resources to afford a middle-man like that. Someone local is going to speak the same language as you and the communication process will be FAR less frustrating…in fact, time might even be saved due to a lack of confusion.

Work ethic – I think this just applies to outsourcing in general, anytime you’re working with someone who’s not in the room with you, you always wonder if they’re ACTUALLY working or not.

QualityOften in a creative project a little extra work comes into play…the throwing-star doesn’t look QUITE cool enough to the programmer so he works a few extra hours to fine tune it to be more awesome and says “don’t worry about it” when you offer to pay for that extra time, or doesn’t even mention it at all because he’s having fun working on the project. Compare that to a large agency in India where they’re probably going to just do what you tell them. If you say do tasks A, B, and D, you can’t expect them to voluntarily throw in task C like you often can with a hobbyist.

Vanishing – “I hired Bob, Bob said he’d have this done in 7 days. It’s day 5 and I haven’t heard from Bob. It’s day 7 and he showed up and said it’ll take another 7 days due to such and such. Well, okay, I’ll keep paying him for another 7 days, it’ll be worth it for my awesome game! 7 days later I haven’t heard from Bob…Bob? Are you still working on my game? Oh, you are? It’s almost done? Great! Just another 7 days? Alright, well, I guess I have to keep paying you since you’re working, and we’ve gone so far now that it’d be too much trouble to hire a new developer…7 days later I haven’t heard from Bob again. Bob? Are you there? Hello? Hellooooo? umm…can I at least have the code you had done? Hello? Bob?” and then sadness, despair, and the closing of another bright-eyed and bushy-tailed studio.

Someone you hire who’s so local that you can go knock on their door is probably not going to vanish like that, and if they do, it’s easier to take action to resolve it. If someone in India takes your money and runs, what are you going to do, fly to India and talk to lawyers there?

Multiple projects – On a lot of these freelance sites you can see how many projects the developer has “in progress”. I’d be lying if I said it didn’t worry me when I see a 6 man team with 10 projects “in progress”. I’m not much of a multi-tasker myself, but who knows, maybe those guys have found a way to make it work. It’s a bit nerve-wracking to think “I need someone working on my game full-time so I can have it done on time, and these guys have 5 other projects on the go…maybe mine isn’t going to be their top priority like it is for me.” A hobbyist is more likely to be focused entirely on one project at a time, which is way more reassuring.

So with all this said, where does that leave me? I like the pros of outsourcing, but how do I counter the cons listed above?

How to outsource to India safely

Language barrier – I figure a large agency will have representatives that speak fluent enough English to get by. I’m terrible with understanding heavy accents over a phone line, but generally I can decipher “Engrish” in an E-Mail. I’ve worked with people in real life who don’t speak English fluently, so really it’s not that much more difficult than it’d be to work with someone who’s first language isn’t English. Part of my strategy is to read everything in the developer’s profile and pay attention to any Engrishy bits to see how much there is, and to check the reviews and look for reviews that say the person had great communication and spoke fluent English.

Work Ethic – Because the Work Rooms are heavily regulated, there’s plenty of milestone checklists and daily progress logs in place. If my instructions are vague like ”I want a game with like, a ninja, and he dodges throwing-stars and it gets faster and faster until he dies!” and the milestones are like, “1 week in – $500 for something playable, 2 weeks in – $500 for the final game”, there’s plenty of room for error. But if my instructions are specific like “The throwing-star will travel 50 pixels a frame and when the throwing-star’s y-axis is in line with the player’s it’ll check for hit detection” and the milestones are like, “Day 1 – $100 – Ninja sliding left and right. Day 2 – $100 – Throwing-star flying toward player. Day 3 – $100 – Throwing-star can kill the Ninja and trigger a Game Over screen.”, I’m much more likely to get something that’s on schedule and without as many errors.

Granted this takes a certain programmer mindset, and requires a ton more planning ahead of time, and a bit of crossing-my-fingers that everything will come together like I expect it to and it’ll be fun to play like I picture in my head. But the trade-off is that if a milestone isn’t met, I can pull the plug and find a new developer or re-negotiate things if design issues have come up, and I’ve only lost one day’s pay instead of finding out a week in that the project is behind. You can do this same method with a hobbyist, don’t get me wrong, I’m just trying to find a way to safely outsource to India here haha

Quality – If my project is “Some kind of ninja game where you dodge things”, a hobbyist is probably going to create something way better than India who will likely just do the bare bones minimum to meet the requirement. But to counter that, my project is fully designed and planned out, so there’s far less “wiggle-room” for quality. It’s hard to add or lose much quality with “Slide the throwing-star up at 50 pixels per frame, and when it’s on frame 27, check the hit detection against the player’s hit box I defined the size of earlier.”

Vanishing – Again with the heavily planned out project with lots of milestones, if the developer is fly-by-night and vanishes suddenly, or for whatever reason is unable to continue working on the project, I’ve only lost one day’s pay. I’m not saying I won’t or can’t lose money, I’m just looking at how can I protect myself as much as possible and ensure that if I do lose money, I lose as little as possible.

Multiple projects – Personally I’m more comfortable with 10 people juggling 5 projects than 1 guy juggling 5 projects, in terms of knowing my project will get enough attention. You can also request that someone work on your game full time, it’s even built into the freelance sites when you post a job. But in terms of staff, a team of 2 people may not have someone that can work the hours you expect. They may not even be able to start on your project for a couple weeks if they have other stuff going on. An agency of 50+, however, will have SOMEONE they can put on your project instantly and who will work as frequently as you need.

Outsourcing to India sounds scary at first, but when you sit down and work out the problems with it in a logical way it’s really not as bad as it sounds. If things go horrible, I lose a small amount of money and may have to find a new developer. If things go well, then I’m getting development for almost half of what it’d cost to outsource locally. Down the road I’d like to have an in-house programmer, just so I don’t have so much solo planning to do at the start of a project, but for my first few games this sounds like a win/win situation.

I’ll be documenting my experiences with outsourcing as I go, so stay tuned to see how this all works out!

Oh, and as for the patriotic duty arguments regarding supporting the local economy instead of outsourcing to foreign countries, well, that’s another discussion entirely haha

- Quickdraw

I’m still doing the grunt-work of making animation files out of all my art, so there’s nothing exciting to show today. But I realized when I looked at my site that I actually have a list of links to developers on the side-bar…I threw some in there when I first started the site and then just completely forgot it existed haha I’ve met a handful of developers in the last while so I’ve updated the links on the side to include some more of ‘em:

Broken Kings – Met these guys at the Global Game Jam. A group of devs who live in a house together and pump out new games regularly. Lots of behind-the-scenes info!

iCOG Studios – Fellow Calgary devs I met through the Calgary IGDA and survived the GGJ with haha

Juicy Beast – Awesome games and lots of behind-the-scenes info!

Ravenous Games – Creator of League of Evil! Derek and I actually knew eachother back when I went by the alias Tsugumo…awesome to see oldschool people making it in the industry!

Go check their stuff out while I get back to dragging .PNG files around zzzzz…

- Quickdraw

I was going through the Game Design Doc looking for something and passed by the word “tutorial” and realized I didn’t even think about a tutorial or loading screen haha Whoops! No biggie, I figure there’s not much to the game so it won’t be hard to figure out…Any information needed should be able to go on a loading screen. I’m guessing because there’s so much art in the game there’ll be a bit of load-time going on…might as well fill that with something useful!

I’m a fan of in-game tutorials, but man is it frustrating when you can’t skip them. It drives me nuts when I have to play through the first 5 levels or so of a game closing pop-up boxes when the game’s controls are pretty obvious as it is. My game isn’t going to be complex enough to need much instruction, but if I did something like a Strategy RPG I would put a lot more planning into the tutorials so they could be integrated into the main game engine instead of tacked on as an afterthought. Stuff to consider for future games!

Nothing exciting to report today, just workin’ on the art. The explosion was the last major gameplay thing…so now I’m doing all the animation files for everything. It’s not a difficult process, it’s just slow boring grunt-work!

- Quickdraw

Powered by WordPress | Theme: Motion by 85ideas.
©2010 Bulletproof Outlaws[ Back to top ]
Rss Feed Tweeter button Facebook button Reddit button Delicious button Digg button Stumbleupon button Youtube button