Jump to content
  • Advertisement

Anyone here a self-taught graphics programmer?

This topic is 408 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Your question brings back many memories.

When i turned 9, my parents bought me a Sinclair Spectrum computer. It was not much,

but it helped me to understand the basics of programming. It was then when i learned to

create and optimize algorithms.

I then started plotting points on the screen and then i learned how to draw circles and

squares. It was the start of my journey in the beautiful world of programming.


I just recently started studying IT, first year at the University of Computer Science, but as

expected i aced most of the classes.


There's still much to learn and a lot of experience to gain, but (0, 0, -1) is the only way i know!


Good luck!

Share this post

Link to post
Share on other sites

I guess it's true for most graphics programmers, as in the undergraduate CS courses, it just teaches entry-level CG theory and programming, unless you do MSc/phD in CG, but I believe very few of us here actually did.


In fact, even you do MSc/phD papers in CG, it's virtually no difference from self-taught, either.

Edited by Yu Liu

Share this post

Link to post
Share on other sites

I have no formal training AT ALL. I started in the mid 80's with my first computer, a Tandy1000, but NO GAMES. A friend of the family came by to help set it up and showed me a bouncing ball program in basic. I was mesmerized by its simplicity-- just a few commands and I could get this ball to bounce around the screen! So I got books and taught myself how to program in basic. I made a few simple games-- Take that Dad! I quickly realized my games were becoming too advanced for basic to handle, so I asked someone about other languages. He suggested assembly. So I got a book and started using debug to write programs. If you have never used debug to write programs, count yourself lucky; it's a NIGHTMARE! Finally someone introduced me to an .asm compiler and I wrote code from there. Somewhere in the 90's another friend suggested I start using C++ and DirectX. I tried it out and it stuck ever since.


I wish I could say I work for some game studio, but sadly no. I suppose it's a combination of bad timing and lack of education. I was born in an era before personal computers or the internet. So, without the vast amounts of free information on the internet and no formal training, I struggled to get the information I needed.


I joined the military after high school. Now I have kids, so following my dream kind of went to back burner. Now I work in the oilfield and don't really have time to sit down and do any serious programming.


I would like to know how some of you landed your game programming job........

Share this post

Link to post
Share on other sites

I personally started many years ago on an Amstrad CPC when I was 12. Graphics there were very basic ;)

Then some years after, I moved to PC/Windows around 17 and quickly moved to Linux where I could easily do what I wanted without having to pay to have everything required (mainly a compiler) some graphics.

The first API I tried was glide (voodoo graphics) and moved quickly to OpenGL which was more affordable for me and more widely used.

I read many books (about C++, OpenGL, computer graphics, computer mathematics...), was to several forums (including opengl.org and gamedev.net), and learn by myself by trying code, doing some algorithmics, and so on.

Then I moved to make some studies, and finally got a master degree in CS.

I worked in several companies including research center, planetarium builder and in the optical industry. I was closed to join a game company in Paris but for personal reasons (got married) I moved to another way.

I remain focused on C++, OpenGL, portability, architecture, stable and robust code.


I personally develop an engine on my own since many years now, which is my main motivation to remain in the computer graphics area (people willing to know more about it can contact me;)).


Hope this helps.

Share this post

Link to post
Share on other sites

Considering other folk's work, I am not sure if I can be called a graphics programmer or not. Anyway, here is my journey to the graphics programming. 



I was doing my bachelor degree in civil engineering. I had a "c" language lab course already taken and was living among a geek circle, we used to talk about tech in our free time after study. I was doing some novice style web programming at that time, as a hobby, after I knew that I have to learn web programming to customize my hobbyist LAN web page in stead of relaying website builders. Interfacing VLC with web pages and streaming videos to my buddies over LAN, giving them rtsp links.... ah nostalgia! I was lurking emulator forums(pcsx2,jpcsp etc), console platform security portals(hack scenes) to know about the platforms and security. I made a SDL app for psp with hombrew sdk at that time, it was a simple image viewer! Anyway, about emulator, I was amazed to think what kind of blackbox they put in-between that, an image built for a certain platform can be run on another! Though I now have a rough glimpse of the process, at that time I had not. Basically I had a fetish on anything related to game(digital entertainment). This sheer interest on tech thing, affected my study and soon I had to stop this for a while during 3rd year.  


