ISDCaptain01

Anyone here a self-taught graphics programmer?

Recommended Posts

JMinator31    273

Me Too. I started programming with DirectX and C++, learning mostly from tutorials and examples from different places on the internet, and some other tools and languages this year (FYI, I'm 14 right now). And right now I'm working on a (or something similar enough to, or able to speed up any DX 9 Apps I might want to make) Game Engine. And yes of course, I'm still learning what a game engine should be like and how it should be made. Right now I'm still struggling with Mesh Animation, Particle FX (might have made a small mistake somewhere) and the more advanced concepts of 3D transformation, Physics and Mathematics. I also use OpenGL (and I've actually made a 3D app for someone, and gotten paid about $150 in US currency). And I work on an FPS game in Unity3D (Using a tutorial) from time to time.

Share this post


Link to post
Share on other sites
JMinator31    273


I am regularly ( sp ?? ) ignored by companies even if i have a degree in engeneering electrhonics and have been coding program for 20+ years.

The shift in the industry is totally Unity driven, i'd say that someone with a fair amount of Unity and c# experience might get a better job than someone with a degree , i regreted wasting time and money on my education, sad but true

Ummm, you have probably already been asked this but... Have you tried becoming an Indie developer? Or learning how to use Unity3D and any of its associated scripts (seriously its not that hard!).

Share this post


Link to post
Share on other sites
studentTeacher    1077

A short story of my own:

I began in Python with my schooling, surprisingly my intro course was heavily graphics and gaming based (I'm a mechanical engineer anyway; computer graphics is my hobby). We used a nifty package to do the graphics, so creating 2D games was pretty simple. From there, I worked on software rendering for a while in Java and then C++, before reaching it's limits after about one year of software rendering of 3D geometry, and switched over to openGL. I enjoyed this decision I made; I learned a lot of the mathematics and theory behind most basic techniques in computer graphics, and I tend to do CPU techniques when I learn something new before porting it over to the GPU. ALso, the books I have built up have definitely led to a beautiful, compact library that I can constantly reference when working. Currently I'm working on a voxel terrain engine in C++ and openGL! :)

 

Not considering my first python course (which did not teach much of anything to do with computer graphics), I am completely self-taught. I feel like I get more out of it that way; I'm not forced to learn it; I learn what I want when I want!! I do hope to get to learn how to read others' code...and maybe a little bit of team experience when it comes to coding...but I don't regret any decision to keep this to a hobby.

 

--ST

Share this post


Link to post
Share on other sites
CDProp    1451

Cool stories. I will try to be brief.

 

I am a self-taught programmer. In 2006, I got my first programming job, as a game programmer. I mostly worked on tools and gameplay programming. Toward the end of that job (the company unfortunately folded in 2009), I dipped my toe into some basic graphics programming (wrote a fairly nifty water shader for an XBox 360 game we were working on).

 

In 2009, I landed a job at a company that makes training simulators. My job title is Graphics Programmer, but in practice I do a lot of programming that is only peripherally related to graphics. I've spent a lot of time, for example, writing UI code for our level editor (dragging and dropping items into the scene, picking, rotating and moving objects, etc.). Obviously, there is some 3D math involved with picking and manipulating models, but it is not what most people would call "graphics programming" per se. I was merely chosen for those tasks because no one else in the company really had the skill set for it.

 

As far as actual graphics programming is concerned, we use OpenSceneGraph, and so there is constantly this layer between our code and OpenGL. However, I have found it extremely important to know OpenGL in order to get effective use out of OpenSceneGraph. My colleague and I have been able to somewhat modernize the visuals for our product, adding in things like normal mapping and deferred shading. However, my colleague and I are at about the same level, in terms of experience with graphics programming, and so neither has the benefit that Hodgman had of learning from someone vastly more experienced than ourselves -- a benefit of which I am tremendously envious!

 

Then again, I have learned so much from Hodgman's own blog, and for that I am very thankful. =D

I never did obtain a degree, but I started going to school for Physics in 2010 and I'm a little more than halfway through now.

 

Edit: I meant MJP's blog. I learn a lot from both of them on the message board, though. 

Edited by CDProp

Share this post


Link to post
Share on other sites
debugdesign    118

I do 2D stuff... No formal qualifications, i just love it... I started doing 'worms' animations on Deluxe Paint... got into web design, then did games on the side and now I have an online store selling 2D game assets at http://www.graphic-buffet.com

 

I still have a 'proper' job but I love doing game graphics!

Share this post


Link to post
Share on other sites
hgoel0974    553

Truly neat topic!

I'm a completely self taught programmer and well I can't possibly have a degree anyway because I'm just 16, I'm in my last year of high school. I am mainly a C# programmer although I can also work with Java,C,C++ and Python.

 

I started learning programming about 5 years ago, I was into playing a lot of video games, then I got GTA San Andreas which wouldn't run on my computer because my machine was too old, it made me wonder why it wouldn't run, this led to research (on a dial up connection) I found out about BASIC and started doing some basic (pun intended) programming in it, however I didn't find it to be powerful enough for what I expected so I stopped, then a few months later our computer teacher began teaching us the basics of C++ (which never really worked out because he didn't know much himself, he just used the cprogramming.com tuts). This peaked my interest in programming again, I tried C++ but couldn't make much of it but I ended up discovering C#, I bought a few books about it and learned the basics, I go Visual Studio only to find out that my computer could barely handle it, this slowed my development a lot, eventually I gave up and went back to playing games.

 

Then I discovered Midtown Madness mods, I learned how to use zmodeler to make my own mods, soon I moved on to blender, then when I visited my sister at new york, she gave me her laptop which was quite recent (it's only about 2-3 years old), finally able to do things faster, I went back to C#, I quickly got used to it and started programming things on a daily basis (one project a week however most are still incomplete), then I got involved in the PSP hacking scene, it was a bit hard to get the basics of things like MIPS assembly (not to mention the fact that C/C++ were still incomprehensible to me) but I managed to figure everything out, then I got a PS Vita and a few months later PlayStation Mobile was launched. PSM  used C# which attracted me to the platform, that's where my 3d graphics adventure began. Along with a friend, I created Aperture Studios and we are currently working on our first title (and a 3d game engine) and very recently (infact a few days ago) I gave C++ a go again to find out that I properly understand everything!,

 

Anyway here's a video of what we have so far:

 

[media]http://www.youtube.com/watch?v=Gs-iczLGYBY[/media]

Edited by hgoel0974

Share this post


Link to post
Share on other sites
NicoG    172

I am.

 

I did not study. I had a large interest in cross platform way of doing games and graphics. So I stumbled upon OpenGL.

I just started learning it over Nehe. Then with the years, I expanded my knowledge and so on and so forth.

Was pretty exciting, but I am nowhere as good as professionals. 

I can do quite some stuff with OpenGL though :):

Share this post


Link to post
Share on other sites
obhi    196

I am a self taught programmer.. i used to go to internet cafe's to learn about D3D (DX7-8) cause i had no internet at home. I got my first computer when I was 16 and coded up a car racing game using the Turb C++ and VGA drivers. My interest on computer games has been on and off, until I started working full time on CAD and a 3D rendering engine for a reputed french company.

 

Having said that, and trying my own bit to build my own graphics engine, I still find the total amount of work for a single developer extremely overwhelming. Although not impossible.

Share this post


Link to post
Share on other sites
CatmanFS    199

I started working with graphics back in 07 working on the Nvidia SDKs and Maya 5. Moved up to programming a decent graphics engine that i'm pround of. No formal training, outside of highschool programming classes.

Share this post


Link to post
Share on other sites
jmoak3    138

I started teaching myself C++ when I was 14 (poorly!), and then learned QBASIC, where I made my first game. 

I went back to C++ with a vengeance, and "got" it.

Then I moved on to modding HL2 and experimenting with DirectX 9.0c. I bought a book by Frank D. Luna called "Introduction to 3D Game Programming With DirectX 9.0c A Shader Approach", and I convinced my high school to let me do my own thing for two hours a day ^_^

So, I spent the next year going through graphics books and doing small projects. I came to college, and found myself burnt to a crisp. I took a year off of graphics because I simply couldn't focus on any of it anymore.
As soon as I was able to stare at graphics code and not get a foggy head I dove back into it, and now I'm a second year majoring in CS (learning about things that aren't graphics grrrr) doing my own personal projects.

Overall the experience feels so rewarding. I can't imagine not having the nights of staring at a book trying to understand how to make things appear on my monitor.

Share this post


Link to post
Share on other sites
newtechnology    1955

I'm a self-taught C# and C++ programmer. I've been using computers since age of 8 and I started learning programming at the age of 13. At the moment, I'm 15 and I'm very much comfortable with C++ and I plan to stick with it. Of course I've not covered every aspect of the language and I'm still learning it. 

Edited by newtechnology

Share this post


Link to post
Share on other sites
cdoty    733

I wrote my first game on the ZX Spectrum some 29 years ago. My friends were busy swapping cassette games to try and beat each others' scores and I would borrow them to amaze myself at how they programmed it.

I then wrote several games on the Amiga, even publishing one on licenseware which had great magazine write ups (still got the Amiga Format mag somewhere).

Then onto PCs with a very early version of DirectX, which was mind-blowing compared to what I'd used before. Always self-taught in the early days, but now I just seek the assistance of the friendly experts on here. I work in an investment bank for my day job and it's nowhere near as much fun.

41 now and still tinkering with my engine and enjoying it as much, if not more, than when I was burying my head in the Amiga Hardware Reference manual trying to get a sideways scroller working in DevPac assembly in the early nineties.

For those younguns among you who think it's just a phase you'll grow out of.... It ain't!

 

I've followed about the same path, except for using a C-64 instead of the Spectrum. I used to copy pirated games to check out the demos I don't think I played most of them.

I also developed a few demos of my own, I loved raster (and later copper) effects. I also created a nearly complete BBS program that was similar to C-Net.

 

Later I moved onto the Amiga and developed a few demos, but was never able to put everything together into a game. The jump from the C-64 to the Amiga was a huge jump in understanding software and hardware.

 

I moved onto dos and 16 bit consoles, and created more elaborate demos. After reading a few books (Gardens of Imagination and some of the Andre Lamothe stuff) I started to grasp the big picture items needed to put a game together. 

 

After getting a game development job, and moving to C++ as my primary language (everything before was assembly, and some initial basic stuff), I started focusing more on the form and function.

 

I also finally put together my own engine, and now I'm enjoying the experience of getting it to run on different platforms. Surprisingly enough, I don't hate the layout of the code. But, I've taken the time to refactor, when needed, or scrap something if it didn't work.

Edited by cdoty

Share this post


Link to post
Share on other sites
Saad Manzur    224

I am also trying to learn directx myself . The path is not smooth. I am doing it as a passion and would love to do it for a living. I have been at it for three months. With no mentor it is really tough. I am a cse student. But don't get the wrong idea. In our country graphics programming is discouraged. And I am really starting to think that I am the only directx coder in my country. I am bothering a lot of people in gamedev.net . But I can't help it . To learn it fast I took up a term project that needs to be completed within 3 months. It involves creating a moving character . None of my teacher can help me and have no idea about it . But I am not ready to give up. In spite of all the discouragements and rude behaviours I am carrying on. Everyone is so fixated on opengl. I would love to get some help on DirectX and other theories of graphics. Currently I am trying to import a skeleton rigged in maya . I imported it but when I apply it in an hlsl file the model just disappears. Anyway trying to debug it with visual studio 2013. If any one is willing to give me some pointers on this , I will be forever in debt.   

Share this post


Link to post
Share on other sites
anttoo    218

Hi, 

 

I'm self taught!

 

Started when I was 13, went to College, and then University, got bored (AKA dropped out), then worked as an accountant..

 

Then decided to start my own software business, which has been fairly successful over the last two years. 

 

I think the best moment of the last two years was when I managed to poach a client from a company who I had interviewed for about 2 and a bit years ago. It was only a small support contract, I think about £150 a month, but if felt pretty good smile.png

 

After leaving university, it was insane how hard it is to get any kind of software work without the degree. I would literally have worked for nothing, and yet larger companies are taking on Univeristy leavers at £15,000 - £22,000 per year.  

 

At any rate, I've decided to use a mix of people. We have one experienced developer,  my self (half sales, half server programming), and a 17 year old apprentice.

 

I tell you what though, the apprentice works twice as hard. I don't think any medium to large companies in the UK are taking on younger kids to program, and I think it's the best way. Their cheaper, they work harder and they respond positively the more responsibility they get.

 

If you can harness that drive at 16/17/18, I think my company can make some amazing software engineers. 

 

They say it take 10 years to master something, and fairly often you see amazing 17 year old dancers/pianists etc. but programming isn't seen in the same light. Most of the people who applied for the apprenticeship had no experience on the CV, but were 5/6 years into programming.

 

I'd encourage any other software houses on here to have a think about it!

 

To get back to the question:

I think when you first start learning computer programming, it's very difficult to extrapolate into other languages. It takes a while before you can spend half a day with a new framework/language and just start writing code. That's one challenge.

 

The second, and most important is the Business side. It's so much more important. You can be the greatest programmer alive, but without any business sense, or knowledge your doomed to stay on the lowest levels. If you can't speak to a client and know business jargon, make business suggestions etc. you really can't progress beyond being intelligent labor.

 

I know many computer programmers, those that are successful, are good communicators. As much as we spend a lot of time translating our thoughts into programming language, that code has to be translated again to English/French/German to explain the concept to customers/players/users or else it's pointless. 

 

It's like anything, if you can't communicate your ideas, there's little point having them.

Edited by anttoo

Share this post


Link to post
Share on other sites
realh    346

Hopefully my story is strange enough to be interesting.

 

My first computer was a ZX81, but I didn't really get into programming until I got an Acorn Electron in my teens, which had a better version of BASIC than any of its rivals and an inline assembler, which was a huge help. I wrote a few games in a mixture of BASIC and assembly that were published in Electron User magazine and helped reduce my student overdraft. What I liked about those days was that you could learn everything you needed to know about the computer in just 3 books, and one of those came with it.  And I miss looking forward to the magazine through the door every month instead of reading all the computer news online.

 

I made the mistake of studying Electronic Engineering at university, instead of Computer Science or Mathematics. It did give me my first experience of C though. I remember reading C For Programmers by Leendert Ammeraal  in one evening, and being one of the only people to come up with something approaching working code for that course project. At the end of my course I fell ill with ME/CFS, anxiety and depression, and I've never recovered enough to get a proper job.

 

I managed to scrape enough money together for a used Acorn Archimedes a year later and eagerly learnt ARM code, but I knew C was the way to go and eventually managed to afford a hard drive and the official C compiler - the RISC OS port of gcc was considered inferior in those days.  The first complete C program I wrote was Bombz, a free Sokoban-style puzzle game.  I also wrote some PD non-game software and tried to earn money by writing some educational software etc, but the platform was dying and that avenue was a big failure commercially.

 

I had to upgrade to a PC in 1998, but I hated Windows, and still personally use it as nothing more than a glorified games console, so I became a die-hard Linux user.  I didn't do much game programming for a long time, except to rewrite my Bombz game in python with a graphics makeover.  Then mobile gaming sprang up and now great things are happening in Linux gaming (Steam) so there might be an opportunity for me after all. I did yet another rewrite of Bombz for Android (Java with OpenGL ES 1.0 for rendering).

 

Now I'm writing a game loosely based on a very addictive old Archimedes game, but with 3D rendering.  I've chosen to use OpenGL (ES) directly instead of a ready-made engine so that I can do all my development on Linux with familiar tools and also support Raspberry Pi as well as PC Linux, Windows and Android.  Hopefully iOS and Mac too one day, and if Mac OS X isn't too awful I might consider using Unity3D :-).  I've had a quick look at jMonkeyEngine and three.js, and although I discounted them on portability grounds, they helped give me an idea of the typical architecture of a 3D engine.

Share this post


Link to post
Share on other sites
racarate    320

so many different approaches...  i am a beginner but i want to drop my two cents, esp. considering university.

 

i had a couple of pascal classes in high school... but our teacher mostly showed us toy story and took smoke breaks.  there was one student teaching himself graphics programming but it was greek to me.  this was around the time of doom ii, so it must have been mode 13h awesomeness.

 

in college i chose to study computer science partly because i wanted to be in a band (i know, right) and figured that science-ing computers was something i could do on the side to support my music...  kind of like waiting tables and acting.  of course, that was infinite dimensional nonsense.

 

the other part of it was a picture of a programmer i saw in next generation magazine...  it was the issue about working in the industry.  if i remember correctly, the programmer section showed two guys from sega and a bunch of big crts and cigarettes.  i didn't know anything about money so i asked my mom if they listed pay was any good and she said yes.  so, the only magazines i read in high school were guitar world and next generation and i guess i combined them into a psuedo-realistic plan and moved 600 miles away to see what would happen.  now that i am thinking about it, i wonder whose sega office that was... would be funny to meet them.

 

college was a disaster.  i was so unprepared for the rigor of an engineering program it wasn't even funny.  i was, however, prepared to live in a big city and really squeeze the juice out of (non-academic) life.  i took one computer graphics class and spent so much time dealing with memory access errors that i didn't really learn anything about the topics at hand, bicubic patches and subdivision being the only two i really remember.  i also had a game programming class where i did approximately nothing (found sound effects) though my group's game got chosen for the IGF.  my name got removed from the credits because i was such a horrible slacker.  i failed out of college twice, the second time because i got a 'D' in game programming because i slept through the final.  

 

while i was bumbling my way to a 1.9 gpa i often thought about switching majors to psychology or joining the army but i was stubborn and didn't make any changes.  i liked my non-academic life, playing a lot of guitar and watching a lot of milkdrop.  i didn't know 

 

after i failed out the second time (five years in, one class short of graduating), i worked at a mexican restaurant and then a pizza restaurant.  out of nowhere, a friend of a friend was looking for somebody to help with a mobile game startup.  basically, they were making an excitebike clone for motorola flip phones (J2ME).  we had no idea what we were doing, but i did make a little bit of sprite art and use mappy.  i also blatantly copied a scrolling tile engine from some fly-by-night J2ME book.  the highlight of that experience was calling up cingular and going into what felt like the lion's den to show their head of game acquisition our masterwork, JET SKI CHALLENGE.  in addition to crashing in the middle of the meeting, the game was also pretty bad.

 

after about two months of that, we ran out of money and gave up.  unbelievably, that experience, that big ball of mistakes, was enough to land me an entry job at a television company working on retro game emulation.  i knew approximately nothing about emulation, except late nights spent with nesticle, but they were willing to teach.  i started out doing rote plumbing work to get other people's emulator code hooked up to other people's gamepad code.  things really blossomed when they hired the author of the main N64 emulator...  he wasn't a graphics specialist but knew all about the processor memory internals and i thought that was the bee's knees.  meanwhile, working on other people's games had given me the bug to get my own graphics on-screen.  at the time, gba homebrew was really popular so i read the great TONC tutorials, bought a multiboot cable, and got the celestial seasonings bear flying around the screen on the real hardware.  the real hardware!  i can still remember how that felt.  i tried and failed to learn graphics from NeHe and drifted back towards playing music.  i was still doing neat things at work, learning about cps2 video hardware and how the music code picks songs in frogger (seriously) but the emulator company folded, and i was back at square one again.  

 

i spend the next six months learning about idleness (literally, there are books on the subject, the situationists in particular were great) and trying to do the most impractical things i could think of.   i went to coffee shops and practiced topcoder problems, i took long walks nowhere, i spent a lot of time wandering around libraries.

 

another emulator company popped up by by that point i realized that i want to make movies, not fix vcrs.  at the urging of my roommate, myself and two others started a game crew... one was an artist and one was a programmer who liked the tools/infrastructure side of things so i mostly did gameplay and physics code, powerup deisgn and level design.  that was a ton of fun, and i started to use LOVE2D to make little demos.  sometimes arcade games, but more often what i called "mind portals" and my girlfriend called "screensavers"... silly approximations of the two-dimensional vfx i loved, just a grab bag of trig functions and color motion.  i eventually tried to make a plasma, but got advice (from eddie lee / illogic tree, whose work i had just discovered) that maybe it would be faster if i didn't use lua (i was drawing a 1x1 rect for each pixel).  so i was goofing around with graphics on the side while we worked on our ios action games.

 

anyways we fell apart, one to art school and one to salary jobs, and i was at the beginning again again again.

 

but, that's where i am now...  i am striking out on my own.  on one hand, the thought of working on not my own ideas makes me want to vomit... on the other hand, i am envious of all the stories of great mentors and growing (and typing this out made me realize the boost of working with the emulator authors).

 

i love art and motion and these crazy light-machines...  i think ryan geiss hooked me for life... i'm so far away from expressing what is in my head but i am going to keep on keeping on.

 

going forward, i am going to try to learn the hardest thing in my purview.  because there is likely something hard beyond that that i don't know about  and i think that people rise to the challenge, no matter what.  personally, i think i'll always be in the bottom ten percent of the pool but if i keep moving from one pool to the next it will sort of work out.  i guess practically, i want to avoid internet tutorials and blog posts... introductory books...  anything that seems accessible.  i am too old late to the game to be learning with kid gloves.

 

anyways, long story short, i didn't start programming young and i didn't do well at college and my projects are sort of hit-or-miss so far but i feel like i am living in a magical dream world, even (especially) when nothing is making sense and the screen is black and why isn't this thing...

 

 

 

 

 

 

 

 

p.s. i loved the talk about clicking every file in windows... that feeling, so similar, used to stay up at night and dial random 1-800 numbers to see what was on the other end...

Share this post


Link to post
Share on other sites
TheOrestes    282

Hi,

 

I am a self taught Graphics/Shader programmer. In India, we don't get luxury of having university courses dedicated to Games or Graphics. By the time you get good at math, you don't even know why you are doing Laplace's transfom & where it is used in pratice... Its just the fact that "How is this done?" made me take up graphics programming & C++ to learn new exciting stuff ...

 

My Story so far ...

 

1. Get overwhelmed by seeing what people have been doing, wondering how they did it

2. Study, take each topic at once, there is a huge mountain to climb & you always start at the base

3. Get more overwhelmed as each day passes by

4. Study more, implement stuff, keep learning

5. Even more overwhelmed

6. Tell it to yourself that one day you will reach there ....  (After all , this journey has been awesome knowing there is still so much to learn ! )

 

Cheers.

Share this post


Link to post
Share on other sites
JonathanLyons    224

I am a self taught programmer. I started by following tutorials (text based), but usually they are quite boring so I usually quit quickly. Then I followed an extensive video course, which went very in depth, although I didn't understood much it still taught me the basics. I learned the most from messing around with code from others. Just experiment! that would be my advice!

Share this post


Link to post
Share on other sites
Fredericvo    1765

I'm totally self-taught.

 

Learnt BASIC on a C64 at age 9, then a bit of 6502 ASM after 12, toyed a bit with sprites and tiles but never made a game.

Later I had an Amiga 500 and did some 68000 ASM, toyed with the copper and blitter a bit but also never made a game.

Didn't program for a long time after Commodore went bust and only had my first PC, a Pentium III 667 Mhz at age 23 but never programmed on it. It's only much later, about 2 years ago (I'm 37) after self-teaching myself calculus II & III and differential equations and linear algebra that I realised I was finally able to understand what went into 3D games and decided to give DirectX a shot.

I learnt C, C++ and did the Rastertek tutorials, all of them, after briefly learning DX 9 and the FFP first. The rest is history :-)

Share this post


Link to post
Share on other sites
Ryokeen    848

Self-taught, learned programming(a bit c,c++,delphi) out of boredom and well wanted to mod Half-Life back then^^

Quckly got into OpenGL and such mainly because i like to recreate things i see without knowing how it's done :D

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now