Showing posts with label Getting a games job. Show all posts
Showing posts with label Getting a games job. Show all posts

Saturday, March 23, 2013

Project Euler

Something I constantly remind my students is to keep coding all the time, and working on demos in their spare time.

If you have trouble thinking of demos to make, and want some programming challenges, you could try Project Euler.

While it's not games specific, if you just want to exercise your grey cells and practice some coding, it's a good place to start.

Thursday, October 13, 2011

About my Career as a Games Programmer

A student from a local college asked me some questions about my job. I thought I’d reprint my answers here.
So, What is your position at Heavy Iron and what are your specific duties?
  • I am the ‘Studio Technical Director’.
  • I am the head of the programming department.
  • I spend some of my time programming the game, and tools we use to make the game.
  • I work with other senior programmers and other departments (e.g. art, animation, sound, design) to work out what new features we should implement in our game/tools, and how to implement them.
  • I spend a little time in management meetings, where we discuss future projects, hiring of staff and other studio management things.
What skills, education, experience, and knowledge are required to qualify for your position?
  • I’ll start by giving my history:
    • I grew up in England.
    • I first got interested in programming when I was about 10 years old. I was given a computer which could run games, but you could also program ‘basic’ on.
    • Through school, I chose classes with computers in whenever I could.
    • I went to University and got a ‘Bachelors of Engineering in Computer Science’.
    • After University I got a job as a ‘junior programmer’ at a games company.
    • I’ve now been working for 15 years, at four different companies. The last 9 years, I’ve been at Heavy Iron.
    • I gradually became better and better at my job, and rose up to mid-level programmer, senior programmer, technical director and now studio technical director. At one point I was ‘lead programmer’ on a couple of games, and now the lead programmers report to me. (Lead programmers are the ones who do a lot of the decision making about how a game gets built – it’s a tough job, but fun too.)
  • To get a job as a programmer, it’s best to have a college degree in computer programming – specifically in C/C++ for the kind of games we make (PS3, Xbox 360, Wii) and several platforms which we don’t currently make games for (PC, Mac, iOS/iPhone/iPad, PSP, 3DS, Wii U).
  • In terms of skills and experience for my current position, I’d say you need many years of experience of programming games, and also a tendency to organize people, a curiosity for how things work, and a drive to make things and do the best job you can.
  • I tend to think that students who like and do well at math and physics, tend to make good programmers.
What is your work environment like?
  • We work on one floor of an office building. Most people sit in ‘cubes’, and some people sit in one or two person offices.
  • Compared to a ‘normal office’, we tend to have more ‘tech’ sitting around – monitors, TV’s, game consoles. Also because the industry has quite a lot of young / creative types, there is a fair amount of decoration – game posters, character models from TV/Movies/Games.
  • The group of people are fun to work with, and are mainly in the 20..40 years of age range. It’s mainly guys, but there are a few gals around too.
Are you under contract?
  • Yes. I am a full time employee, and so are most of the other people here.
  • A few people are on shorter term contracts, but (so far at least) the industry tends to mainly consist of full time positions.
Do you get any benefits?
  • Yes. Health, dental, vision, life insurance, disability. The company pays most of it, but I also pay some. It’s automatically taken from my paycheck.
What do you like the most/least about your job?
  • Most
    • I love programming. I do it at work, and then I go home and do it for my hobby / for fun.
    • I really like working with the nice people at work. Working as a team and making games is fun.
    • I like making cool tools (programs) which we use for making games.
    • I also teach programming at a local college one night a week. I like helping other programmers get into the industry, and spreading my passion for game coding.
  • Least
    • Being a manager comes with some dull tasks, like approving time-cards, sending out reminders to people that they need to keep the place clean, etc.
    • Again, as a manager, you sometimes need to tell people that there are problems with their work, or their behavior. It’s never fun to tell someone bad things like this.
