Monday, April 29, 2013

The truth about how AAA developers view indies.

I'd like to contribute something very specific on the topic of "AAA vs Indie" developers.



First, allow me a brief paragraph to establish something.

I know a lot of developers.  While I'm currently independent, I feel qualified to speak about the 'average' AAA game developer.  I've worked on published games of various sizes for 20 years.  I've worked for six companies (both successful and not) in different cities.  I've been fortunate to work at a couple companies that have acted as incubators for talent that later spread to pretty much every major project you can name.  At Epic I routinely traveled to work with licensee companies around the world.  I've worked in nearly every discipline, or intimately with the departments of code, design, art, audio, marketing groups, all of it.  I'm active in quite a few developer forums.  I speak publicly when I can with other creatives.  I know a lot of devs.

I don't say all that to be self promotional.  Hell, I'm not even an outgoing 'people person'.  The industry is always in motion and anyone who has stuck around for 20 years knows about a billion people, or they're extremely introverted and only know a few hundred thousand.  I say all of that to qualify my sample size for the one very clear statement I want to make with this post:


AAA developers respect the hell out of indie developers.


I can recall nobody in my career... none, zip, ZERO developers at AAA companies that offhandedly disregard the indie community or their outlets.  In a surprising amount of cases AAA devs envy indie freedom and current distribution options.  Many hope to cluster into small teams and make a run at it themselves.  Sure, many AAA devs are very happy with their careers, but looking down on indies?  No.  Don't believe it.

____________________


Why?

Here's one truth about any developer you might think of as an old-timer (and again I feel very at-ease making this generalization).  We value people taking initiative, and above all completing projects as demonstrations of their commitment to developing games.

'Back in my day' (yes, I said it) starting off in the early-mid 90's, there were no official routes to becoming a game developer.  There were basically no degrees, only one or two specialty schools focused on games, and they where honestly a novelty to most.  In the past, if you wanted to get into games you did so by making mods, making shareware, making WADs, making BBS games, making total conversions.  Hell, you even did so by making text adventures.  You got into games by doing your own projects on your own time, with your own initiative.

More and more we started seeing people applying for positions who were coming from fledgling formalized programs.  They would bring in their new diplomas, wielded like a permission slip for job offers, but in a surprising number of cases they had no actual material to show, no free time passion projects, no collaborations with mod teams, no... proof of drive.

To this day (even more frequently in fact) I get letters from parents asking if we have internships available for their college aged sons or daughters.  "My son goes to X college and wants to tighten up some graphics on level 3".  No.  No, no no freakin' no!  If a person does not have the initiative to write their own introduction email... I'll stop that rant right there.  Slow exhale... I digress.

My point is that jobs inevitably went to the people who had passion and 'game'.  The applicant with a functional mod, a playable demo, character models they created on busted hacked software at 4 in the morning based on some design pitch they have... those were who we hired, those are who we ARE.  We hired people who -had- to make games because it was part of their being, and passed on those for which it was just an intriguing occupational option.

To think that random AAA developers suddenly no longer respect motivated, self driven, creative, innovative indies who ship games and push the wider art form of gaming?  It's more than wrong, it displays an ignorance of the actual individuals who make up the industry.

Quality developers have always, always, came from the same fabric that indie developers are cut from today.

Indie ladies and gents, you might not know them personally (yet), but you simply could not ask for a bigger group of people cheering on your efforts than random developers working at places like BioWare, Epic, Bungie, 343.  They're eager to see what amazing things you come up with, what trends you initiate, and who takes off and launches a great IP.  Even huge companies like EA and Ubi, wait for it... are loaded with passionate developers a lot like yourself (EA was a stepping stone of several indie heavy hitters).

