Jump to content

  • Log In with Google      Sign In   
  • Create Account

Anyone here a self-taught graphics programmer?

  • You cannot reply to this topic
96 replies to this topic

#81   Members   -  Reputation: 405

Like
2Likes
Like

Posted 22 March 2015 - 11:43 AM

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.



#82   Members   -  Reputation: 805

Like
4Likes
Like

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: 335

Like
2Likes
Like

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 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 - 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.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, 29 June 2015 - 06:31 PM.

My Game Development Blog : chetanjags.wordpress.com


#84   Members   -  Reputation: 969

Like
2Likes
Like

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: 335

Like
1Likes
Like

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)

 

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.

 


My Game Development Blog : chetanjags.wordpress.com


#86   Members   -  Reputation: 890

Like
3Likes
Like

Posted 07 October 2015 - 03:43 PM

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.



#87   Members   -  Reputation: 354

Like
1Likes
Like

Posted 08 April 2016 - 06:36 PM

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. 


Create your 3D RPG: Maker3D

 


#88   Crossbones+   -  Reputation: 2522

Like
5Likes
Like

Posted 16 April 2016 - 02:43 AM

*
POPULAR

I'm also pretty much all self-taught. I started toying with QBasic just about when it was on its way out, but then arbitrarily picked up this book and started feeling my way around the first IDE (the Borland one) and started learning more serious stuff. I remember arrays and the order of logic operators being strangely elusive when I just started out :).

 

Eventually I created my first window in WinAPI and thought "now that I have a window, the rest is easy-peasy". Boy, was I wrong  :P .

 

Like many, I took up OpenGL with the help of NeHe's tutorials and continued reading books, all in my spare time, without really giving up a social life.

 

Eventually I found myself facing the same choice all people face when they graduate from high school. With no clear idea of what I wanted to do, I rolled in IT, with emphasis on software development. But then two strange things happened: as I took more and more courses, it turned out I knew too much for the school I went to, but too little to actually spearhead a sizeable project on my own; what was far more concerning was the feeling that I didn't want to labor away for someone else's dreams. So I graduated and rerolled in a completely different field, all while I started structuring my code into something a bit more cogent, which eventually turned into a something that started to smell like and feel like an engine. As a hobbyist, I find it surprisingly difficult to keep myself focused on a single objective, so pretty much all parts of my game engine are in very active development. Although, after years and years of rewriting and trying out different things, many of them are really starting to fall into place. Which feels awesome. :)

 

As time goes on, I do feel the sting of a lack of further formal education and the absence of the discipline of a professional work place in the back of my head. But I'm still not old enough to give up my dreams :).

 

So yeah - I don't have anything like L. Spiro's video to show for it, but what I can say with confidence is that I've studied and built a lot of stuff that I'm personally really really proud of. And again, that feels awesome:cool:



#89   Members   -  Reputation: 124

Like
1Likes
Like

Posted 24 April 2016 - 08:25 AM

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, 24 April 2016 - 08:26 AM.


#90   Members   -  Reputation: 1389

Like
1Likes
Like

Posted 10 May 2016 - 06:46 AM

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, 10 May 2016 - 06:58 AM.


#91   Members   -  Reputation: 202

Like
1Likes
Like

Posted 14 May 2016 - 11:47 AM

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!



#92   Members   -  Reputation: 135

Like
1Likes
Like

Posted 17 May 2016 - 04:37 PM

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, 17 May 2016 - 04:39 PM.


#93   Members   -  Reputation: 138

Like
5Likes
Like

Posted 03 June 2016 - 08:55 AM

*
POPULAR

I'm self-taught too.

 

And here goes my story:

 

First time I saw 3d when I was 13, on PlayStation's (first gen) game "Armored Core: Master of Arena" in year 2000, then was Benchmark "3DMark 2000". Funny that I was so naive to think that by pushing buttons I can control that cool helicopter in the demo :D

But that was it, I tried to learn C++ but failed, couldn't even compile simple "for" loop example for some reason... I've done some programming stuff in the university but it wasn't even close to graphics.

 

I graduated in 2010 as an "Information Security specialist". By this time I realised that this profession is unacceptably boring for me. And I decided to become a programmer... in game industry... having almost no skills for it, and probably no talent. Damn, even simple arithmetic is challenging for me some times :D

 

But still I wanted to be a game dev. After 3 years of PHP, JavaScript, Objective-C, usage of several frameworks and countless numbers  of failed and matched deadlines I finally got a position in mobile game project as a frontend developer in a small company. Game (and company) is called "Bombsquare". Idea was simple and ambitious: it was supposed to be a 2D MMO on the global world map and I was literally the only programmer of frontend team! I was so engaged, I was seeing the code while sleeping :) 

I learnt much from the framework source code (Cocos2D-ObjC) and even tweak it to my needs (which hit me back later, of course). And all this knowing almost nothing about math or OpenGL or any shading language. Just poking things and finding out if I can do what I want with the framework. But more important: I did game dev and I got paid for it!

We've released couple of versions but it was already obvious that the game won't shoot because of mine lame code optimisation skills and lack of proper game design... Kind of depressing combination...

 

Our company took an outsource project, called "Bloom tunes", child game, based on drawing and sounds. It was another round for me and Cocos2D which this time end up pretty successful!

During this project I learned more about OpenGL, triangulation and... well... math :D I finally started to revise, revive and relearn my university linear algebra skills :)

Game itself strike in couple of countries which I was very happy about, even tho I got nothing from it except of self-esteem lvl up :)

Later there were several more 2D projects using Unity and C#. Again, I was the only developer for most of them. Again, roller coaster of fails and wins...

 

I also took a year course of Maya modelling, animation and VFX to get the bird fly high overview, so to speak :) And studied 3D animation in pretty famous animation studio in Russia. But when I found out they pay too low even to seasoned animators I quit :D

 

Now I'm learning foundation of 3D rendering technics (shaders, shadow rendering approaches, procedural content generation, ray tracing and so on) and looking for some projects to be useful to :)

 

All this stuff looks completely terrifying and overwhelming at first glance, but bit by bit the picture starts to make sense, so I'm not gonna give up on it! :)



#94   Members   -  Reputation: 138

Like
1Likes
Like

Posted 03 June 2016 - 08:59 AM

Crap, I wanted it to be short, but then something went wrong.. Sorry  :unsure:



#95   Members   -  Reputation: 898

Like
1Likes
Like

Posted 16 June 2016 - 06:49 AM

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



#96   Members   -  Reputation: 438

Like
3Likes
Like

Posted 30 June 2016 - 03:29 AM

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.



#97   Members   -  Reputation: 129

Like
2Likes
Like

Posted 21 August 2016 - 04:39 AM

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. 

 

Prologue:

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.


CG bear.

Playstation Partner






PARTNERS