I feel like my graphics programming career is stagnating. Is it my fault? What can I do?

Started by
7 comments, last by CDProp 10 years, 8 months ago

I wanted to try to keep this as succinct as possible, because I'm definitely sensitive to the fact that no one wants to read paragraphs upon paragraphs of some schmoe's biography. However, I can't decide what else to cut. So, I apologize for the length, but if you are a professional game programmer (especially a graphics or engine programmer), I would be much obliged if you could read this monstrosity and give me whatever advice you can give. I desperately need direction!

I am one of the countless programmers who got their foot in the door without a degree. In 2006, I got a job at a local game developer as a sort of build engineer. By the end of my first project, I had automated most of my job, and so I had the programmers on my team give me some basic programming tasks to work on. I eventually became a full-time programmer. In 2008, the company went bust, and so I lost my job.

It turns out that two and a half years of game programming experience at a defunct (and honestly, crappy) game development studio does not make for a great resume, especially if you don't have a degree. So, I took a low-paying job at a very tiny web development company (think "working-in-some-dude's-basement" tiny). I had to learn a completely new skill set. There, I did both back end (Perl, MySQL) and front-end (HTML, JQuery w/ AJAX, CSS) stuff. Unfortunately, that company also went bust 5 months later.

Shortly after that, in late 2009, I found another job as a graphics programmer for a simulation company. This is my current job, and I've been here for almost 4 years.

So that about brings you current on my job history.

As you can probably tell, at the time that I was hired for my current position, they weren't looking for a graphics programming guru (if they were, they would not have hired someone with so little experience!). They were just looking for a good, smart programmer who could take ownership of the visual side of things. During the interview process, I programmed a very simple DX9 demo involving a pool of water (environment mapped reflections, refractions, fresnel), and an archway that casted a planar shadow. I modeled everything myself in Blender and exported it to a custom (albeit simplistic) file format using a script I wrote in Python. The company uses OpenGL, which I had no experience with, but I guess they decided that I knew enough about graphics to take ownership of their visual side of things.

The problem I am having with this job is that they have decided that their graphics fidelity needs are very modest, and so they've made realistic graphics programming an extremely low priority. Most of the time, they fill my plate with tasks that are only peripherally-related to graphics programming. For instance, they began work on a new level editor, and they needed me to code all of the 3D GUI stuff for it (dropping objects into the scene, picking, moving, rotating them, etc.). It turns out that this is 80% of the programming needed on it, and I quickly became THE owner of the level editor, responsible for the other 20% as well. For the first two years of this job, about 90% of what I did was related to this level editor. I essentially felt like a tools programmer, not a graphics programmer.

Edit: There are many other examples of non-graphics stuff that they've had me work on. but for the sake of brevity, I won't list them!

Meanwhile, I'm trying to get them excited about updating their graphics fidelity. When I first got there, their graphics already looked old (think original Half-Life, but with higher-res textures). I've done a few things over the years to update the graphics (added some normal mapping, gloss mapping, splatting to reduce the tiled look in grass and dirt textures -- all stuff that has been commonplace for more than a decade). When you combine this with the third-party libraries that I've integrated for ocean and sky rendering, the graphics look quite a bit nicer than they once did. But they still look horrendously out-dated.

I thought I had them convinced, at one point, that we really needed to change things. They gave me the go-ahead to re-architect the visual software from the ground-up so that it would be more flexible. The old visual software was so static; it was full of hard-coded behavior and ad-hoc hacks, and adding new stuff to it was very cumbersome. So, I took several months to reformulate things, and we just shipped our first project on the new architecture. Yay! I'm ready to add some new awesome effects.

But now they are loading my plate with more menial tasks that, at this point, I feel like would be better-handled by a junior programmer under my direction. We still have a long way to go on the graphics front. I haven't even been able to sell them on the importance of HDR yet, for example. We're still using simple single-buffer shadow mapping, and so we don't have full-scene shadows. I try to stay abreast of new developments, and I keep reading about things that I really want to do -- tiled light culling for nighttime simulations with lots of headlights and other work lights, image-based reflections to make the rain effects look more realistic, etc. -- that I think have practical value for the company, but I'm having a tough time selling them on it.

I really do understand, to some extent. The items they are having me work on are things that the customers are asking for, and there really isn't anyone else in the company who work in this area. However, I don't know if this is working for me anymore. I need a steep learning curve that I can climb. I feel like I'm on a plateau.

So I know what you're probably thinking. "Why not work on these projects in your own time, and then present them to the company when you have a working demo?"