(Quick side note: I'm not discouraging modern colleges.  There are truly excellent gaming programs out there now, the above is speaking of the past landscape.   My advice remains though, personal initiative is still critical!)

____________________


If you're new to the industry or simply have never worked in AAA, please, revise any assumptions you have that AAA devs are widget makers who were hired after their parents wrote their cover letters.

Aren't they all just cogs in a machine?  No.  Random AAA developer X might really just love rigging models (crazy, right!?  I know several), or love designing race tracks, or love facial animation, or lighting levels, or mo-cap, or UI design, or any other number of personally rewarding specialized tasks.  The fact that they work as a smaller component on a larger team that allows them to perfect their specific craft does not put them at odds with you creating an entire game by yourself.  They're just doing what they love, but they still follow and adore your work.  They still evangelize your bad ass rogue-likes and platformers to countless others.

When someone claims those specialized developers are not furthering the industry, that they're not contributing to the advancement of our art form, that they're "in the way"... simply because they value something other than, say, narrative specifically.  It's a cancerous, judgmental sentiment in my opinion.

____________________


Often there is an undercurrent of standing up to 'the man' with any intrinsically artistic scene.  It's easy for someone new to game development to hold up EA or Activision as such an 'authority'.  But they hold no sway over you and your ability to design whatever you want as an indie.  I ask you to refrain from holding up 'AAA' as the same oppressive force as 'market forces'.  The only 'man' out there limiting your ability to create the game you want to make, is the situation where not enough people buy your game, know about your game, support what you're doing, or validate your work.  I know firsthand (all AAA devs do) those are harsh mistresses.

Making games is tough, often disheartening work.  At times it feels like there are unseen forces working against you.  There's platform issues, unwelcome influences, business trends, roadblocks and complications every single day, and it doesn't stop.  I set out personally to create 'my own' games 20 years ago, but I can't honestly say I have made a game that is "mine" yet due to the broad array of factors involved in simply finishing a game and putting it out there.

But know this.  While it may feel like there is some powerful force waiting for you to fall on your face, while it feels like your ability to create what you want is being actively oppressed sometimes... hear what I'm saying as someone who lived on the other side of that fence for most of his life... it is not coming from your AAA brothers and sisters.

_____________________


It feels as if we are being bombarded by people trying to pit developers against each other; don't fall for it.  Don't get sucked into the negativity.  Don't assume we have high school class systems among developers.  Don't assume any of us, indie or AAA, fit the stereotypes that make for dramatic stories about cultural battle lines.  Don't let others shape your opinions; reach out to all kinds of devs online or at gatherings and see how easy it is to find a supportive comrade (spoiler: it's not hard).

Lastly, especially if you're a games journalist, please, don't propagate or encourage these divisive personal stereotypes; there is nothing constructive or genuine about it.

Thanks for reading.


Sunday, April 21, 2013

Single best advice for any developer I can offer? Controller Feedback.

There is one aspect of games I care so much about, yet relatively few people seem to place enough importance on it and schools generally completely overlook it.  It's something that can affect any game regardless of genre or scope.  So, here it is...

From time to time I've been asked to look at early versions of games and constructively criticize them.  Typically there's a great theme involved or clever mechanic, but it's not often that games in an Alpha or even Beta state feel like a really solid experience.  It's true of shipping projects from veterans as often as student works or garage projects from talented indies.

If there's one single thing I would drive into any developer's head if I could, it would be the importance of great player feedback.  When I talk about feedback, I mean the classic loop between hitting a button and the game responding in a way that simply feels great.

A classic example that floated around Epic for a long time was the first 3D Mario 64.  Simply pressing the analog stick resulted in Mario springing to life, arms outstretched like a plane, banking into turns, puffs of dust beneath his feet, great footstep sounds from giant feet...  then the inevitable, the player presses "A".  Mario unforgettably shouts "WOOHOO!", a cloud appears under his feet as he leaps abruptly, his arm is over his head, when he lands there's a camera bounce, another burst of ground dust, a solid "bonk" sound, etc.  Making Mario simply run in a circle and jump, even on a flat green plane of low resolution grass was absolute magic.

