Top Game Development Interview Questions
1. Why is it important to have more than one person creating a game?
Every game design needs play testing by many different players. Usually each player tries a different strategy, and so the designer can see which strategies pay off best. A good game design permits many different strategies, balanced so they offer equal chances of success.
2. How to program to make video games?
There are software applications that will allow you to make fully functional video games without any programming. But, keep in mind if you want to be really good you need to learn how to program.
3. How to be an Artist to design video games?
There is plenty of prepackaged images and art that you can use either for free or by purchasing that you can use in your video games. But if you want to get really good then you have to put in the time to develop your artistic skills.
4. Is game development Subcontracted?
I was having a conversation with someone who believed that components of a games code where subcontracted out to programmers in different countries where it would be cheaper, then assembled by the local company. I understand that people often use pre-built engines but I would think that making the actual game would require people to work closely in the same studio.
5. How do games make money? What models do they use?
The main models I can think of are:
• Charge per copy – the traditional “software licensing” model, you charge your customers a retail price to “buy” a copy of the software and the subsequent right to install or play it. This is still a dominant model for software of all kinds including PC, console and mobile device games, even after the introduction of other feasible models. Games of all genres from FPS to MMO to arcade and puzzle games use this model to great effect, but it’s probably the least accessible method to the average one-man dev house.
• Monthly subscription – The next most popular licensing model, regardless of what the software initially costs the user, they sign up for access to dynamic content on a monthly basis. This can be combined with an initial software price. MMOs are the foremost genre that benefits from this and there are a lot of examples; however, there are a lot of MMOs that do NOT charge a monthly subscription fee. Guild Wars is the one that comes to mind, because I played it specifically because it wasn’t WoW.
• Microtransactions – This is a relatively new model, first seen in MMOs and then spread to “social apps” a la Facebook. The idea is that the program may be free to install, free to play, but to get the “most” out of your game experience (or to progress quickly within the game) you can spend real money to buy in-game objects. The first I heard of this kind of thing, it was underground; Diablo 2 and WoW players would “grind” through dungeons constantly, acquiring rare items, that they’d then sell on eBay for real money with the trade consummated in-game. Blizzard cracks down on trades for real money between players pretty hard, but other game devs have embraced the concept for their own gain.
Entropia allows users to deposit and withdraw money from the virtual world, and people actually make a living in the real world by running in-game businesses. Even Blizzard allows you to buy in-game gold with real money (but you can’t “cash out” like in Entropia, and there are certain things that you’d be hard-pressed to spend any amount of gold to buy). Similarly, Facebook apps are a HUGE cash cow, with companies like Zynga and Maxis offering titles like Farmville and Sims Social where normal play is free, but you can pay for virtual objects to spruce up your little corner of the game (often, paying real money is the only way to acquire certain highly-desirable items).
• Pay-per-play – Very point-of-sale-based gaming. Your customers pay you for a finite unit of play. Obviously arcade games are the first thing that comes to mind, but the model generally holds for online casinos, video poker machines, etc. However those are the main genres of games that use this model effectively; most users would balk at a game they download to their phone or XBox that charges their account based on the number of times they play it. However, pay-per-use is a valid model for certain other mobile device apps, such as for navigation, song identification, etc etc.
• Ad-based – A lot of mobile device games are monetized using this model. Free to install, free to play, but the game display features product placement for which advertisers pay the rights holders. This can be straight up ad displays along the top or bottom of the screen, or it can be more subtly integrated into the game; an MMO based in the present-day or near-future might put real ads on “billboards” and charge advertisers for the online billboard space much like a real-world billboard owner would do. Basically any game with “real estate” that can be devoted to ads without disrupting gameplay would benefit from it.
It’s really taken off with mobile devices, as previously mentioned, because you as a game dev can put your work in the app store free for the downloading, but still make money. Certain genres like FPSes are less effective with an in-game ad model, as any vertical surface on which to plaster an add.
• Provider billing – You can make money from a game by selling it not to an end user, but to a provider who will then offer it to the end user using their own model (usually pay-per-play, but they may absorb the cost). Usually this is in the form of an arcade game that you sell to a business owner, who will drop it into their store as a change-catcher. However, the model may also work as a “drop-in” to an online website (as an embedded object, most likely a very simple puzzle game), by charging people who host game servers (beyond the cost of a license for the game server) or as a “benny” for subscribed users of some other service (sign up for Dish Network and get unlimited access to our MMO from your TV or a PC with an Internet connection).
This would generally work for dynamic-content games like MMOs, and also for very simple “applets” that web portal companies can drop into their site as an amusement for a nominal per-play fee. However, there has also been money made in charging by the hour for access to retail games, with multiplayer environments hosted on private servers.
These are the models most suited to game development that allow you to profit from the game itself.
However, there are other ways to profit from the IP of that game:
• Merchandising – Doom, Quake, Mario, Zelda, Donkey Kong, Sonic, Sephiroth, even the Angry Birds are available on T-shirts, action figures, plushies, and in myriad other forms besides. Regardless of who makes the product, the owner of the IP is compensated for every item made in which the IP has been used.
• Code Licensing – Valve Ltd got its start by buying rights to use the Quake II game engine from Id Software, then programming Half-Life around it. Valve now has their own engine (with the embedded Havoc physics engine licensed from another dev house) and are where Id was a decade ago, licensing use of the Source engine to developers who’ve used it for everything from other FPSes to arcade games to racing simulations. This is the primary way to monetize computer code other than licensing its end-use as a game program.
• Sponsorships – Sponsored play events such as mass demos and tournaments are yet another way that money can be made from a game. The IP holders of the game(s) played during the event are, of course, entitled to a substantial cut of sponsor dollars. Usually, this is secondary to selling the game itself; the event is either a promo for the game prior to or at its release, or an incentive for people to buy and play the game (to get good so they can win the tourney). The majority of money made by the IP holder is thus made before or after such an event.
6. Is Java viable for serious game development?
Yes it is, check this list for a proof. Those are some games made with Java using The Lightweight Java Game Library (LWJGL). It is a low-level framework, which provides OpenGL for high quality graphics and OpenAL for sounds. It also provides input API. With these you can quite easily get started to serious game development in Java.
I am currently writing my second 3D game as a hobby project in Java, and I just love it. In the past I used to write my games with C++, but after switching to Java there is no going back. Supporting multiple operating systems with Java can be very easy, for example my previous Java game, which I developed in Windows for a year, worked in Linux right away and in OS X with only one bug without any need to compile anything on those platforms.
On the other hand, with Java you have couple of problems.
1. Garbage collector. As others have stated, non-deterministic memory management is a problem, and you need to code that in mind.
2. Lack of 3rd party libraries. Most of the available libraries do not support Java. On the other hand you always have the option to call these native libraries from Java also, but it’s more work to do so. There are also Java ports or ready-made wrappers available for popular libraries, for example I’m using JBullet – Java port of Bullet Physics Library. On the other hand Java has a huge class library built-in, which reduces the need for third party libraries that are not game related. The lack of libraries has not been a problem for me, but I can imagine that it can be for others.
3. Java is not supported by popular game consoles and there is no easy switch to those from Java as far as I know. On the other hand Android, which is a popular mobile platform, uses some form of Java. This is an option also, but don’t except the same Java code to work both on a PC and Android device.
4. Smaller community. Most game programmers use C++ and in my experience often dislike Java. Don’t expect to get as much help from others. Don’t expect to get a job in game development without C++ skills.
7. Is there a portal dedicated to HTML5 games?
Just to get something straight; by “portal”, I mean a website that frequently publishes a certain type of games, has a blog, some articles, maybe some tutorials and so on. All of these things are not required (except the game publishing part, of course), for example, I consider Miniclip to be a flash game portal. The reason for defining this term is because I’m not sure if other people use it in this context.
I recently (less than a year ago) got into HTML5 game development, nothing serious, just my own small projects that I didn’t really show to a lot of people, and that certainly didn’t end up somewhere on the web (although, I am planning to make a website for my next game). I am interested in the existence of an online portal where indie devs (or non-indie ones, doesn’t really matter that much) can publish their own games, sort of like “by devs for devs”, also a place where you can find some simple tutorials on basic HTML5 game development and so on…
I doubt something like this exists for several reasons:
1. You can’t really commercialize an HTML5 game without a strong server-side and microtransactions
2. The code can be easily copied
3. HTML5 is simply new, and things need time to get their own portals somewhere…
8. What is a “Gameplay Programmer”?
When companies talk about hiring a gameplay programmer, what they are talking about is a programmer who will be responsible for code that directly touches on the game experience. That is, the programmer will be responsible for actually constructing the games, rather than engine or larger game systems.
But beyond that, things vary a lot:
Some companies expect gameplay programmers to implement the user interface. Some don’t. Some companies expect them to implement AI code, some don’t. Some expect them to implement audio code, some don’t. To be honest, the “gameplay” in gameplay programmer is an industry shorthand for “everything that we haven’t hired a specialist to do”. So these programmers need to be very versatile, and need to be able to learn new disciplines quickly.
I spent almost fifteen years being a gameplay programmer in the commercial industry, across five different companies.
My experience was that in some companies, a gameplay programmer is considered to be a junior or entry-level position; programmers who are only working on an individual game, after all, don’t need to be as sophisticated as those who are working on systems that need to support lots of different games simultaneously, the way that engine programmers need to. In this sort of company, if a gameplay programmer does really well, he might be promoted into the engine team someday, if he can prove his worth. Or he might become a specialist, if he shows an aptitude for a particular area.
In other companies, a gameplay programmer is considered to be a medium-level position; programmers working on an individual game need to have some useful experience and be dependable. Inexperienced programmers might be given undesirable jobs to cut their teeth on (data pipelines, tools, etc), and eventually be allowed to move up into a “gameplay programmer” job. In this sort of system, a gameplay programmer who continues to do quite well might move up into a project leadership role, or else onto the engine team.
In still other companies, a gameplay programmer is considered to be a senior position, and to be a half-design position as well; these programmers are expected to be excellent, proven programmers, but also to have strong design sensibilities and qualifications, since they’re directly touching the code that most strongly affects the player’s experience with the game. In this sort of system, a really good gameplay programmer will likely remain a gameplay programmer forever — this is considered to be the most valuable position which he can fill.
As a general rule of thumb, the better the company’s games, the more senior a position they considergameplay programmer to be (and therefore, the more difficult it will be to actually land such a job).
9. What is the difference between a game director and game producer?
It really varies from shop to shop and even project to project as shops refine their own particular job descriptions and organization.
In general if there is a game director listed this position would be involved with creative decisions and communicating them to the team while the game producer would be more involved with schedule and business decisions and dealing with investors / publishers.
In some shops what they call a producer is also driving creative direction and works close with the discipline leads on creative decisions much like a game director. In other shops the game design lead is effectively the game director. Sometimes the design lead and producer attempt to split the duties of a game director, often with mixed results.
10. Is there a centralized database of game names and IDs?
Given two games with very similar names:
Alien Shooter II – Vengeance
Alien Shooter: Vengeance
Is there some place that I can go to get an ID or the ‘canonical’ name for these games? I suspect that they are the same game, but it’s very hard to say for certain.
11. Do Playfish and Zynga use Flash game engines?
Briefly, yes. Zynga’s Café World and PlayFish’s Restaurant City uses Away3D.
I think developers might use more of 3d engines because 3d is not everyone’s cup of tea – they can just focus on implementing game logic and mechanics instead of meddling with math. However they would shy away from game engines like Flixel, for reasons that Nick Wiggill has mentioned. (eg. risk of middleware)
12. What’s the URL of the video showing an EA representative talking about game programming?
The video shows an EA representative talking about how a programmer can get into the industry by showing some demos (in fact, he shows a physics demo presented by a candidate who wanted a job at EA). The demo shown depicts kind of a ragtime doll made of yellow cobblestones.
I don’t remember if I watched on YouTube or Vimeo and I frankly cannot find it after a few hours of work. I just remember the fact that it was taken at a GDC or a SIGGRAPH convention.
Thanks in advance. I’m really frustrated because I’d love to show this video to some fellow developers (coders).
13. How can I measure the “creative/entertainment value” of video-game requirements?
The only real way we have to test such things is with, well, testing. Professional game developers will tell you all the time that the single most effective way to know if certain gameplay is working and fun is to give it to players and observe.
Indeed, one of the reasons that achievements are everywhere these days in games is because they give invaluable information to the developer. If you want to know where players stopped playing your game, make an achievement for completing each level. If you want to know how many players aren’t playing a certain race in Civilization, look at how many people got the achievement for playing that race. And so on.
14. What popular/famous games are written in C?
Doom, Quake, pretty much all id games up until id Tech 4.
15.What is the average job length in the game industry?
Since the industry is project based job length tends to be directly associated with product cycles.
The is often the result of the post ship layoff. Companies tend to dump staff once a project ships since they don’t need a full production team for pre-production on the next project. Now the nicer companies tend to use temporary contract hires for short term production staffing needs. This lets the employee know that they likely don’t have a paycheck when the project ends. However the big publishers regularly cut even full time staff once the xmas games are sent to manufacturing.
The other piece is that when finishing up a title employees are more likely to look around at other options. If you’ve just shipped your third football title and are burned out on the genre you tend to wait until the game is done and then find another job somewhere else.
While there are some devs that have spent an entire career at a single company, what is far more common is finishing 1-2 games at a developer and then moving off to another one.
I am a 2D Game Programmer.Some programming languages which I am good at are C,Java ,C#. I also know Actionscript 2.0,3.0 and some javascript. I’m interested in learning 3D Game programming. So far from the research I have accumulated by googling and reading different game development forums and articles. I’ve noticed that most programmers tend to prefer C++.Also in an online game programming teaching course I noticed they prefer to teach C++ and Visual C++ as the starting course. The reason I am asking this question since I would like to know the “strength” difference of C++, C# and Java for 3d game programming.
16.Is C++ “still” preferred in game development?
Yes, C++ is the language used most often (though some people do still use C).
There are numerous reasons for this. Sheer momentum is one – it’s simply the language that has been used for years, a lot of tech already exists and people are comfortable with it, so changing is not going to happen overnight.
Then there is the issue of control. Game developers are control freaks, and we like to know everything that is going on in our code. C++ gives us that control, C# and Java (to pick on the two alternatives you mention) take control away. In many ways that might be a good thing, but game coders don’t like it ?
Finally there’s the simple practical issue that the SDKs for various platforms are very C++ centric. Using another language inevitably involves writing wrappers, cross-compiling down to VMs, and possibly (in the case of some console development) it’s not allowed by the platform holder (they really don’t like people doing JIT compiling, for a start).
17.What is “pixel art”?
As a quick search will tell you, pixel art is digital artwork that is created by drawing individual pixels in an image rather than say, rendering a 3D model. It commonly refers to clean, cartoonish graphics reminiscent of old 2D video games.
18. Any good web frameworks for asynchronous multiplayer games?
Service Stack for services and serves up XML, JSON etc. Amazing in general for setting up the services. Also cross platform.
As far as ‘DB communication’, if you are able to use Windows Server for hosting, Entity Framework works well, however is code gen but very easy to use and code against.
There might be alternatives like DbLinq (Linq To SQL for Mono), but haven’t tried it so not sure on how easy it is to use.
Obviously, this is only really an option if you don’t mind coding all this in C# and doesn’t take care of all the database design you’ll have to do, but that kinda goes with game logic.