Pages

Wednesday, February 29, 2012

Leap Day and Animation Promotion

Hello ladies and gentlemen, happy leap day!  There will not be a new article this week while I get a few more lined up.  In the meantime please keep sending in your thoughts and suggestions, they've been great!

I also wanted to take this opportunity to promote an animated short I've been working on called, Them Greeks...!  The project is very unique in that it is being produced entirely over the internet with people contributing from around the world.  Producing animation in a brick and mortar studio is a major challenge, so needless to say there are even more added layers of complexity due to everyone being so spread out.

We recently launched an IndieGoGo campaign to raise funds which will help with production costs that include aspects like file storage and rendering.  I encourage you to check out the Them Greeks...! website and, if you are able, contribute to the IndieGoGo campaign.

Opa!

Wednesday, February 22, 2012

Extended Experiences

Games used to be a self-contained experience; the moment you closed the program or shut off your console that was it, but not so any more. Some games have enormous systems in place that let players continue their experience outside the confines of the regular game. Now players can buy and sell virtual commodities, show off their avatar's gear, or chat with guild-mates.

Kate Welch is the Web Team Lead for Guild Wars 2 at ArenaNet. She and her team are responsible for things such as the Guild Wars 2 website, box art design, graphic marketing material, and yet-to-be-revealed web platforms which will interface with Guild Wars 2 directly. From a very young age Kate knew exactly what industry she wanted to call home. Through an indomitable will and perseverance, she's finally found that home at ArenaNet.


Why is the Web Team Lead, and the team you manage, important for the success of a game like Guild Wars 2?

We are in charge of all the web facing properties associated with Guild Wars 2. We're currently working on a brand new GuildWars2.com marketing site which is going to be really cool. We have a ton of neat features in the works especially for the web, kind of like how World of Warcraft has the Armory.

My team is part of a larger team called Extended Experience. We are in charge of doing all the stuff that relates to the game that isn't inside the game itself. We're designing the boxes and packaging for the standard version and collector’s edition of the game. When we start doing beta signups we're in charge of designing all the web and server infrastructure in order to get people into the beta. Our team has a lot on its plate!

Our team also has the only dedicated graphic designers so when the marketing team needs something like a t-shirt, sign, or ad designed we're that resource. We do a lot of stuff. Without us the game would not have a very pretty box, and people wouldn't be able to sign up for the beta. If the box is awesome when it comes out, you'll know why!


What is the greatest challenge you have had to overcome, either with a personal or professional project?

It seems like every day there's a new hurdle. It might be a huge headache but since we're all passionate about making this wonderful game we get through it and we're excited. We're excited how certain problems get under our skin because it means we care so much about it.

Being on a schedule where we have to be aggressive about releasing a gigantic game and making sure everybody is on that same page is a challenge. There are two very disparate attitudes here. One is we have to get this game out because people have been waiting for it for years. The other attitude is we can't release the game until it's perfect. MMOs can wither and die within the first month if they're not awesome. On a very high level the biggest hurdle we have to overcome is this tug-of-war between those two mindsets. We have the game in such a great spot now, and the former is finally winning out over the latter.


What work are you most proud of? Why?

I find pride in making sure the people working for me are working on things that make them excited, and nothing is in their way. On a personal level I'm most proud of being able to see my team be productive and crank things out.

On a product level I'm most proud of the new, currently unreleased, GuildWars2.com site. It's a monumental undertaking redesigning a site that big. We had to make sure it's scalable so that when we come up with cool new features that will be released post-launch it will all work together. That's been something we've been working on for the better part of a year. It's finally to the point where it's looking SO good. I was hired as a web designer and that's where my real passion lies, so it seems natural to be proud of and excited about the new site.


How do you see your profession evolving over the next few years?

When our Extended Experience team lead took over, he asked me to step up with him since I have a UX (user experience) background that he doesn't necessarily have a good glimpse into. There's upward momentum in this particular career path. What I'd really like to do, sometime within the next ten years, is to be in more of a creative director role in a studio. I really like having the creative say-so in things.