What future changes do you anticipate in this field?
  • There’s a current shift going on from consoles like Xbox 360 towards mobile devices like the iPhone, and web games. This means companies and workers need to ‘stay agile’ and change with consumer demand.
  • I still think that C/C++ is relevant and useful (e.g. it’s needed for iPhone), but we’ll probably see more game programmers transitioning over to web technologies like Flash and JavaScript.
  • That’s one fun thing about the game industry though – there’s always something new coming at you, to keep things fresh.
What are the general application procedures for positions such as the one I will be seeking?
  • Get a degree.
  • If you can, get a programming internship. Try and closely match what you want to do for a living – e.g. working in C++ at a games company.
  • Write your resume, cover letter, and optionally create a website which shows demos of your work.
  • Email it in to companies.
  • If they are interested, you will then go through their interview process. This might include a phone interview, a written test, and an in-house interview.
What do you think is important to show in a resume for a position such as yours?
  • For a junior programmer position, I expect to see a degree, that you’ve been programming in C/C++, and then hopefully some evidence that you’re really good and committed.
  • It’s also nice to see some game-centric skills like doing GPU shader work, physics simulation, writing games, and making personal projects.
What advice do you have for me about preparing and interviewing successfully?
  • Code all the time. Become an awesome C/C++ programmer, and you can’t go far wrong.
  • If there’s an area you know you are weak in, or don’t understand, make a point of learning that area and becoming strong in it. Don’t just ‘work around’ your weaknesses. E.g. if you don’t understand C pointers – make it a point to get good at them.
  • If you graduate and don’t yet have a job lined up, don’t stop coding. Code more than ever. Otherwise you quickly forget things, and your chances of getting a job decline over time.
  • I have many other tips on my blog here (see the older posts with this tag first).
Bonus question: Have you or any of your coworkers thought about going indie?
  • Hah. I think we all do. Perhaps once a month :)
  • It’s a tough road though. No regular pay checks, no benefits, a lot of competition, and it can be harder than you might think to make a complete game and ship it.
  • It’s certainly possible, but I recommend getting a ‘proper job’ first to hone your skills and better appreciate the industry.

Tuesday, May 24, 2011

8 Hygiene Tips for Programmers


Being around programmers for a long time has shown me that some don’t smell so good.

Remember – by the time you can smell yourself, it’s already way too late for those around you.

I invite you to check your habits against my minimum hygiene requirements:
  • Shower daily. Use soap or body wash.
      • Make sure your feet, pits, groin and ass get the brunt of the soap offensive.
      • Wash your hair too. At least every other day.
  • Socks, Underpants and T-Shirt – Change daily. (And by change, I mean do not wear again until washed.)
  • Jeans and Sweater are a bit tricky, but change a bare minimum of once a week. Twice would be ideal, or three times if you're the queen of England.
  • Coats can need washing too sometimes. It really depends on your relationship with your coat. If it gets sweaty when you do, then eye it with suspicion and wash it from time to time.
  • If you don’t wear socks or change them daily, your shoes smell. If they smell, give them the Viking burial, buy some new ones and wear socks this time.
  • If your finger or toe nails get 2..3mm long, cut them.
  • Brush your teeth well in the morning and night. Use floss to avoid losing teeth. Brush your tongue too, as this reduces bad breath. If you like coffee, then may I recommend adding some breath mints to this.
  • Put deodorant on each morning. If this is new to you, go and buy a can of Axe (or Lynx for UK folks). How do you pick the right one? What if the one you get doesn’t smell good?
      • Remember that even the worst smelling can of Lynx smells ten times better than you do.
      • You can use the normal person approach of spraying each on a new body part, sniffing and choosing the right one. Though the reality is that this approach is frustrating and doesn’t work.
      • Instead either pick the left-most one, the one with the coolest name, the one with your favorite color, or buy one of each to save yourself from coming back (and also injecting some much needed variety into your life).
