Entering my 5th year of development. I would say Im a mix. I was taught basic principles of programming by several mentors at the company I am at and then I was on my own when it came to DirectX so between tutorials on the web and trial and error I would say I am self taught in D3D11.....That said I am still very wet behind the ears. My graphics work is entry level at best.

**11**

# Anyone here a self-taught graphics programmer?

###
#82
Members - Reputation: **774**

Posted 19 June 2015 - 10:52 AM

I am - when I was young I think seven or eight my dad got me an IBM ATX/PC an old old monochrome pc which was remarkably slow. I have a uncle that was a programmer for McDonalds who got me hooked into programming. I started out with qBasic then moved onto Visual Basic 6.0 and some QuickC. There was a old graphics header file backthen and my dad got me some Windows Game Programming Books and 3D Game Programming Books - one was I believe The Black Arts of 3D Game Programming. I learnt how 3D rasterization works as in Wolfenstein style game. From the period from 18-28 years old there's a huge void in my life. Got out of that void and up til recently been fascinated more about how today games look realistic (almost).

I tested out UDK for a bit few years ago before I started to decide to work on my own game engine. At first learning C++ and DirectX it threw me for a loop. My brain was eager to learn as much as possible so fast that I would get overwhelmed and have outbursts. I believe Hodgeman told me to take a break for a while and just do more research. After a while of researching and going by my pace of speed - I would say I've learnt a bit but need to learn more. I think that from going from asking too much help and trying to figure out myself helped a lot.

I don't work for any IT job - I took one year at university online division for game level design - I didn't like it so I quit the education. I wasn't getting any fun out of it or anything. I wasn't being challenged enough should I say. I did see how schools work financially lol - get it---students loans!

So to finalize this whole post - recently, I've been taking my time - not bull rushing everything - just chilling. If I go head first into something - I usually get bent out of shape - so it's better to take your speed of pace like L. Spiro said. What I like to do is break it down in chunks to get a better understanding of things.

Game Engine's WIP Videos - http://www.youtube.com/sicgames88

SIC Games @ GitHub - https://github.com/SICGames?tab=repositories

Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX

###
#83
Members - Reputation: **306**

Posted 29 June 2015 - 06:29 PM

I am a self-taught graphics programmer.

We had C++ as part of our course in high school (2005-2006). After getting bored of coding calculators, I coded some text based games and then tried a basic 3D renderer using high school maths, geometry and turbo c++ graphics (lines).

I bought my first PC in 2006 a P4 because I needed it to complete my TicTacToe game and cyber cafe were not cheap in those days. And It was hard to find good PCs with USB drives in cyber cafes in those days to install Turbo C++. After I bought my PC a devil (friend of mine) introduced me to PC games like Doom95, Doom 2 & Halflife 1 and I was transformed from a sportsman to a nerd within a month. I finally knew what I must become As if distracting me over the whole year wasn't enough for him he gave me Doom 3 & HL2 just before final exams. Yes, he was a Monster.

2007 - After school, I took Computer Engineering course. During the first year I made some basic 2d games using allegro. Then I discovered a wonderful website called http://www.gamedev.net/, which helped me a lot in learning different aspects of game development including graphics. I always liked the graphics more than other parts of game development.

Since the 3rd year of college I started developing my own hobby engine (JustAnotherGameEngine) and still working on it. Current version 4 is based on Direct3D 11 and that's where all fun stuff happens.

So I passed out of college in 2010. Since then I am hopping jobs and working on small to medium sized games from over 5 yrs now. I have worked on almost all aspects of game development in the past including gameplay, graphics, ai, multiplayer etc.We don't have any hardcore game development in my country India so I never got the chance to work on any game that I can be proud of.

But I scratch that itch by working on my own game engine.

I made a tech demo 2 yrs back. It was a demo of all the different features of ver 3 of my engine excluding high-quality graphics or fancy shaders - https://www.youtube.com/watch?v=XvAIgO2bs5A

I am planning to make another Demo with the latest version of my engine whose main focus will be on graphics this time.

I don't want all of my hard work to go to waste, so I am still trying for an opportunity to get into AAA as a Graphics Developer.

P S - Once upon a time I ran Crysis on Pentium4, 1 GB DDR1 Ram & Nvidia 6400 on ultra settings and left it for an hour. Except few graphics glitches and slideshow gaming, everything was fine. After 60 minutes, my PC was still alive.