I'm getting a small taste of that now in projects where our genius creative director Daniel Dociu doesn't necessarily weigh in on every tiny thing we do. Getting to sign off on certain things and be in that role has been really cool. I like being trusted with that kind of vision. I think that's something I would really enjoy.

We always have people shifting to different departments based on their interest. It's a good place to evolve in that way. More than anything they hire talent here and then foster it. That's really rare for a game company. You always hear horror stories about big publishing giants who hire people into QA, put them through production hell, and then never give them other opportunities. At ArenaNet a lot of our game designers actually came from our own QA department. There's always room to move up or sideways here.


Are there any techniques or best practices you have learned or developed that have served you well?

People are much more inclined to be businesslike than you might think they would be. There have been times I've had a difficult situation at work where I'm dreading talking to someone when I know it's going to be a tough conversation. What I've learned is that everyone I work with is a consummate professional. Maybe it's just having never worked in the industry previous to ArenaNet because I wasn't expecting people to be able to handle things so well, but they do!

I like that people can divest their personal and business lives and be professional about things. The focus is on releasing the game and if things aren't working then we fix them and that's how it is. Nobody has hard feelings. My advice at work is to be straightforward and to the point with no nonsense and things will turn out really well.

In a passion driven industry it can be easy for people to fall into a creative trap. They latch onto some feature or piece of art they see as their baby and go down fighting to keep it the way they want it to be, but it may no longer be fun or work in the context of the game and they have to be willing to let it go.

I've definitely run into that. We good naturedly refer to that here as a "land grab." Someone has an idea they've had for a long time and now it's being questioned, but they just hold onto it for dear life even though it might not be a good idea anymore. Usually the guys who are guilty of that can be talked to and reasoned with, they come around.

Wednesday, February 15, 2012

Pixl Poll

Greetings!  In lieu of a new article today I wanted to poll the readership on a couple of things.
Based off the interviews you've seen so far, and what sort of questions I've asked:
  1. What development disciplines would you like to see more of?
  2. What sort of questions interest you the most?
    1. Do you want more personal/background information to get to know the developer better?
    2. Do you want more professional questions to learn more about their current studio, the tools they use, and their work process?
Please, post in the comments below, or on the Through the Pixl Glass facebook page.

We'll be back next week with a new interview!

Wednesday, February 8, 2012

Eerie Programmer

With the increasing size and scope of many blockbuster game titles, development disciplines are becoming more and more specialized. To achieve the quality and quantity expected by the public, a developer assembly line of sorts is put in place to produce those titles. This can lead to more sterile development environments where ideas, which spawn organically in smaller studios with integrated departments, never have the opportunity to grow. While some larger studios have taken steps to solve this problem with multi-disciplinary teams, others are blazing their own trail and fueling a vibrant indie community.

One such example is Bryn Bennett, a talented programmer who has touched every part of the programming pipeline at companies like Irrational, Iron Lore, and Harmonix. He toured with his band,Bang Camaro, playing guitar while contributing to the Rock Band series. Bryn is currently working on his first game under the banner of his new indie company, Eerie Canal. There he gets to do what he loves most which is produce code for all aspects of their game, Dreadline.


Why are programmers integral for the success of a game?

The bottom line is games need to run and programmers are responsible for that. As the only programmer on our game it's interesting to wear ALL the hats. If I want to run around a game that looks pretty believable, I have to give the artists the tools to pull that off. If I want a cool looking physics simulation, I have to be able to pull that off. If I want it to run faster than four frames per second, I, along with the artists because a lot of it comes down to content, have to work together to pull that off.

If you're speaking more on the game side of things, designers could have all the best ideas in the world but unless they're also a programmer it really doesn't matter. It comes down to the programmers to actually make it work. That's a bit of an issue I have with the current state of the industry and that's with roles being so heavily defined. Are you an artist, designer, programmer? I think that leads to a lot of inefficiency.