And the truth is, I do work on side-projects such as this. However, it is extremely slow going because I am also in school. You may remember from the beginning of this tome that I did not have a degree when I started. Well, I started school about two and a half years ago, and I'm now about halfway toward a bachelor's degree in physics.* I am going full time, and the courses aren't easy. In order to maintain a good GPA (currently 3.93), I easily spend 30-40 hours per week on school. This is in addition to work, which often demands 50- or 60-hour weeks during crunch times. Yes, I have some weeks where I spend 90+ hours on work and school (although 70 is far more frequent).

I also have a family, and so I find myself with precious little time for side projects. I feel like I'm in one of those "Pick Two" situations: work, school, side-projects.

I'm really loath to quit school. I am just over halfway through, so why quit now? A degree might not be as important now as it was in the beginning of my career, but I'm not a quitter. Plus, I'm really excited about what I'm learning in my physics and math classes. I'm also currently working on some undergrad research involving crystals and electric field gradients, which I find really interesting and fun.

I am also loath to quit my job. I can't afford it, first of all. I also don't want the gap in my work history. Plus, I really like it where I work. These complaints aside, it's a great place to work, with nice people. They've been kind enough to take a chance on me, back when my graphics programming skills were unproven, and they have been very flexible with scheduling while I go to school. I feel that I owe them some loyalty.

But I also feel that, if I spend a year or two more in this "Graphics Programming Kiddie Pool", it's going to severely stunt my career. People are going to start wondering why I spent 6 years as a graphics programmer and haven't even implemented a good tone mapping operator before.

What should I do?

* Why physics? I would probably learn a lot from a CS degree, but I thought something cross-disciplinary would be more fun. It's not as though graphics is completely without a basics in physics, and most gaming and simulation companies seem to value knowledge in physics. So, why not?

Advertisement

tldr. It's partly your fault, and it's partly not your fault. Read http://sloperama.com/advice/lesson24.htm and http://sloperama.com/advice/lesson27.htm, and rethink. Meanwhile, redo your portfolio and get networking.

-- Tom Sloper -- sloperama.com

Interesting biography. You are in a very rare position. I worked my way through school which was hard enough. I have known a few people both as colleagues and as close family friends who have taken the harder step you have described. You have returned to school after time in the work force and starting a family that you are the breadwinner for, which is much harder. And it is very commendable.

Since you are already a good way along in your schooling, I recommend you stick it out. You have excellent grades meaning you should qualify for many scholarships and grants. Your family situation will likely qualify you for even more scholarships and grants. Even if you need to get a few thousand dollars in debt beyond what grants and scholarships can cover, completing the degree will be worth it and repaying the money after you graduate is not as hard as it seems.

For advice...

Make friends with the department head or academic advisors, and if you haven't done so already, ask if you can test out of coursework or get credit for life experience. Many schools are willing to do this for a small fee.

The last year or so of undergrad courses focus on the topics you enjoy, so often while it is still an effort, it can be more enjoyable than when you began. While it is more effort it may feel like less.

I wouldn't be too worried about the gap in employment, especially if you finish the degree. It is very easy to explain: "I had seven years in the work force, during the economic depression I went back and finished school." There is no fault or problem in this. Make your decision grid, and if that includes leaving the job to finish school that is not a career limiting move. It is a career enabling move.

I would not spend the effort on the side game projects. Your brief summary says 2.5 years at a game company, working at a startup until it went bust, 4+ years at a stable job, plus getting a degree on the side. I look at that and think "I want this guy, he is a dedicated hard worker." I do not need side projects to prove that you can work.

If you have religious or social groups you can rely on for support, seek them out. This can be anything from needing help with plumbing issues or emotional support for yourself or your family.




I want to really emphasise this one:

Emotional stress is a very real thing. I have seen it many times in my life and in other people. It can grind even the strongest man down into a pulp. A strong support network for emotional stress is important. Most schools have free or low-cost psychological counselling sessions. Your health insurance probably has similar, but more expensive, benefits. If you are feeling heavy emotional stress, seek that help. If you are beyond your personal support group or are feeling overwhelmed (your post implies that you might) then get help. You don't need to reach the point of being suicidal or homicidal to get great benefits from a good counselor. Some people equate psychologists with insanity or weakness, but that is invalid. Emotional stress and pain are very real, and can be more painful and damaging than a toothache or broken bone; would you not visit a dentist or seek medical care for either of those? A good counselor can help you reduce and manage the emotional difficulties of your situation. You are in an amazingly difficult time balancing a full-time job and school, possibly one of the most difficult times of your life. If you have any difficulty managing your emotional stress levels, any difficulty at all, take advantage of clinical counseling services.