Bonus stylin’ tip – Hair styles:
  • Side partings don’t look good and never did. Your mum likes them, and that’s it.
  • If you’ve had the same hair style since you were 15, it’s time to review it.
  • Girls like pony tails and mullets. Oh wait, no, nobody likes them. Time to change.
  • If you are going bald, do not hide it, and get your hair cut short.
  • If you think your hairstyle may not be contemporary / cool:
      • Strike up a conversation with a female in the office who dresses fashionably.
      • Repeat after me “I’ve been thinking about changing how I get my hair cut. How do you think I should get it done?”.
      • And if that doesn’t work out, just sit down in the chair at Super Cuts or Fantastic Sam's and say that you want a new hair style that’s short, looks OK and requires zero maintenance. The hair dresser might as you a couple of questions, to which you answer “I have no idea. Just do what you think will look good.”. When they’re done, ask “So what do I ask for to get that hairstyle again?”, and give them a $10 tip because you feel giddy. (I say Super Cuts or Fantastic Sam's for American programmers – if not in America, just make sure your hairdresser is female or ‘rather flamboyant’)
There now. If you implement all of the above, you can hold your head and arms up high, with little fear of stinking up the place.

Wednesday, March 23, 2011

How to get a job in videogames

Occasionally someone will ask ‘how can I get a job in videogames?’ and not know what specific type of work is available. Here’s a list of the main jobs.
Programmer
Programmers write code (C/C++/Java/C# etc). To be a programmer you generally need to go to college and major in Software Engineering or a similar field. You should also program for fun in your spare time. Programmers tend to be good at math and physics.
If you’ve never programmed before, and wonder what it’s like, install Small Basic and work through the guide which comes with it. Don’t worry – it’s simple enough for kids, so an adult can do it with a little effort :)
Game companies have a large staff of programmers. The high technical barrier to entry means that there are fewer qualified applicants and higher resulting pay than some of the other jobs below.
The main reason I started this blog was to help programmers get into the game industry. See this tag for my tips – read the oldest posts first.
Designer
Designers use a level editor to build the levels of the game – placing monsters, ammo, and setting up ‘events’ which happen. They also design the game as a whole and work with the other departments to realize that vision.
I’ve written before about what a designer does and how to go about getting a position.
Artist
Artists make 2D art in Photoshop, and 3D models in Max or Maya. To be an artist, you have to be good at art, and have gone to art school. It’s possible to teach yourself how to use art packages, but art school will teach other skills such as composition which are also needed. When artists apply for jobs, then include a link to an online portfolio of their work. Here’s a random example I found online.
Game companies have a large staff of artists (depending on the type of game). So there are more ‘slots’ to apply for, but competition can be high as there are many aspiring artists.
Animator
Animators, similar to artists, work in Max or Maya. The create skeletons for characters (‘rigging’), and then animated them. Again, you need to go to art school to learn the skills involved. Animation used to be part of the artists job, but increasingly the jobs are specializing into two or more different roles.
Animators are usually in smaller number than the artists, and again, competition can be high.
Sound Designer
Sound designers place and configure sounds and music within the game. Sometimes this can include the original creation of the sounds, but often libraries of sounds are used, and music creation is outsourced to a third party.
Sound designers are quite few in number. It is a relatively new field, which was originally lumped in with the role of the designer. Having gone to college to study music or audio production would be useful.
Producer
A producer (job title my vary by company) ensures that the project is completed in a timely manner, and communicates with external companies (e.g. the publisher, IP license holder, music creation, language translation). The role is all about planning when things need to happen, communicating with people to make sure things will run smoothly, and then tracking progress to make sure things work out as planned.
The production staff tends to be fairly small. Majoring in business administration would be a good choice for this type of position, but it’s not a requirement.
Tester
Testing (A.K.A. Quality Assurance) consists of playing the game, to find bugs in it. The team then fix the bugs, and the testers check that the bug is gone.
Testing isn’t as much fun as it may sound. You play the same game for months or years, repeatedly completing it, playing the game on the different consoles, playing it in each different language etc. Plus it’s a full time job – you don’t just play when you want to.
As the job doesn’t require years of technical training, it can be easier to get a position, but the pay is not as good. This said, it is possible to work your way up through test into positions in design, production or IT, and can give you valuable experience in game development. So testing can be a good route into ‘better’ positions for people lacking qualifications and experience.
Other Supporting Positions
Depending on the size of the company, there are also a number of supporting roles which are less directly related to the game side of things. These positions include Administrative Assistant, Human Resources, Recruiting, Accounting, Sales and Marketing, I.T. / Tech Support. As game studios tend to be quite ‘young’ and playful in nature, and you get to support the team who are working on the game, working in these roles can still contain the ‘fun’ of working in games.