If you don't sit in the same room as the different disciplines where you can bounce ideas off each other all day, then you end up with this weird problem where designers write documents all the time then heave it over this artificial wall to the programmers. They may have no idea what they want is nearly impossible to pull off or could be done in a slightly different way much quicker.

For example, in Rock Band I was working on the “Pro Guitar mode” where you could plug a real guitar into the console. We had the designers sitting in the same room with us and we were talking about things we could add to make the game more fun.

I was playing the Lynyrd Skynyrd song Free Bird, and in that song everything is just sliding on the neck of the guitar. I said, "It would be awesome if we put slides into the game." The designer turned to me and said, "Man, I've wanted to do that forever but I thought it would be too hard!" I said, "No, I could do that today!"


That's a small, but I think very telling, example of things that can get lost when you don't have everyone sitting in a room throwing ideas around and having fun. In some studios it's very structured where a designer will come up with a document, then their supervisor will sign off on it, then it will go to the programming team and broken into parts before it's implemented. I think games could be made much more quickly and fun if some of those strict roles could be broken down a bit.

It seems some companies are going in the direction of having different disciplines more freely interacting with one another, which is encouraging. It can be tough when teams start getting large, then you do need the layers of production to help keep everything organized.

I've had this theory for some time now: a few people who are really excited and talented at what they do can get just as much done as a team that's way larger that has to deal with all the inefficiencies that come with a larger team. It's kind of proving itself right now. We've been working on our game for a few months and when we show it off to people they're floored by what the two of us have been able to accomplish. It makes me feel pretty good.


What is the greatest challenge you have had to overcome, either with a personal or professional project?

A game called The Lost by Irrational never came out. I was the lead programmer on that project and dealing with that was really tough. I threw everything I had at that project. I worked sixty to seventy hours per week on average during the four years of development. I really wanted to be able to pull it off, but for a lot of different reasons it didn't happen.

Looking back one of those reasons was I was a little too inexperienced. I was a lead programmer and it was my first time in the industry. There were a lot of things I just didn't know about yet. We didn't have a dedicated machine that was constantly running builds. We would do it by hand and burn DVDs and give them to people. When it was canceled it probably took a year before I was over that feeling of failure.

Then there's always just the normal end of the project crunches. Even if companies tell you it's not going to happen, it's going to happen. You always get through it and I tend to learn a lot during that time. Every time you ever take a shortcut where you make a hack to reach some milestone it always becomes the bug you're still fixing in the final two days. I've learned to never do that again and when to push back and make the argument the extra time needed to fix it right is worth the wait.

What did you do to cope with the canceling of your first project in the industry?

I moved onto another game and became the project manager on SWAT 4. At the time Ken Levine knew I was pretty burned out and moved me into a more managerial role. It didn't fit me. I'm just not made to manage a bunch of people; it's not a strength of mine. We eventually parted ways and I went to work for Iron Lore.


What work are you most proud of? Why?

I'm most proud of my ragdoll system in Titan Quest. It was ridiculous! It was as realistic as a game can be that's about satyrs and other mythological creatures in ancient Greece. Everything was very realistic until you shot a guy with an arrow and he flew into the air and rolled off a roof. There are tons of videos of people showing off all their crazy ragdoll deaths. I had a lot of fun with that. Every game has ragdoll physics now but it was really fun to push the envelope in that game.


I'm also very proud of how the “Pro Guitar mode” in Rock Band 3 turned out. You could plug a real guitar into your console and it would actually teach you how to play. We got a lot of good feedback on the feature. Being a guitar player really helped me out a lot for its development.

On a high level how did that system work? Was the game constantly checking to see if the notes being played on the guitar fell within a certain tolerance of acceptability in relation to the song it was teaching you?

It took a long time to work out. In a way your description is totally right. I learned just from watching the data coming out of the guitar from when I played that guitar players make a LOT of noise. I consider myself a semi-clean guitar player; I've played for a long time. If you want a machine to judge how you're playing and compare it to how the notes should be played exactly I don't know if a guitar player on the planet (except maybe the guitarist from Chic) would be able to pull it off. The algorithm took a long time with a lot of trial and error. In the end we got it feeling pretty good.