Again, manage your mental and emotional health. If you lose those it can impair you just as much as breaking your hand would impair your typing ability. Injuries to your psyche from stress are just as real and can be just as permanent as injuries to your physical body. If you feel yourself slipping, being crushed, or just want the equivalent of a mental or emotional painkiller, free and inexpensive resources are available.



I would finish the degree, doing everything you can and pulling strings to make that easier. Being friends with the department head, especially if they know your history, can help you get shortcuts not normally available to the teens who proceed directly through the program. I would leverage that if possible. Also enlist help in searching for scholarships and grants. That 'free money' can lighten the burden significantly.

Be friends with and talk with your boss. It sounds like they have done some to help you already. Heavy crunch times are hard enough when that is your full daytime life; adding school to the mix makes that insanely difficult. A good boss will recognize this and help make your life easier; an overworked and overburdened employee is less productive and has more errors, so a smart manager will help you.


You are doing a very hard thing. Your post implies you are doing the hard thing very well; keeping your grades up very high while also keeping your employer happy. That's double-tough and impressive. It will have life-long benefits to you both directly and indirectly. Since the topic is a passion for you, I recommend you follow it if you can. You have less than 24 months of it left to endure. Once it is completed it can be a badge of honor, especially to those who understand what it really means.

Only one thing I would add to Frob's post - I would do an audit of your time management versus productivity -- Working exceptionally long hours at times can be very necessary especially in situations such as yours - the reason I would suggest such an audit is that you might find that there are times when it might be more advantageous to you to take a break or a short nap in order to raise your levels of productivity back to optimum which would lead to an overall reduction in time spent on achieving the same (or superior) result.

Thanks very much for the advice, everybody.

Tom, you have a very extensive website there. A lot of good stuff. It looks like you've put years and years of work into writing all of that content. I can see why it is so heavily linked here. Thanks for your advice.

frob, I really appreciate everything you said. A lot of times it can be frustrating to put so much work into things, and then feel like I'm still falling behind the curve. It's comforting to know that future employers may look kindly on what I'm doing, even if I'm not advancing in graphics programming as much as I'd like to. Sometimes I look at what I'm doing in life -- non-rendering stuff at work, and taking classes on topics like acoustics and quantum mechanics -- and I think, "What am I doing with my life? I'm leaving myself no time for career development in graphics programming." It does get stressful at times. Maybe I'll try getting into meditation and exercise to help alleviate that. Although you've assured me that side projects aren't quite as big a concern for me as it would, say, for a new college graduate, I think I may take Tom's advice and try to at least chip away at creating a portfolio. If I find that I'm just adding too much on my plate, I'll back off.

I'm just really worried about applying to game studios someday and not having the chops because I've been playing in the kiddie pool for 4+ years with c. 2003 shader effects and plain old LDR forward-rendering.

Stormynature, that is some good advice. Sometimes, when I get burned out, I find myself hanging out on time-wasters like Minecraft and Reddit. Lately I've been trying to remind myself that there are things I'd rather be doing that can be enriching as well as relaxing, like reading a good book (I'm not hugely into literature, but I like nonfiction -- I just got done reading Feynman's autobiography and found it to be very entertaining). Like I said before, maybe exercise and/or meditation would be a good thing. Napping would also help. Thanks for your advice.


I'm just really worried about applying to game studios someday and not having the chops because I've been playing in the kiddie pool for 4+ years with c. 2003 shader effects and plain old LDR forward-rendering.

Apply with a great portfolio, and hirers who have kids will not think badly of you. Stop worrying and just do the stuff that's important to do.

-- Tom Sloper -- sloperama.com

Thanks again, Tom.

By "kiddie pool" I was mostly referring to the remedial/novice nature of the graphics stuff I've been working on at my job. My employer doesn't really prioritize advanced graphics, and so they do not allot any time to work on more modern techniques. I have tried to persuade them otherwise, but in the end, it's their money.

I try to work on this sort of thing in my own spare time, but with full-time school and family, it is slow going. I'm going to try my best anyway. Thanks again.


By "kiddie pool" I was mostly referring to the remedial/novice nature of the graphics stuff I've been working on at my job

I slap my forehead and apologize for not reading carefully enough.

-- Tom Sloper -- sloperama.com

Think nothing of it!

This topic is closed to new replies.

Advertisement