Thursday, November 25, 2010

3D Math Tutorials

VectorMathI teach a game programming class at the Art Institute of Los Angeles.

I recently did a review of 3D Vector Math with my class, and thought that the slides would be good to share online. Vector math is one of those essential skills for game programmers, and a common topic in interviews.

If you’re looking to practice your vector math and learn a few new applications, enjoy…

Note: I reserve the right to be inefficient and also down-right wrong. Feedback is welcome.

Tuesday, June 24, 2008

What is Cuda?

nvidia_geforce_300 Graphics cards used to have a very fixed purpose - just graphics, but over the last eight or so years they've become more and more programmable, to the point that they're now becoming quite a bit like regular CPU's.
I recently took a look into Cuda. It's a technology from nVidia which allows you to run C code on the GPU of the GeForce 8 series and above.
The cool thing is that the top end nVidia card currently has 240 processing units, and you can put a couple in one machine. So for perhaps around a couple of grand, you can get a 480 core PC - kinda. You don't have to spend that much though; at the time of writing, a 128 processor GeForce 9800 is $200, and a 32 processor 8800 is only $70.


So the promise is that you can write bits of C code, and then execute the same code many times in parallel on the graphics card, beating how long it would take on CPU.
The Cuda website lists almost a hundred projects which have used Cuda, with performance improvements ranging from 2x to 240x. The main reason for the big range is that Cuda's not good for everything. If the piece of code gets large, uses a lot of memory, contains branching and random/scattered memory access, then performance goes down. The highest performance is for short programs with little branching and little memory access.
Some problems are inherently more suited to Cuda-fying than others, but the programmer can still make a big difference by writing their code with the hardware in mind. Working at a low level like this, learning the hardware, and optimizing code to run as efficiently as possible on it, is very similar to the kind of skills used when coding for high performance on games systems, and in particular to PS3 Cell programming. So if you're looking to get into games, then impressing the programmers who interview you with your Cuda skills would be a great way to get your foot in the door!

Monday, June 02, 2008

Free Visual Studio Professional - for Students

Wow! Microsoft is giving away copies of Visual Studio Professional, Expression Studio, Windows Server Standard, XNA Studio 2.0 and more for free to students at certain universities.

Hmm, looks like I've found another use for the interns... :)

Monday, May 26, 2008

Game Development Studio Map

I've now opened up my map of game development studios so that it can be edited by anyone. Please be nice though :)

Is your studio there? If not, you can add it, or add a post and I'll add it for you.



View Larger Map

Saturday, May 24, 2008

Game Programming Books for Beginners

There are lots of books on game programming. How do you find an appropriate one for an absolute beginner?
Pick a Language
First of all, you need to understand that there are several many different programming languages. You need to pick a programming language first, and then pick a book which focuses on it. The language will either be in the title of the book, or will be mentioned in the blurb on the back. So which language should you pick?
  • C / C++As I've said in a previous article, if you're looking to get a job in console game development, then you should focus on 'C++'. As programming languages go, it can be pretty tricky for beginners. If you've done some programming before, or are looking at applying for a games job in a few years, then try C++.
  • C#C# is a relatively new language which Microsoft created. It's similar to C++ in how it looks, but it's quite a bit simpler to use. If C++ sounds a bit daunting, and you'd like to see your game working sooner, I'd start with C#. After you're comfortable with C#, you can come back to C++ later.
  • JavaJava is somewhat similar to C# from a language perspective. Some types of commercial games (e.g. cell phone) can be written in Java. I'm generally not very familiar with it though, and tend to recommend C# over it if you're thinking of getting into console development.
  • Basic
    There are many different types of Basic. Basic is generally seen as the easiest type of language to get started with, though personally I think that it's not going to be significantly easier than C#, and C# is going to get you closer to C++. If you're just looking to have fun though, and take your first steps in programming, there's nothing wrong with Basic. I first learned to program on Basic (on the ZX Spectrum), and it kept me busy coding for years.


