Advertisement

From Business Apps to Games...?

Started by September 17, 2004 05:18 PM
9 comments, last by RobertCostello 20 years, 2 months ago
Hi there. I'm new to the game writing community with some (probably) embarrassing, and ask-ed a million-times-before-questions. Here goes, I've been writing various types of niche commercial software since graduating ( manufacturing, finance, etc. ) from university 12 years ago, and have become profoundly bored with it all! It was suggested to me that I look at switching to a career writing games. This is appealing, but I'm concerned it is a little bit of pie-in-the-sky: So I'm wondering what kind of programming roles are typical in a games company, and which might be most suited to my skills. From what I've seen these jobs appear interesting to me. If there is common theme that attracts me to these positions, its the algorithmic work where objectives are tempered by resources like time, memory etc.: 1. Game AI. My guess is that these kinds of roles are reserved for either someone who has past experience, or someone who has specifically studied this field. My gut feeling tells me that this is something at which I could do well, as I have variously applied shortest path and depth first searches in my work. Though we never called this AI, it appears have at least something in common with game AI. 2. Game Physics. Like Game AI, my expectation is that this sort of job is likewise reserved for experienced or specifically trained individuals. Physics isn't something I've touched in some time, and reading some of the posts in the physics forum is daunting -- everyone appears to be an expert. I can hardly follow the details. Still I feel I have pretty solid credentials to be useful here. My university education is in math, and I studied differential equations for a couple of years. 3. Graphics. It's not easy for me to imagine all the details here, but I can see that efficient data structure and selection are probably pretty important. For example: there is a tonne of graphics data, some of it needs to be rendered. If I wanted to pursue this seriously, is there any advice? From my brief research, i've seen that make demos illustrating a certain skill are valuable. Is there consensus on this? I'm gratefully to anyone who's bothered to read this, and appreciate any feedback. Thanks, from Vancouver. jbc
Quote: Original post by jbc2522
Hi there.

I'm new to the game writing community with some (probably) embarrassing, and ask-ed a million-times-before-questions. Here goes,

I've been writing various types of niche commercial software since graduating ( manufacturing, finance, etc. ) from university 12 years ago, and have become profoundly bored with it all!

It was suggested to me that I look at switching to a career writing games. This is appealing, but I'm concerned it is a little bit of pie-in-the-sky: So I'm wondering what kind of programming roles are typical in a games company, and which might be most suited to my skills.

From what I've seen these jobs appear interesting to me. If there is common theme that attracts me to these positions, its the algorithmic work where objectives are tempered by resources like time, memory etc.:


I think you'll find game developing is of a very different nature to business application development considering both fall under the title 'software development'. The attitudes of game developers and the environment they work in isn't exactly the same as other programmers.

You'll also find that it helps to have experience in all the areas of programming that make up a game, but ensure you excel in one of them. Being a jack of all trades is still ok.

Quote: Original post by jbc2522
If I wanted to pursue this seriously, is there any advice? From my brief research, i've seen that make demos illustrating a certain skill are valuable. Is there consensus on this?


If it sounds like Game AI is your thing then make a demo expressing your skill in AI. However i should also point out that game studios don't want someone who can make a demo, anyone can do that, they want games. Complete games.

To be taken seriously and have any hope of entering the game industry your going to need to complete at least one game. Experience in the business field for 12 years will also help a lot, but dont count on that being your way in. You could also get lucky and be accepted into the first studio your approach.

Just remember, a finished game is worth more than anything no matter how simple it is.

Do not remove a fly from your friend's forehead with a hatchet.Chinese Proverb
Advertisement
Game development is most decidedly not pie-in-the-sky, especially if you want to make a career out of it; it is generally harder, though. The project requirements change more frequently, schedules are unreliable, resources are limited, and because you're not making software to fit a specific demand, it's that much harder to be a commercial success.

That said, there are plenty of people who do it anyway. And it can be a lot of fun! [smile] Moving into it from professional development may have it seem horribly disorganised and immature, but it's getting better. Software engineering techniques and professional practices are slowly but surely becoming the norm.

With regards to programming roles: what you've got there certainly covers some roles within a team, but not all.