When we put cover mechanics into Gears of War we had the same bar.  The player is simply pressing the "A" button to enter cover, but the result is anything but simple.  Marcus slides forward abruptly towards cover, dust particles streak behind his feet as he travels, a gravel shuffling sound kicks in, the camera lowers while moving closer to the player, he hits the wall with a meaty metal sound, grunts "HUFF!", he animates shouldering into the wall, a huge fast dirt cloud spawns between player and cover, camera plays high intensity shake for a nearly imperceptible blink of time, and the field of view tightens to convey less exposure to fire.  Every game needs a "feel like a bad ass" button.

Simply pressing a button has to be an experience people want to repeat.  It's what makes a game addictive, intoxicating... it's the recipe for a game that "feels" right.

The best game in the world, regardless of high concept or awesome mechanics, can feel absolutely neutered when these principles are disregarded or neglected.  Conversely, there's many simple games that nail player feedback and become extremely successful while people scratch their head wondering how they pulled it off so well.  Try opening Angry Birds, pull a bird back in a slingshot and smash him into a pig fort.  See if you can count all the things that happen under the hood from that one interaction.

Fruit Ninja gets it, even with slow swipe finger movements, when you intersect with a target there's a brief quick slash effect from your fingertip 'assisting' and speeding your motion (and many other actions).  Peggle more than gets it, they're the goddamn grandmasters of amazing player feedback.  The way each note in a sequence of impacts raise in pitch to a pleasing series, the flash of each peg before it dissipates, the slow motion as the ball approaches the final peg on the board, the unholy brazen insanity of playing ODE TO JOY(!!!!) WHILE FIREWORKS EXPLODE AROUND YOU as you clear a level.

Imagine any of those games without those elements.

"But those are action based or simple arcade games, I'm making a puzzle game or RTS".  It's even more important.  If you don't think simply clicking a cursor on someone can be satisfying, think back to the amazing audio reactions Blizzard piles onto their Warcraft characters when you simple select them or give them an order.  Slap an imp in Dungeon Keeper.  Watch the array of crosshairs that happen when you direct a unit to move to 'X', etc.  Great UI has satisfying "clicks" on menu items, and lighting changes, etc."


Here's the thing I can't stress enough.  Those items are not polish.  They are not something you add at the last moment in your game or put off to the end.  If your core concept is the skeleton of your game, these items are the beating heart that makes your game come to life.  You can spend an entire development cycle questioning a core mechanic that just doesn't 'grab' you like it does when you see it in your head; meanwhile, a couple hours putting in some decent feedback early on can make that item a key attribute of your game and literally pull a team together around your concept.  Do it early and often.

It's about salesmanship.  It's selling your concept to your fellow developers so they get excited and hop on board with your vision.  It's selling the features to the player so they give your game more than 20 seconds of their attention.  It's about bystanders or trailer downloads seeing amazing things happen and them dying to get their hands on the controller.


Here's the awesome part.  It's actually not all that complicated, the improvement is immediately obvious, it's a very fun task, you get better at it every time you do it, you'll develop a very personal style and flavor to your features, and once it's done... your game will FEEL like a freaking game.  Honestly it's not all that labor intensive; sure there's examples above that use a dozen tricks for one button, but even two good feedback tricks can transform a placeholder feature into an amazing experience.  On the flip side, it's virtually impossible to overdo it... just make it feel great, and balance it after ;)

_________________________________


Here's a list of very basic and incomplete moments to consider ramping up based on genres (you'll find your own when you put your mind to it):

Shooters - Firing and connecting with a target MUST be fun.  Hit impacts on walls, hits on enemies must be obvious and communicate success, muzzle flares, and subtle camera action on firing or getting hit.  Convey getting damaged well and ramp it up as you're closer to going down.

Racing - FOV is your friend, play with it based on your speed, camera movement based on car dynamics (braking/swerving), high frequency camera shakes in intense moments and impacts, crossing the finish line with a flash or slow motion right at the line.  Tires screeching or a burst of engine revs when you blip the throttle, for speed games it's really not optional.

Puzzle games - Even turn based can benefit from awesome flash timing.  An element in your game disappears? Flash it 2-3 times right before hand.  Look at Puzzle Fighter and how amazing it is when you shatter a gem.  Hell, grab a mic at your desk and record a dozen lip smacks, mouth pops, swishes, paper tears, claps, etc... and tie them to some events.  You'll know immediately if it helps, and polish the audio later.