How do you see your profession evolving over the next few years?

I think if you're at a larger studio things are going to keep getting more and more focused. The quality of games is getting very high and people expect so much production value from them now. When I started you could be the graphics programmer or the gameplay programmer. Now you tend to be something far more defined than that. You may be the physics programmer, level editor tools programmer, or net code programmer. In some ways it's cool because you can figure out what you want to do and really try to master it.

Down the other track for smaller or indie studios I think programming feels like it did in the early to mid '90s where you have a ton of options in front of you and you can just go crazy. The indie community is coming out with a bunch of amazing games right now. Just seeing all these unique ideas people are coming up with is very inspiring. I can't really say programming is going to become one thing or the other, but I do see those two paths going off in separate directions.

By that you mean depending on where you work you may become the jack-of-all-trades or a hyper-focused programmer?

Yes. When you look at game jobs posted these days, they're looking for specialists. You don't see single posts asking for experience with animation, UI, art, and graphics. You'll see something as specific as "client network programmer." That's cool, but I think it's a little unfortunate. I've been lucky enough to have worked in every area of game programming. I don't think the future of game programming will be that way unless you're working on your own project or in a small studio environment.


Are there any techniques or best practices you have learned or developed that have served you well?

Lately I've gotten a lot more into test driven development. You write a ton of unit tests which can evaluate different small parts of your code. Basically you run that every time you compile and it tests to make sure whatever you just added didn't break anything.

I'm not as strict as a lot of programmers are about it. Some would argue that unless you have full code coverage of these unit tests then it's useless. I don't think anything is that black and white.

There have been a lot of times where I've added something that seemed pretty harmless and then the test went off and something seemingly unrelated blew up. I would have never known about it until weeks later. That's been great.

As for general best practices, if you know you're making a hack, it will eventually break. Re-factor all the time. As a programmer, don't write code you don't have to write. I definitely got to a point where I was over-engineering everything. Every object I wrote I tried to take everything that could ever happen into account when I probably only needed about 20% of that. Everything else was just adding the potential for more bugs and unnecessary complexity. Now I write only the code I need to and then add to it when I have to. If I find I'm not using something I've previously written I'll rip it out. That has made things far better.

John Carmack always releases his code a few years after the game has shipped. I remember the first time I saw the Quake II code. I was taken aback and found myself thinking, "This is all it is? John Carmack sucks! He isn't even thinking of the future!" It wasn't until a few years later that I realized everything he did was totally right.

How do the unit tests work exactly? Is it a set of automated processes that you have run automatically with each new build?

After I build in the compiler it just goes off. A lot of time when I program a new feature I also write some code that will test everything I assume about it. It will test all those assumptions and if one of them fails it lets me know.

As a simple example say I made a function that is supposed to rotate an object ninety degrees to the right. If it ended up actually rotating the object ninety degrees left the test will let me know and I can fix it. It ends up catching a ton of things.

At first you have to get over the pain of writing all this extra code. For each new feature you add you're also adding additional code to test it. So you're probably adding thirty to forty percent more code. For me it's been completely worth it.


What can you tell me about the first game being produced at Eerie Canal?

We haven't talked about it much yet. The game is called Dreadline. The premise is kind of bonkers. You are a team of monsters who have a time machine and you want to do the morally right thing. So even though you're monsters and it's your nature to kill people you only want to kill the ones who are going to die anyway. So you might travel to catastrophic events in human history like the Titanic or Pompeii. You kill the humans, but they weren't going to make it anyway.

Wednesday, February 1, 2012

Top 5 Practices of Successful Game Developers


This week I decided to take a break from the regular posts.  After ten interviews with different developers across a wide range of disciplines and companies I've observed certain prevalent themes and commonalities.  I've compiled them here so all may benefit from a condensed list of practices which have contributed to the success of my interviewees.