**Edited by chetanjags, 29 June 2015 - 06:31 PM.**

My Game Development Blog : chetanjags.wordpress.com

###
#84
Members - Reputation: **901**

Posted 07 July 2015 - 12:52 PM

I coded some text based games and then tried a basic 3D renderer using high school maths.

I'm born and raised in the US. Say what you want about our "low test scores" (I'm a believer), but I can't stress this enough: much of the math skills you need are covered in the high school. I also went to public school, so I got the standard curriculum. We did all kinds of vector and matrix operations. We even covered basic concepts such as how to tell if vectors were orthogonal to each other. This brought me to the conclusion that much of the basics of 3D linear algebra is covered in high school. We didn't cover matrix transforms, or how to get the angle between vectors, but we knew how to multiply matrices, find their determinants, do vector addition, subtract, dot/cross vectors.

The big problem is that we didn't cover much of the concept, let alone the application, of these operations. So, we know how to calculate the dot product, yes, but did you know that value is the product of the magnitude of both vectors and cos of the angle between them?

NOPE!

We also learned very basic boolean algebra. You wouldn't know it from just school though, because George Boole, nor the term "boolean" was ever mentioned. We learned all of these seemingly useless skills. It's not like this stuff was relevant in anyone else's lives outside of my own, who already knew this stuff... Regardless of how well kids did on the test (many did quite well, IIRC), they'll forget about it later. Even I forget how quaternions work if I haven't needed to know the math behind them in months. All I need to do is get a refresher from Wolfram, and I'm all set. It's really not that difficult.

All of my friends who aren't programmers say that it's interesting, but the math turns them off. The thing is, they're just talking about programming in general. Just the act of "programming" itself is mathematically elementary. It's really what you want to do that determines the math complexity of your project. On top of that, they think 3D graphics are difficult to wrap their heads around. Ironically, just about all they need to know to get a jump on the math-side of graphics was already taught to them way back in high school.

I'd also like to point out that we also covered Bezier curves. This became relevant for me the year before I "learned" them.

**Edited by Vincent_M, 07 July 2015 - 12:54 PM.**

###
#85
Members - Reputation: **306**

Posted 13 July 2015 - 11:10 AM

I'm born and raised in the US. Say what you want about our "low test scores" (I'm a believer), but I can't stress this enough: much of the math skills you need are covered in the high school. I also went to public school, so I got the standard curriculum. We did all kinds of vector and matrix operations. We even covered basic concepts such as how to tell if vectors were orthogonal to each other. This brought me to the conclusion that much of the basics of 3D linear algebra is covered in high school. We didn't cover matrix transforms, or how to get the angle between vectors, but we knew how to multiply matrices, find their determinants, do vector addition, subtract, dot/cross vectors.

The big problem is that we didn't cover much of the concept, let alone the application, of these operations. So, we know how to calculate the dot product, yes, but did you know that value is the product of the magnitude of both vectors and cos of the angle between them?

NOPE!

I think I shouldn't have used the word "3D renderer" there. Basically, I created a sort of 3d looking scene based on my observation while playing games like F1 race, 3d scooter racing etc. It did it using turbo C++ gfx functions like line & circle and some crazy equations based on 2d geometry maths. Here's an example image *(created in paint.net **not** actual screenshot)* -

- That 'T' was player object & we could move it right / left based on the input.
- Roads had scrolling animation and I could increase/decrease width for simulating downhill/uphill.
- Circular objects used to get bigger as they come closer.

I don't really know what to call it? Maybe "Hacky 3D wannabe simulation ?"

Whatever it was, the joy of creating a 3d looking scene for the first time was beyond words.

This was done even before I studied matrices so yes there's no way I had the knowledge of transforms let alone 3d pipeline. I implemented a proper software renderer later in 2nd yr of college after learning about gfx pipeline n all. It was a wireframe renderer tested only with some simple objects like cubes, planes, etc.

Yes, we were taught only basic operations on matrices like add/ multiple, inverse etc. No transformation and not even any hints on why matrices were important.

But we understood the vectors, dot & cross product and their uses. They were necessary even for physics problems.

I don't remember covering Bezier curves either in school or college, but I remember solving problems like given an arbitrary function graph and we have to solve for function equation using some basic trig functions (sinQ, cosQ, etc) but that's something more similar to SH I guess.

My Game Development Blog : chetanjags.wordpress.com