Concrete example. I'm currently working at on a title for PS2 and XBox. On the coding team, there's the lead coder (who doubles as our PS2 specialist), an AI coder, networking coder (XBox Live and the equivalent PS2 stuff), an XBox specialist, an 'everything else' guy, and me (currently I'd be covered by 'Graphics programmer'). Admittedly we're backed up by a team of people building common technology shared across the company, so what seems like six people is actually more like ten... but that's what you might encounter on a normal console game. (Of course, our game is amazingly super-normal and cool, buy it buy it, yadda yadda... [wink])

There are many systems that go into a game, and there are further programming roles that don't even see you working on the game itself (tools/pipeline coding).

With regards to what's important for each field, you've named a few algorithms and theory areas that are certainly important, but what's more important than the tecniques and algorithms is knowing how best to apply those techinques and algorithms to solve the problem at hand. View A* pathfinding, state machines, and all these other methods, as tools in a toolbox; useless without a good, experienced workman to use them correctly.
Thanks to both for your replies. It is invaluable to receive advice from people who are actually in the industry. One thing is clear to me, it will require some careful planning on my part before I attempt a move.

The idea that game industry development is different from 'business applications' makes sense in a technical sense, but I'm intrigued how how it might differ procedurally.

Anyway, thanks again.

Cheers!
jbc.
Having moved from business apps, to tool chains, to OS-es, to games, I can say that games most closely resemble OS work. The people who tend to do really well with hard-core low-level game work are the same kind of people I'd probably trust to write a sound card driver for me :-)

Regarding AI, while search is one part of the task, other parts include state machines, geometric reasoning, performance trade-offs ("knowing what things cost"), and that all-elusive black art of "making the AI fun to play against."

For physics, a very careful attention to the least significant bit, and a knack for coming up with corner test cases and throwing them at your code are pre-requisites. Also, tensor calculus and general multi-dimensional geometry and geometric algebra will help hugely. (Physics is really "collision detection" and "simulation" where the former is harder to get 100% right)

For graphics, there are low-level jobs, and high-level jobs.

For low-level, a complete understanding of the hardware used in various PCs sold from 5 years ago until today is necessary, in addition to understanding of all the popular graphics card families (Intel Extreme, GeForce family, GeForce 3 family, GeForce FX family, Radeon 7 family, Radeon 8 family and Radeon 9/X family would do nicely for starters, that's at least 80% of the PC grahpics market). Knowing the actual APIs help hugely,a s you won't be fumbling about when trying to come up with a good strategy to push your data at the card at the highest possible speed. 3D geometric algebra also helps, although it's not as hard-core as collision detection and simulation.

For high-level graphics, you really need an artistic bent, in addition to understanding of what the hardware can do (but not at the detail level of the low-level guy). API knowledge of at least one API helps a lot. If you've used layers and the Calculate... menu item in Photoshop, and if you've used 3dsMax, Maya, or a similar modeler, and understand how they work, you might make a good high-level graphics guy. These guys also work on tools for artists, so communication skills with non-technical people is useful.

There's also networking, gameplay and audio. Networking requires specific networking knowledge (well, duh!), gameplay is similar to simulation and AI, but more high-level and strong emphasis on "making fun things happen," and audio needs an artistic bent in addition to understanding of audio in computers (which is easier than graphics, if you have a musical/artistic bent).


Let me ask you something: do you play games? A lot? Do you enjoy them, try to get into them, have an almost bone deep NEED to create them? If not, game programming might not be your calling -- try something otherwise low-level, such as OS work, perhaps.
enum Bool { True, False, FileNotFound };
Quote: Original post by hplus0603
Let me ask you something: do you play games? A lot? Do you enjoy them, try to get into them, have an almost bone deep NEED to create them? If not, game programming might not be your calling -- try something otherwise low-level, such as OS work, perhaps.


The short answer is yes, though for the past 14 months, I've been spending all my free time playing and inventing (real-life) games with/for my 1 year old! Prior to that a I played intensely, but only periodically. As I haven't actually made an electronic game since I was in school, (and therefore had a tonne of free time), I can't say I have a 'bone deep need', no! But the field nevertheless sounds appealing to me, becasue it's challenging, and, the product is satisfying. What I want to establish (for myself) is can I reasonably get a job in gaming that I'll enjoy? After reading the posts and some of the articles here (viz. _How to get a job in the game industry_, etc.) I'm feeling rather more positve that I did two days ago.

Thanks for your detailed insights.

jbc.
Advertisement
I switched to game programming after 20 years of unrelated programming experience. It can be done. If it were me I'd look at starting with tool development. It isn't glamorous, but it is the area where your previous skills can be used immediately while ramping up to the new skills.
You`re saying that you have been a programmer for about 12 years or so. Have you studied the salaries level already ? Games Programming is known for much lower salaries than DataBase Programming because people go there because they love it.
Are you sure you could afford the drop in salary/living standard ? And now that you have a baby (Congratulations on that !), it might be too risky, but if your wife has a good-paying job, it might work.
After 12 years of working I`d assume you have plenty of debts on your neck (mortgage/car/other loans), though I might be wrong. Especially entry-level jobs pay very little. It may be enough for someone in the age of 20-23 who is just starting out and doesn`t mind sharing a small apartment with someone else, but definitely not for someone who has settled already.

Here is the link for comparison of all salaries in this field:
http://www.gamasutra.com/features/20040211/olsen_01.shtml
I`m not sure if Canada is there specifically, but AFAIK you can expect the salary along the lines of 60.000 CAN for non-lead positions.

BTW, last week I saw a job ad that specifically required SQL programming experience, so this might be a very good chance to get into industry and see what things are like without having to know any specific game-programming stuff, though I assume they must have received hundreds of resume from people who would like to change industries. I`m not sure which job agency it was now, but I frequent only three : Aardvark Swift, OPM Response and DataScope so it should be easy to browse through them all and find it.

VladR My 3rd person action RPG on GreenLight: http://steamcommunity.com/sharedfiles/filedetails/?id=92951596

Quote: Original post by VladR
Have you studied the salaries level already ?
...
Here is the link for comparison of all salaries in this field:
http://www.gamasutra.com/features/20040211/olsen_01.shtml
I`m not sure if Canada is there specifically, but AFAIK you can expect the salary along the lines of 60.000 CAN for non-lead positions.


VladR,

Thanks for that link. I hadn't previously seen this article. I've been going roughly by anecdotal salary info. and it more or less lines up.

Fortunately, I've been extremely debt averse all my life, and tend to live fairly cheaply anyway, so the salary isn't too much of an issue for me at this point. Prior to living in Vancouver, I lived in London, where by necessity, cheap living was essential.

The big question for me is will I be happy in this industry. And the answer is a big 'maybe'.

Thanks as well for the job tip. Any advantage I may have over another helps! I think I will do some preparation along the lines of making a finished, simple game that illustrates something interesting, and maybe novel, before I actually apply for anything.

Thanks again.

jbc.
jbc,

It seems you have done most of your homework. The real question you seem to have is, is the move right for you? As someone who has gone full circle, biz apps => games => biz apps, I can share my experiences.

I developed desktop applicaitons for about 8 years, prior to taking a job at THE game company. Prior, I had worked at both a product company and a corporate development company, but always had that dream of being a "game developer". I had also done a bunch of spare-time "indie" stuff, including a game that got picked up by Activision. I actually found the transition from product development to game development was less of a change (salary or culture) then advertised, although the gap between corporate development was certainly larger. This probably also had a lot to do with the fact that this was the largest game company there was. The other surprise I found was that many of the talented developers were bolting from the industry to ride the dotCOM wave (which was at the early peak at the time). I spoke to many of them, who all felt the dotCOMs were offering more creative freedoms (not to mention the financial aspect) than they could find in the game industry. After spending a few years coding sport sequels, I toyed with the idea to going to small shop and seeing if it was any different. I had a wonderful conversation with the president of a promising new company who was making a new sim game to show Microsoft. Every once in a while, I kick myself for not following up with them (the game was a mega hit), but in the end, I took a job a dotCOM. I made that decision because of a) security and b) more money. Looking back, that statement is almost comical, however, I was fortunate to have picked a company that went through the dotCOM crash with only minor wounds. But the most important thing I got out of the move was the ability to refocus on my indie work. For me, none has been as personally rewarding as that.

Either way, good luck.

This topic is closed to new replies.

Advertisement