Publishing DateThe next thing to look for is how old the book is. New versions of programming languages, tools, and libraries (don't worry if you don't know what I mean) come out all the time, and it's best to start by learning with the latest stuff. Aim to find a book that's been updated in the last five years.
Skill LevelFinally you need to pick the skill level. It's safest to aim low if you're just getting started. I recommend seeing if the index for the first couple of chapters has sections for things like 'variables', 'the "if" statement', 'for loops, while loops', and perhaps a little later 'arrays'. The words might be slightly different. Looking at the index and reading the blurb on the back should give you an idea of whether the book is for you.
Borrow or Buy?Programming books can be pricey. I recommend getting started by using library books or books available for free online. Then if you like the book, and feel like you want to keep on coding, you can buy it later.
Google has many books online. It might not be the best way to read a book if you're programming, but it's certainly good for seeing if a book is for you.
Is it any good?Read the user reviews for the book on Amazon.com. Remember that skill level might come into play - someone might say a book is bad because it was too simple, but that might be just what you're after.
"CD Included"
These books will usually come with a CD/DVD which contains 'all you need to get started'. It's fine to use the contents of the disk, but if you get the book without the disk, then note that the tools on the disk are usually freely available online.
Example Books
I did a quick search for example books in each category. The links to most of the books show the full contents of the book.
Good luck getting started!

Thursday, April 24, 2008

Dr Dobbs Game Challenge - Win Cash!


Dr Dobbs Magazine has teamed up with Microsoft for a game programming competition. You modify a game they give you (using a trial version of Visual Studio 2008), and stand a chance of winning part of a $10,000 cash prize pool.

Even if you don't win, this kind of stuff is great on your resume and good for your brain. It shows that you're eager and competent, and gives you a demo you can show to people.

It's likely C# based, which isn't what I'd generally recommend focusing on, but it's a useful language to know.

Wednesday, November 21, 2007

Heavy Iron Programming Challenge

We’ve added a programming challenge to the Heavy Iron site. People wanting to apply for a programming position can either send in their resume as usual, or have a go at our programming challenge. Doing the challenge is a good way of showing off your coding skills, and it’s also fun. (Well, I find it fun:)

The challenge takes the form of a C++ program we’ve written, which isn’t working as well as it could. It’s quite fun and graphical in nature.

To try the challenge, go to the Heavy Iron site, click ‘Now Hiring’ on the main page, then click on ‘Programming’ on the right hand side and follow the instructions.

Monday, October 08, 2007

Intel Threading Challenge

Intel are running a programming challenge based around the area of multi-threading. They pose a programming problem, and you submit code which solves the problem using multi-threading.
Winners of the rounds get cash, and the overall winner gets an Apple laptop.

It's worth having a go, because:
  • Often, not many people apply because it requires effort. So your chances of winning are reasonable.
  • You'll likely learn something, or at least dust off your skills.
  • It's good to mention at interview, and gives you some more demo code.
  • Being able to think of problems in terms of multiple threads/cores is becoming highly important, and a desired skill.

Saturday, April 28, 2007

Questions from a game programming student

A student at Full Sail recently mailed me some questions, so I thought I’d answer them as a blog post.

What is an average day in your life working at Heavy Iron Studios or just in the game industry?
I’ll answer this in a future post some time… Basically, for a programmer, it’s a lot of sitting and coding, but we also talk and joke around a bit. I like it…

Can you describe the type of people that you wish to work with and what personality traits make these people stand out to you?
The key attributes we look for are an ability to code C/C++, good problem solving ability, and a reasonable level of education / literacy.
On the personality front, we like to see people who are going to fit in. At Heavy Iron we’ve got quite a relaxed/friendly atmosphere, and the programmers are all helpful to each other. Working with people who think they’re the best programmer on the planet, or who don’t get along well with others isn’t something most people want. It’s best to be humble and friendly – if you are smarter than others, then you can help them improve, and if you’re not, then you’re open enough to learn.

