Re: The entry competence level for graphics programmers

Jon Watte <[email protected]> Sat, 24 Sep 2011 21:35:15 -0700
Newsgroups gmane.games.devel.sweng
Message-ID <CAJgyHGPqgO1jsx-w6KC+Y0o2oJBtgLC7w3JVqj723ZiNoEVpOg@mail.gmail.com>
--===============1020540641==
Content-Type: multipart/alternative; boundary=0016364175f79d0cbf04adbc9109

--0016364175f79d0cbf04adbc9109
Content-Type: text/plain; charset=UTF-8

Why do you want to work in games when there is investment banking?
Seriously?

If you still have to do games, then you should probably pick up a few recent
books on the area you're interested in -- gpu gems, game engine gems, that
sort of thing -- and compare your chops with the articles in those books.
Making sure that you understand each article is actually a good thing -- you
don't need to memorize each technique, but you need to have the basics that
allow you to understand them.

For graphics, this includes a good grasp of basic linear algebra,
matrices/vectors/quaternions, what they represent, and how to use them to
solve problems. "I want to attach animated bone A from the Flaming Sword of
Fire to animated bone B of the character's hand -- what order do I do what
operations in?"
Also make sure you understand row-vectors-on-left vs
column-vectors-on-right!
I imagine understanding different BRDFs would be useful too, as well as the
limitations of various graphics cards (how high is the latency of vertex
texture fetch; how many separate vertex channels can they do before
degrading, etc), as well as the tools in the technology of your choice (Xbox
PIX, gDebugger, whatever)

A totally different skill you should pick up is understanding the art
pipeline -- pick up some Max or Maya chops; learn how layering and blending
works in Photoshop; build an exporter that can go from Zbrush to your own
graphics engine. Buy some art or ask a friend if you don't know how to
actually model yourself.

So, other than making sure you know the basics enough that you understand
the book articles, perhaps just biting the bullet and putting together a
game demo of some sort would be useful.

There's lots more -- low-level knowledge of caching, memory, CPU/GPU
parallelism, etc. Mid-level knowledge of how rigid body dynamics interact
with graphics presentation, and how to structure a threaded, data-streaming
application. High-level knowledge of how to achieve whatever goal the artist
wants to achieve, and how to present a set of tools that makes sense to
artists. Showing up on time (!) and treating everyone you work with with
respect (!) and honesty (!) The list goes on :-)

Also, I have written scene graph and rendering and art pipeline code used in
a variety of shipping games and virtual worlds, but my title has never been
"graphics programmer." Being in a narrow niche may not actually be the best
way to get where you want to go!

Sincerely,

jw


--
Americans might object: there is no way we would sacrifice our living
standards for the benefit of people in the rest of the world. Nevertheless,
whether we get there willingly or not, we shall soon have lower consumption
rates, because our present rates are unsustainable.



On Tue, Sep 20, 2011 at 7:32 AM, Tommy Brett <[email protected]> wrote:

> Hello ladies and gents,
>
> I graduated 5 years ago with the intention of becoming a game developer, my
> career got sidetracked and although this sidetrack led to an ultimately
> comfortable existence and a lot of life lessons learned, I'm now at the
> point where my career as a Flash / Flex developer is stagnating. It may also
> be coming to a forced end as more and more of my employer's clients move
> away from Flash each month. I've been keeping up with the times, and doing a
> lot of graphics programming on the side using nVidia's CG shader programming
> language and OpenGL.
>
> I'm looking for a little insight into what skill level you expect entry
> level, and reasonably competent graphics programmers (i.e. qualifying as
> something above 'junior' in their job title, even if that's just the
> omission of the word) to be at, and the difference between the two. By skill
> level, I mean knowledge base, for example implementing certain shader
> routines (e.g. normal mapping) and grasp of mathematics. Before I enter the
> job search proper, I want to make absolutely sure that my skills are in fact
> up to par as I understand that graphics programming positions in particular
> are highly competitive. For example, I know that one area I lack skill in is
> using shader functions built for DirectX 10 and above - by virtue of me
> still using an XP machine (GPU is DX10 capable though, reeeally need to
> upgrade), and I suspect that not being knowledgeable about,
> say, tessellation using the GPU would swiftly kill any application I would
> make for a graphics programmer role that paid more than free lunches.
>
> On the other hand, this may not be the case, which is why I'm sending this
> out to you better informed guys for a little feedback.
>
> - Tommy
>
>
>
> _______________________________________________
> Sweng-Gamedev mailing list
> [email protected]
> http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
>
>

--0016364175f79d0cbf04adbc9109
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Why do you want to work in games when there is investment banking?<div>Seri=
ously?</div><div><br></div><div>If you still have to do games, then you sho=
uld probably pick up a few recent books on the area you&#39;re interested i=
n -- gpu gems, game engine gems, that sort of thing -- and compare your cho=
ps with the articles in those books. Making sure that you understand each a=
rticle is actually a good thing -- you don&#39;t need to memorize each tech=
nique, but you need to have the basics that allow you to understand them.</=
div>
<div><br></div><div>For graphics, this includes a good grasp of basic linea=
r algebra, matrices/vectors/quaternions, what they represent, and how to us=
e them to solve problems. &quot;I want to attach animated bone A from the F=
laming Sword of Fire to animated bone B of the character&#39;s hand -- what=
 order do I do what operations in?&quot;</div>
