Jump to content
  • Advertisement
ISDCaptain01

Anyone here a self-taught graphics programmer?

This topic is 411 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

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.

Share this post


Link to post
Share on other sites
Advertisement

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.

Share this post


Link to post
Share on other sites

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 tongue.png   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 - 

 

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.smile.png

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
 

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)

 

[attachment=28149:3Dsrc.png]

 

  • 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 ?" tongue.png

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.

 
Regarding Maths in School - 

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.

 

Share this post


Link to post
Share on other sites

Whilst I do have a formal education in computing, all the graphics programming one has learned is self-taught from books by Andre Lamothe and Mike McShaffrey, and by following John Carmack after reading Masters Of Doom.

 

If its one thing I would recommend it is start small and experiment with 2D graphics before even thinking about 3D.  Reason being is that your math skill can grow at a comfortable pace with your programming skill.  You are also more likely to finish what you start.

Share this post


Link to post
Share on other sites

well, i am more a generic programmer, than a graphics programmer. and also, i am a programmer, not specifically a game developer. i sometimes touching the game industry with my works, but nowdays i would not classify myself as a game developer. 

 

talking from graphics - i used third party engines at first, but they was too buggy (just as nowdays), so i self-learned graphics programming with opengl 1.0 using tutorials on the internet. i was not a good programmer in C at that time, but i was still able to put together my stuffs relatively easily. at first, i not actually learned anything beyond my needs (~10 necessary opengl function to paint textured geometry), i just wanted to display the graphics i needed, but not cared about the features of opengl beyond that.

 

later i enhacned my knowledge a bit more, to cover newer technologies as my hardware (and as the market demand) become more modern (voodoo3->geforce4->radeon9800). my middle-scool math skills was more than enough, and if i need a formula, its easy to find it on the internet. later i started to design software renderers, becouse i was not satisfyed with the conception and compatibility of opengl, gpgpu and shaders. 

Share this post


Link to post
Share on other sites

I started programming on Extended Color Basic for Tandy COCO II when I was ~7 after browsing the computer's manual (They put programming information in manuals back then). Switched to QBasic on DOS and eventually Turbo C++ on DOS. Everyone pretty much used BIOS and OS interrupts to do anything useful in DOS.

 

It took me awhile to move to windows because nothing could produce fast graphics until DirectX came out, and DirectX 3.0 was a completely different beast in early windows 95. I'm highly amused APIs like Vulkan are coming around because I remember DirectX 3.0 having an immediate mode where you created command ques and similar ideas but they decided to move away from them in 5.0 (Never had a 4.0 DX).

 

I do programming for a living now on AntiVirus software and as a hobby. I guess I've been programming 28 years in general and probably about 22 in C++. I had no schooling, just picked it up on my own.

Edited by RevenantBob

Share this post


Link to post
Share on other sites

My short story:

 

In the late 90s I was introduced to the demoscene by my friend and instantly became interested in graphics and low-level programming. I made a couple of software rasterizers and ray/path tracers and finally moved on to 3D acceleration, first using OpenGL but later every major API. I learned (and always learning more) from tutorials, sample code, GDC and SIGGRAPH papers. I mostly make my own renderers but also use Unity and Unreal. My major personal project is my engine that I generally rewrite every two years or so and the current iteration is not very far yet as I'm learning Vulkan and D3D12 while developing it. At work I have developed graphics code both for mobile and AAA games/engines.

Edited by bioglaze

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!