These are thoughts and insights gleaned from the pool of developers who have appeared here on the Pixl Glass thus far and who, I dare say, have found success in what they do.  While these practices are extremely helpful, bear in mind that in the end there is no magic bullet, no foolproof list you can follow to be a game developer, let alone a successful one. Taking their advice and emulating some of their best practices would certainly be a great way to start!


1) Be Inspired
"What inspires you?" has been a staple question I've asked developers in every interview.  I've been impressed with the diversity of the answers given.  Some were inspired, unsurprisingly, by the very industry in which they work.  Playing a new AAA game or the smallest indie darling offered insights into the latest uses of technology or freshest ideas in gameplay mechanics. Other inspirations included travel, film, traditional art, printed media, world building, fellow artists’ work, or simply getting to observe someone enjoy the product they helped produce.

The important thing is not the specific source of the inspiration but the act of BEING inspired.  Being inspired gives you creative energy and enthusiasm that pushes you to reach further than you thought possible.  Someone motivated by passion and inspiration will produce better quality and more impactful work than someone moved purely by monetary or prestigious motives.


2) Never Stop Learning
A result of being inspired by something often leads to a desire to learn how to make what inspired you!  When I asked for a technique or best practice that had served the developer well, their answer almost always included the advice to never stop learning.

This is a fast moving industry.  Technology is constantly changing and evolving.  New techniques and development methodologies are always being invented.  In some ways a developer is much like a shark: if they don't keep swimming forward they can suffocate.

However, being fearful of falling behind the curve is not a constructive motivator to learn. You need to have a natural desire to improve yourself and create that next big thing, to push the envelope.  It may be a new way of producing art, creating a sound that fits just right, or programming an engine feature that makes the game more fun.  Whatever your profession, you must constantly strive to master it.


3) Take the Road Less Traveled
When I asked the developers to tell me about themselves I've received a wide range of timelines as responses.  Some went as far back as their childhood through to present day detailing how they came to be where they are now.  Others described just their work history.  It's these histories that intrigued me most.

Nearly everyone interviewed did not start their professional careers in the game industry.  They worked in "more realistic" or "safer" jobs, sometimes presuming working in games was not an achievable or desirable goal.  One thing is very clear though; these individuals would not have had the skills or experience necessary to finally break into the industry without them.

This is definitely a testament to the fact that there is no "right" path to take to get into game development.  The industry recognizes and recruits talented people regardless of how that talent was acquired.  In many respects these individuals had the opportunity to experience things they otherwise might not have if they had been purely focused on games.  They became well rounded and professionally mature because of it.

Suffice it to say, if your goal is to work in the game industry don't be fearful that working at a non-game production job will be a detriment to your career.  It may just be the thing you need to make the leap.


4) Be Confident, Be Humble
Many of the folks I've interviewed have less than ten years of experience in the industry, and some fewer than five.  Many felt like the role they were hired to fill, or the project they were given, was beyond their merits or capabilities.  It was only after they finished the assignment that they discovered they were completely capable and extremely effective in solving the problems thrown their way.

It's natural to feel small and under prepared when tasked with something you feel is beyond you.  Bear in mind you would have never been given such an opportunity if the supervisor or hiring committee wasn't certain of your abilities.  Take comfort in that and let it give you some deserved confidence (confidence level up!).

However, don't let that confidence over-inflate your ego.  As a couple of interviewees discovered, they were not the development gurus they had built themselves up to be in their minds.  Avoid these pitfalls and accept your responsibilities with humility.


5) Listen to your Peers
This final practice ties everything together and was another common theme I found looking back through the interviews.  The previous points are certainly easier to accomplished when you have the support of your peers.

Working in a vacuum can be detrimental and each interviewee has been able to make their work better with input from their peers.  Peers provide reviews, critiques, criticisms, or just act as a sounding board as you work out a problem.  They may be co-workers, friends, professional forum denizens, or even other contemporaries in the industry.  They will inspire you, teach you new things, build you up, and help keep you grounded.  In many respects they are the greatest asset any professional can have.