<div>Also make sure you understand row-vectors-on-left vs column-vectors-on=
-right!</div><div>I imagine understanding different BRDFs would be useful t=
oo, as well as the limitations of various graphics cards (how high is the l=
atency of vertex texture fetch; how many separate vertex channels can they =
do before degrading, etc), as well as the tools in the technology of your c=
hoice (Xbox PIX, gDebugger, whatever)</div>
<div><br></div><div>A totally different skill you should pick up is underst=
anding the art pipeline -- pick up some Max or Maya chops; learn how layeri=
ng and blending works in Photoshop; build an exporter that can go from Zbru=
sh to your own graphics engine. Buy some art or ask a friend if you don&#39=
;t know how to actually model yourself.</div>
<div><br></div><div>So, other than making sure you know the basics enough t=
hat you understand the book articles, perhaps just biting the bullet and pu=
tting together a game demo of some sort would be useful.</div><div><br>
</div><div>There&#39;s lots more -- low-level knowledge of caching, memory,=
 CPU/GPU parallelism, etc. Mid-level knowledge of how rigid body dynamics i=
nteract with graphics presentation, and how to structure a threaded, data-s=
treaming application. High-level knowledge of how to achieve whatever goal =
the artist wants to achieve, and how to present a set of tools that makes s=
ense to artists. Showing up on time (!) and treating everyone you work with=
 with respect (!) and honesty (!) The list goes on :-)</div>
<div><br></div><div>Also, I have written scene graph and rendering and art =
pipeline code used in a variety of shipping games and virtual worlds, but m=
y title has never been &quot;graphics programmer.&quot; Being in a narrow n=
iche may not actually be the best way to get where you want to go!</div>
<div><br></div><div>Sincerely,</div><div><br></div><div>jw</div><div><br></=
div><div><br>--<br>Americans might object: there is no way we would sacrifi=
ce our living standards for the benefit of people in the rest of the world.=
 Nevertheless, whether we get there willingly or not, we shall soon have lo=
wer consumption rates, because our present rates are unsustainable. <br>
<br>
<br><br><div class=3D"gmail_quote">On Tue, Sep 20, 2011 at 7:32 AM, Tommy B=
rett <span dir=3D"ltr">&lt;<a href=3D"mailto:[email protected]">elithiom=
[email protected]</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hello ladies and gents,<div><br></div><div>I graduated 5 years ago with the=
 intention of becoming a game developer, my career got sidetracked and alth=
ough this sidetrack led to an ultimately comfortable existence and a lot of=
 life lessons learned, I&#39;m now at the point where my career as a Flash =
/ Flex developer is stagnating. It may also be coming to a forced end as mo=
re and more of my employer&#39;s clients move away from Flash each month. I=
&#39;ve been keeping up with the times, and doing a lot of graphics program=
ming on the side using nVidia&#39;s CG shader programming language and Open=
GL.=C2=A0</div>


<div><br></div><div>I&#39;m looking for a little insight into what skill le=
vel you expect entry level, and reasonably competent graphics programmers (=
i.e. qualifying as something above &#39;junior&#39; in their job title, eve=
n if that&#39;s just the omission of the word) to be at, and the difference=
 between the two. By skill level, I mean knowledge base, for example implem=
enting certain shader routines (e.g. normal mapping) and grasp of mathemati=
cs. Before I enter the job search proper, I want to make absolutely sure th=
at my skills are in fact up to par as I understand that graphics programmin=
g positions in particular are highly competitive. For example, I know that =
one area I lack skill in is using shader functions built for DirectX 10 and=
 above - by virtue of me still using an XP machine (GPU is DX10 capable tho=
ugh, reeeally need to upgrade), and I suspect that not being=C2=A0knowledge=
able=C2=A0about, say,=C2=A0tessellation=C2=A0using the GPU would swiftly ki=
ll any application I would make for a graphics programmer role that paid mo=
re than free lunches.=C2=A0</div>


<div><br></div><div>On the other hand, this may not be the case, which is w=
hy I&#39;m sending this out to you better informed guys for a little feedba=
ck.</div><div><br></div><font color=3D"#888888"><div>- Tommy</div><div><br>
</div><div><br></div>

</font><br>_______________________________________________<br>
Sweng-Gamedev mailing list<br>
<a href=3D"mailto:[email protected]">Sweng-Gamedev@list=
s.midnightryder.com</a><br>
<a href=3D"http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnig=
htryder.com" target=3D"_blank">http://lists.midnightryder.com/listinfo.cgi/=
sweng-gamedev-midnightryder.com</a><br>
<br></blockquote></div><br></div>

--0016364175f79d0cbf04adbc9109--

--===============1020540641==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Sweng-Gamedev mailing list
[email protected]
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com

--===============1020540641==--