Melee combat - Consider the classic Street Fighter frame hitch on impact to emphasize a strike.  Camera jitters on impacts, if you have health meters, flash them any time they take a hit to show the damage timing.  Prioritize feel over realistic animations... crop out the first handful of attack or jump frames and see how responsive it feels, play your game at 1.5 speed and see if you're being dragged down normally.

Any game with a post-match summary or scoreboard - Don't just pop up a number, increment it with an amazing ramping sound.  Animate the elements like badges.  Unveil the information a couple elements at a time instead of one big info dump.  Play a nice swiffing or popping sound with every screen that transitions.  Fade the entire screen to white for .1 seconds and then back when a screen appears or disappears to cover transitions.

RTS - Make units respond.  Change cursors as you mouseover items to imply functionality, then change the cursor again when they act on something.  Major sounds on those interactions.  If you're 3D consider camera tricks like slightly narrowing your FOV as you pan a camera around quickly, then settle back out as they stop the motion.  Do everything you can to make it dynamic.

Mega artsy game - All feedback doesn't come in the form of a Thunder Valley Monster Truck Mania commercial.  Recall in Sword and Sworcery how awesome the wood spirits where when you tapped them and they floated upwards with that utterly amazing soft music chord.  Recall in Journey how satisfying the sounds of sand were under your feet, the way it deformed, or how the wind sounds seemed to pick up as you leap into the air and fabric flaps and waves.  It's all there.

Any game - grab a pack of audio "stingers" online.  Typically very short bursts of music or even a single chord that can be tied to actions as simple as pressing the "start" button on your intro screen.

_________________________________


A couple comments about mobile:

Play Halo sometime, but turn your volume off and see how the furious action holds up.  A problem with mobile development is that we know most players on mobile devices play without audio.  Games often implore players to put on headphones, because they really gave the audio the love it deserves, but it's largely ignored.  For the mobile space, it's even more important for visual elements to read loud and clear on a small screen with glare on a subway.

Touch screen controls are notoriously hard to get feeling "tactile", so it's critical to make those interactions affect the screen in notable ways to confirm to the player "yes, your control input was received, thanks for playing".  Virtual d-pads are bad news to many players, but find some way to visibly react to taps even when your buttons are hidden.  On an actual game controller we would call any button that didn't APPEAR to do anything when pressed a "dead button" and one players often won't press a second time.  Keep an eye out for times a player might get the wrong impression about your touch controls because you're not being obvious enough with the interaction.

Swiping or dragging motions are frequent on mobile games, it's worth investing in tech to allow streamer or splines or particles to emit from your fingertip as it moves.  It's up to you how subtle or tastefully you use it, but it's great when it feels like you're constantly touching the world and interacting.

Lastly, call it a stereotype, but I've heard the term "pizazz over polish" before from a notable mobile developer.  While I'm not sure where they blur the line with the two, they're kind of on to something with a market of new gamers flooding in and trying more games.  If you're making something you expect to be played by millions of people, know that the vast majority of those people like shiny things ;)

I hope this helps and gives you something new to think about as you turn prototypes into masterpieces.

Thanks for reading!

So late to the party... is it over?

Lately there's been so many discussions online in the game development community I've started to get a little jealous about people's ability to leave their word online in a more organized and accessible way.  I could write articles here and there for publications, but to be honest I've been longing for a no-hassle place to put down useful personal thoughts about game development techniques and the industry.

So, hey, why not try blogging for a while on Google's dime and see if I keep up with it?  If so, I'll bother with a domain and getting all fancy later!  ;)


Disclaimer:  I don't consider myself an academic when it comes to design.  I work from experience and how things feel, and constantly find myself in awe of people who are better able to structure arguments that I've felt internally but never found words for myself.  I consider myself practical above all else, and I always strive to give advice that is actionable.

If I can give out some helpful advice that quantifiably makes some projects or developers better, that's all I can hope for.