How do you feel about accelerated technical education schools like mine?
Like any school, it really comes down to the individual. Going to Full Sail should allow you to put ‘Look - I’m educated’ on your resume, which will get your foot in the door. After that it’s down to the interview process to show you’ve got the skills. If you work hard on your course and do extra coding in your spare time for fun, then you’ve got as good a chance as anyone.

Do feel more people are hired for a specific area of expertise, or a general knowledge of all aspects in game programming?
Most people we hire are generalists. Our programmers tend to touch lots of areas of the game code, engine and tools, and so we want people who can quickly pick up anything. This doesn’t mean that we’d not want someone with a speciality however.
I’d say that to be a specialist in something you’d at least want one or two published commercial games where you worked on a specific feature from the ground up. Ideally you’d have written the same type of system more than once, from the ground up. That way you will have had chance to try different approaches to the solution.
For someone in your situation, I recommend not attempting to specialise too much to early on. Try touching everything once – rendering, sound, physics, AI, memory allocation, etc – and then find what you like. It’ll make you a better specialist if you’re a generalist first.

How can I stand out above all the other programmers out there?
If you could regurgitate live frogs, that would do it for me…
Just be as good as you can at what you do. Write games and demos in your spare time – and don’t let anything stop you (I’m waiting for my friend to work on it with me – I’m coming up with the worlds best idea – I’m going to draw the graphics first etc.). If your resume has a link to your site, and it shows things like simple games, use of physics API’s, graphics demos, shaders, then I think you should find it hard to not get a job. If you’ve not got those skills or demos, then get cracking – pick what interests you and start doing it. If you graduate and can’t get a job, then give yourself the 40 hour per week job of creating those demos. Your skills will improve and you’ll stand out!

What is your favorite game?
That’s tough. I’ll list a few, going backward through time.
- Resident Evil 4 on the Gamecube was absolutely fantastic, and it’s $20 new. Bargain!
- Command and Conquer and Total Annihilation were good.
- Captive for the Atari ST was good. (Think dungeon master but with Robots)
- ‘Elite’ was a space trading game from the 8 bit days. This was a great game. I’d say it’s the reason why about half of the game programmers in England got inspired to make games. (OK, I might be going a bit far, but I’m not alone.)
- Also, I think my favourite Heavy Iron game was ‘SpongeBob SquarePants: The Movie’. It’s a kids game, but it was a lot of fun to make and play.

Is there any other advice you can offer to an aspiring game developer?
Just the tips I’ve been posting. Oh, and I’ve said it before but – apply directly to studios instead of using recruiters. It saves the company money, which they like, and is also more personal.

Tuesday, April 10, 2007

Getting a game programming job - What new programmers work on

A common question I get asked, is what do new programmers (or interns) work on? It varies between companies, projects and the individual, but generally it tends to include things like the following:

  • Firefighting. Coping with the constant flow of random issues that come up. This is good for learning all the different parts of the code base.
  • User interface for the front end, in-game pause menu, and the in game HUD.
  • Fixing ‘TRC’ issues. Things like making sure that the game does the right thing when the controller is pulled out.
  • Creating localized versions of the game.
  • Supporting internal tools, such as a level editor.
  • Working on graphical effects and sound effects.
  • Teaming up with someone with more experience on some part of the game, like the player code or enemies, and helping out where needed.

Tuesday, February 27, 2007

Getting a game programming job - Keep on coding after university

I’ve spoken before about the huge benefit of working on demos in your spare time. I’m going to say the same thing again in a different way in an attempt to spur a few more people into action.

I interview quite a few people who’ve been to university and done the courses, and quite likely were good at coding their assigned projects. However once university finishes they stop coding, and start looking for work. What happens is that if you don’t land a job quickly, your skills start to rust over. You can’t remember where the asterisks go, how big the data types are, the standard library functions etc. Sure, if you had google with you, you could work it out pretty quick, but that’s a weak defence in an interview. The longer you go without coding, the harder it becomes to make it past the phone interview.