How it started all:(roughly 2012)

Then it happened when I was doing the last semester, last year. I was a die-hard prince of persia series fan. Prince of persia 2008 had a DLC which was console exclusive, not available on PC. This enraged me much. I was thinking, "hey just like there are some website builders, is there any game builder too? That I can at least create a level of PoP for 10 minutes? Lets find'em and make'em and mail that level to ubisoft" <_<  :blink:  Study pressure was low and I had a lot of free time.


Game Engine hunting and Art:

I came up with torque3D's action adventure kit. I also looked up orge3d but then I realized that they need too much programming for me to continue on them, at that time. Then I got UDK and cryengine, they were better. I was lurking on their forums. Slowly I began to know what I need to know.

3D, 2D assets, music, animation, texturing etc. plus programming. They told me that I have to make assets in 3D software and get them into UDK. They warned me that it would take me years, I did not listen. So I picked maya getting inspired by god of war team that they also picked maya. Even though it was expensive and still it is, one elder bro in our university hall was working in 3D and had those packages. Polygonal, nurb modeling, then came uv mapping. I thought what it is? why do we uv map? how it put color to the model? I thought I would never understand this process. Then I beat it and now it is as easy as a pie. Then to put color, I knew that I have to do this on photoshop. So learning PS came along the way naturally. Then there comes the a thing called "normal mapping". I came to know that folks uses zbrush to give them high details and then converted it into map. There can be so many maps, I did not know at that time that a graphics programmer dictates what kind of maps will be needed, I just swallow that I would need maps. Maps like bumpmap, normal map, cavity map, convexity map, vector displacement maps etc. To do all these, I have to make a high detailed model. People do this on generally a sculpting software called zbrush. So journey towards zbrush started. My time was too less against the diversity of all these to cope with them all effectively. But I did as much I could. This art section alone would take pages, as it is related to graphics programming much less, lets put a stop sign on it now. I will also skip how I learned gameplay programming too. From now on, I will only focus on graphics programming specifically. This section is only given so that you would know the proper context and would know, what drove me in.


Graphics:(roughly in 2014)

I came to know the hypershade network of autodesk maya. Then I came to know a thing called "custom cg shader for maya". It was an eat3D tutorial of making custom shader for maya, before which I never knew anything about graphics programming. As I dived deeper into that tutorial, I knew that I would need an application side support for those shaders. Then as I already devs in a game engine called "unity3d", I tried to make those shader stated in nvidia's cg tutorial website, to work in unity3d. There were some tutorials but a book(https://en.wikibooks.org/wiki/Cg_Programming/Unity) helped me most in this process. This is the key start point of my graphics programming journey. Though none of them are raw c/c++ application, every graphics programming I did were implemented within unity game engine. I made my own deferred shading, many image effects, many custom shaders for the company where I currently work on. I also did some GPGPU works such as implementing A* pathfinding on GPU, gameplay codes on GPU. A water system for an unannounced game, much like ori and the blind forest's water. A wind system for 2D vegetation sprites, custom terrain splatting etc.


I will use existing game engines for professional works. I will be developing my own engine(and some other crazy things), but this will be purely academic, learning purposes. That is why I joined this forum. I hope I will learn exciting things from you guys.

Share this post

Link to post
Share on other sites

Been working with 3d graphics for about 4 years since I was 15. I did a degree on gme programming, but living in Australia, you start to see that there aren't many opportunities to make a solid living just working with games. I'mm make games using stuff like unity or unreal for a hobby, but as a job I now work on shaders for a large VR company.


I guess you really have to love doing it to get anywhere in graphics. For example, during my commute on the train to the city I like to spend that time with a pen, notepad, calculator, and a textbook open as I work on a new algorithm for my lighting or something like that; it's actually nice to have a few little eureka moments as you work through it. Then getting to try out the new solution on some hardware and having it work is the most rewarding thing ever. This is why I love graphics. You can see all of your efforts put to work, in colour.


One thing that solidated my love for it was getting to create an entire graphics pipeline that runs in the windows console. With shaders and a rasteriser.

