• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
CDProp

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

8 posts in this topic

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?

Edited by CDProp
2

Share this post


Link to post
Share on other sites

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.

2

Share this post


Link to post
Share on other sites

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.

0

Share this post


Link to post
Share on other sites


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.

0

Share this post


Link to post
Share on other sites

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.

0

Share this post


Link to post
Share on other sites


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.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0