Here’s a different picture. You have a phone interview or programming test at 2pm, and you just spent the last three weeks working on a 3D game demo. Now you’ll likely remember lots of stuff, you’ll be in a coding frame of mind, and you might even get a demo to show them.

Sounds obvious, but you’d be surprised how many people fall into this trap.

Saturday, February 17, 2007

Friday, December 01, 2006

How to get a job as a Game Designer

Being a game designer can be a very creative pursuit. Spending time thinking about how to engage the player, building it, and then getting feedback from players is great fun.

So what’s a good way of going about getting a job as a games designer?

  • There’s no standard academic route in, like programming and art, though a degree in something wouldn’t hurt.
  • One, not uncommon, route is to work as a games tester, and to work on getting promoted up. If you show an interest, someone will hopefully get you set up with the tools, so you can learn them and show off what you can do.
  • Similar to my recommendations for programmers, doing demos is a great way in. Download free editors for PC games. Design and build your level. Publish it on the internet for others to play, and then check out the feedback.
  • From your demo work you should be able to show paper maps, screen shots of the editor and game, and links to your published level and its feedback.
  • You can put all your demo work on a website to show off your work. Also, putting it on a website will demonstrate important skills of technical literacy and good presentation.
  • Doing several demos, to cover different game genres, is a good idea.
  • Play lots of games, and think analytically about them. Why are they fun? How could they be better? How do they handle a range of skill levels? What editor tools would have been needed to create the game.
  • Play lots of different games. The more the better. Don’t just play good games, play bad ones, and play random ones so you can make your own mind up without the suggestions of others.
  • There are also plenty of books on game design now. You may benefit from reading a good book on the subject.

I can’t guarantee it, but if you do all the above with some dedication, then you shouldn’t have too much difficulty getting your foot in the door. In fact, some companies who release editors will actively recruit from the pool of hobbyists who are already building levels with their software.

Friday, November 24, 2006

What's a game designer?

I’ve spoken quite a bit on how to get a job as a games programmer. I’d also like to mention the position of games designer. The role of designers varies greatly from company to company. Some companies have no designers at all, some will have a couple, and some can have more designers than programmers. Designers spend most of their time building levels of a game, and also working on the games’ design.

Game designers spend most of their days building levels in a level editor. Editors normally come in one of three flavors, custom level editor, in-game editor, or an augmented 3D package (e.g. Maya with some custom bits which are specific to the game). Designers tend to need to work very closely with the art, animation and programming departments to ensure that the level is built correctly, and that all the required pieces get made. Also, depending on what the programmers have provided, designers may configure game logic using either a simple scripting language, or some more visual way of configuring logic.

Designers focus on things like:

  • Making the experience fun.
  • Making the game accessible to novice and expert players.
  • Building in ‘replayability’ so that people can play the game for a good duration.
  • Gradually ramping the difficulty of the game across the levels.
  • Perhaps integrating the gameplay with some kind of running plot.
  • Ensuring all the available systems get used in the game, so that no effort is wasted.
  • Helping to get levels to fit into memory or performance constraints.
  • Building main levels, but also building other things like mini-games, and bosses.
  • Depending on the company, the designers may also do other things like design and implement the functionality of the menu screens, or writing the dialogue scripts for the game.

Next time: How to become one…

Thursday, November 16, 2006

Getting a job, and how much it pays...

There are a couple of good articles on the GameCareerGuide website at the moment. Steven Messinger from Rockstar writes on how to get into programming games, and there's an article on the results of this years Game Developer salary survey.

Thursday, October 26, 2006

Getting a games programming job - Tip 10 - More interview question topics

When I recently posted about finding programming interview questions online, I neglected to mention a couple of other areas that games companies like to ask about.
  • 3D Math is popular. Here's a bit of a sample of it I found on a quick search.
  • 3D Rendering. There's a long article here which takes you through most of the important concepts.
  • General Math is pretty important. I'll not give a link to it, it's a bit too big.
One more note is that there are quite a few sites which list interview questions which Microsoft has asked in the past. A quick search will show up sites of questions like this.