Seeing it work made me appreciate opengl and directx even more.


Another thing that built my knowledge was by reading papers by known software engineers like paul rosen.


At the moment I'm working his rtwsm approach in to my renderer.


I'm clearly by all means inexperienced, but I love what I do, and I'd just say that you have to try doing things that are out of your comfort zone in graphics; you learn best like that.

Edited by Neuro1101

Share this post

Link to post
Share on other sites

TL;DR: I learned graphics from GW Basic programming manuals, a book called Tricks of the Graphics Gurus, the Open GL Red Book, and web tutorials/references.  The math I learned in college helped, as did studying some open source programs like Fractint.  I put my graphics background to quite good use in my current Aerospace job.


I learned programming and graphics programming by reading through old GW Basic manuals.  I wanted to write games like Commander Keen and Space Quest, but obviously Basic was not up to that task (you couldn't really animate without terrible flicker).  With the help of a cousin, I eventually found out about C and assembly language, and learned about EGA/VGA programming, but the VGA was tricky to program in 16 colors (it used bit planes, so you couldn't write to a single pixel with one operation, you had to make four writes, one for each plane).  I studied programs like Fractint to see how they did it.  Also, I bought this book (which was prominently displayed at Radio Shack):




The book was a tad disappointing in that it didn't cover too much about the low-level VGA, but boy did it teach me a lot of graphics background and techniques, many of which are still useful today.


In college I lost some interest in game programming; I had other things to worry about.  I majored in Aerospace Engineering (I figured that I already knew enough about coding and a CS degree would just waste my time).  But the Aerospace degree did teach a lot of useful math.  And it did help me to write one rather famous graphical program: a low-end wireframe flight simulator for X Windows.


As I was wrapping up grad school, I got back into game programming, this time in the 3D world.  I'd had a bit of exposure to Iris GL in college, and took up its successor, Open GL.  I just bought the Open GL Red Book, read it through, and have been slowly growing my skills ever since.  I was, and am, really happy Open GL took care of writing to the pixel buffers for me.  I hated that.


Now, as an aerospace engineer, I find that all that effort I spent learning graphics has paid off.  A nice animation can really help to communicate ideas and results to other engineers and (especially) engineering managers.  Since I have these skills, and most of my colleagues do not, I get a lot of good stuff to do.

Share this post

Link to post
Share on other sites

I am self-taught as well when it comes to graphics.

In 2013, while planning my vacation, I decided to come to the USA, and visit GDC.
On one session I heard an idea, that while you are free (no wife, no children, no mortgage) you have a lot of freedom to take risks. You are responsible only for yourself.

That time I had a good job, with one exception: there was no drive, no “amazingness/magic” in projects I worked on.
Came to Moscow, we released a product, and I left company.
My idea was to find hobby, that can drive me for my entire life (and probably make the hobby a profession).
At that time, I had money to live at least 1.5 years without paycheck.
Moved to Ukraine, Dnipro.
Life was good and so relaxed! =)
Explored a lot of things.
On 11th month I came to conclusion, that I want to do computer graphics.
Took Lego digital designer, and decided to copy some functional of it + learn DX11.
The goal was quite ambitious.
Made first engine.
One day in Feb 2015 I sat down to assemble couple of models in LDD.
That day pipeline was born (model construction automatization).
In next 8 months I’ve assembled more than 1000 models (the biggest of them, 2400 bricks, took to build 12 hours), rewrote pipeline 2 times.
Also in 2015 I road on my bicycle 10.500 km in 6 months.

Went to Russia in the end of 2015, and started to build engine 2.0: deferred, many lights, SSAO, CSM, FXAA, …
In August 2016, it has been finished. Learned a lot.
Until Feb 7, 2017, had some research, local improvements: engine 3.0.
On Feb 8 started new platform: tech4, which is some move to game (previous were more MFC/WTL CAD-alike apps)
April 12 the last missing peace finally came to my mind: the vision of my game.

After 3 months, 70% of code was rewritten, so here is result:

Now it seems it’s good time for me to make my hobby a profession (join some gamedev company).

Special thanks to: MJP, Hodgman, and entire GameDev.net community! I learnt from you a lot!

Edited by Happy SDE

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!