Category Archives: Career Advice

When Assembly Language Turned Into Assembly Lines

When I first started my career in game development, programming was much simpler than it is today, and I was able to develop my games in BASIC (Beginner’s All-Purpose Symbolic Instruction Code), with certain functions such as graphics and AI pathfinding done in assembly language.  Games in general were much simpler than today’s games, and I was able to do the game design, art (such as it was) and sounds all by myself.

However, over time, games became larger and larger in scope, and more people were needed to develop a game.  The lone developer was replaced by a two- or three-person team, which gave way to a half-dozen member team, which in turn evolved into a twenty, then fifty, and eventually a hundred-person team.  Now a major AAA game title might involve over a thousand people, sometimes with several studios and art houses working together.

The production values of games also evolved, and so-called “programmer art” could no longer cut it.  Therefore, development teams needed artists who knew how to draw, animators who knew how to animated, writers who knew how to write, and audio engineers who knew how to compose music and create sound effects.

Even these disciplines gave way to sub-disciplines on large-scale projects.  The design department might be comprised of a lead designer who oversees system designers, content designers, user interface designers, level designers and writers. The programming department might be lead by a technical director who supervises the engine, physics, artificial intelligence, user interface, audio, multiplayer, and tool programmers.  The art director in charge of the art department manages concept artists, texture artists, 3D modelers, riggers, animators, and environmental artists.  The sound department might have different professionals specializing in music, sound effects and voice over.  Each of these developers need to have their tasks scheduled and coordinated so that everyone works together as a team, and so that responsibility would fall to a producer or director, often assisted by a project coordinator and/or production assistant.

Each of the game’s thousands of assets, whether they be character animations, game levels, or cut scenes, might involve many different developers as the asset goes through conceptualization, design, production and implementation into a team.  Creation of these assets involve an assembly-line kind of process, called a pipeline, and an individual developer might spend his or her time on the game just doing one step in this process, over and over again.

Many people who aspire to work on AAA games imagine themselves as having complete creative control over the entire game, but that’s not how major games are made nowadays.  If you want to work in the game industry, you need to be able to take satisfaction in simply contributing to the game, even if your role is confined to creating the textures for all the rocks, tweaking all the attributes of the items for sale, or programming in the buttons for all the menus.  You will likely be part of an assembly line, and your source of pride needs to be in the entire team’s collective work on the game.

 

 

Tips For Becoming A Successful Indie Developer

Being an independent game developer sure sounds glamorous, doesn’t it?  Working on your game, pursuing your passion, without The Man (a game publisher) cracking the whip and beating you down, forcing you to stick to a schedule and budget.  You have the flexibility to make the game you want, with all the features that you know better than anyone that your players will crave.  And best of all, you get to retain ownership of your intellectual property.

At least, that’s the upside. But there’s also a downside. You have the front the money for development — or get funding from someone who will probably want an equity stake in your company in return. And then there’s the marketing of the game: something for which you probably don’t have the expertise and certainly not the time. And speaking of time, just running the company will take up your time.

Being an indie dev is a difficult task. So, here are a few random tips that might make being a successful one a little easier:

  • Hire the right people for your team.  Sure, it’s nice to work with your friends, but if your friends can’t do design, programming, art and audio well, you aren’t going to remain friends for long.
  • Invest time in your development tools. Build systems to empower your designers to get features in game as quickly as possible.
  • The biggest cause of failed projects is not managing the scope of the project. Don’t try to do more than the size and talent of your team is capable of.
  • It is better to create a great small-sized game than a mediocre larger one.
  • Remember that success is at the end of a long road. Your team’s first few games will suck, and only a fraction made afterwards (about 20%) will actually be profitable. How are you going to get there? Have a business plan that involves some combination of bootstrapping, loans, crowdfunding, angel investing, and/or venture capital — even contract work or going through traditional publishers.
  • If you’re going to be in it for the long haul, think in terms of building a business, not just a game.
  • Follow the data. Look at the metrics from your failures and spot the little pieces of success in each.
  • Start devising a marketing plan when you start developing your game. Plan how you are going to promote your game at various development stages after the initial announcement, and how you are going to promote it after launch. Set aside 10–25% of your time just for marketing tasks.
  • Be prepared to work long hours.  The game industry is notorious for sixty to eighty hours weeks.  This is because you are constantly innovating, in both design and code. Often our innovations don’t work out as well as we thought, and we have to go back to revise or fix things that we thought would be much easier to implement.
  • Don’t forget the “company” part of “indie game dev company”. You also need to have the bandwidth to handle tasks related to your company, such as office management, accounting, legal, and human resources.

That is just the tip of the proverbial iceberg.  If you really want to be successful, talk to other developers and learn from their mistakes.  Read Gamasutra, attend the Game Developers Conference, follow development blogs, go to user group meetings.  Constant practice and learning are the best remedies for failure.