• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
ISDCaptain01

Anyone here a self-taught graphics programmer?

109 posts in this topic

My first hardware accelerated application was a MS Word document!  No kidding!  Before I get to that, let me tell the story of learning to use opengl in basic, assembly and then C, and yes in that order.  In early high school I played around a lot with qbasic and was writing simple wireframe 3d mazes with horrible performance.  I didn't have a C compiler, so I started playing around with debug.com, and started writing little assemly language routines to speed up certain slow things in basic.  Debug sucks, it can't even do labels, you have to specify the exact jump address. You literally have to write JMP 0x322 and hope you put some code at 0x322.  So I wrote a qbasic program that reads in assembly source with labels, strips them out, runs it through debug with dummy addresses (JMP 0x1234 or whatever).  It looks at the redirected output of debug to see what address the assembler said it was using for each line, figured out the labels, and then reassembled it a second time.  It was so cruddy.  While I was doing this, I also got involved in a high school robotics program called Botball, where you programed lego robots in a language called Interactive C.

 

Back to graphics.  I wanted to try using GL, but like I said, I didn't have any compilers.  MS Word 2000 had a built in version of VB, called VBA.  It turns out VBA can load and run functions from DLLs (scary), so I wrote a word VBA macro that loaded system32.dll, and called the function to get the application's window handle.  I played around with GDI, and got to draw dots and lines onto the word document window using only the win32 api.  So then I loaded opengl32.dll.  After crashing word several times, I managed to get a textured quad on the screen, put there by the video card!   I then shortly discovered that the Windows DDK for Window 98 came with a FREE COPY of MASM.  So I started writing programs in the psychotic mix of dll's written in MASM that were loaded into MS Word's Visual Basic.  A teacher at high school saw what I was doing, and gave me a copy of Borland C++.  I was able to apply what I learned about writing PC programs in MASM and Basic to what I learned in Botball's 'Interactive C' and from there everything took off.  After I finished highschool, I did EECS at UC Berkeley, and now I do software for a living.

 

I'm so glad visual studio has free editions.  I would have free loved visual studio as a kid.  Ubuntu would have also rocked.  Kids today can access this stuff so easily now.

That's the difference between you and me: I learned programming to let me make video games so I can put my ideas in an interactive media. You learned it simply for the joy of discovery and making software work. As a byproduct, I've learned that, too, but I don't know if I will ever get into as deep passionate as programmers like yourself. It's just funny that I'm learning the same stuff that others in the game industry take paths in learning, anyway, so I suppose I may be as passionate as people like yourself. I sometimes think I'm just a man using programming as a tool to get something done, and I believe that to be the case as it's a means to an end.

1

Share this post


Link to post
Share on other sites

just a hobby?

Thought I have a degree in CS and got in touch with OGL there, I really do only learn the basics of graphics programming at university. Never got the chance to learn it as teen (amiga wasn't the 3d work horse), but later on loved graphics programming and learn it by internet research and reading lot of articles.

 

I do it as a living for tri-Ace, where I work on this engine, primarily on graphics and optimizations.

blink.png Really great work !
 

1

Share this post


Link to post
Share on other sites

LONG time lurker, just figured I'd post here to say that I am/was. I actually learned quite a bit online, especially from people's forum responses and guides (Even from L. Spiro, really).

 

I started making a pretty neat engine that incorporated actual 2d and 3d technology (think a mix of raycaster that swapped out to a voxel-like engine), and then I was offered a job doing high load database transactions for a backend payment processing company (Services ADP, Wells fargo, Etrade, Bank of america to name a few), working on extremely high performance databases in the performance lab, and took that.

 

Now I'm a Chief technical lead for a multi-million dollar piece of software, and I'm only 24.

 

I guess what I'm saying is, don't try to just be a graphics programmer, try to get your feet wet with general programming concepts, because quite frankly, working as a non-game programmer is going to pay much more, and give you much better hours.

 

As for a degree, I got a BS in CS, which helps getting an entry level job a LOT. But if you're good at what you do, then it doesn't really matter. Also, as soon as you get 1/2 a year of experience under your belt, no one cares about your degree.

 

My boss (The CEO) has a Masters in business from Harvard, and he didn't care at all that I have a B.A in computer science from Devry. He cares that I can get the job done well, and direct the development team.

2

Share this post


Link to post
Share on other sites

We soon hit the limits of this programming language, and via some strange channels found AMOS, a basic dialect specifically for games. What an enlightment it was! We coded a lot of crude games for it, one of it we even tried to sell as Shareware, only to upload it for free after a few months and <10 units sold. Does that make me indie?


And if anyone wants to see what AMOS could do back then, here was my licenseware release (someone somewhere obviously liked it enough to post a video of it on youtube!):

http://m.youtube.com/#/watch?v=_uZVQmJaqeI&desktop_uri=%2Fwatch%3Fv%3D_uZVQmJaqeI

People have stated that I sampled the yelps and shrieks from IK+, cheeky gits, it was actually from a famous film, no prizes for guessing which one..... Am I allowed to divulge that now??
1

Share this post


Link to post
Share on other sites

Yes and no.

 

I've got a formal mathematics education (and degree to prove it) but I've never had any formal programming/computer science training.

 

To be honest, the maths is the tricky part, you don't need to be able to do it, you just need to understand the concepts, once you've got that down the code itself (excluding optimisation) is relatively easy.

1

Share this post


Link to post
Share on other sites

I am self taught as well when it comes to graphics.  I started about 2 years ago learning OpenGL, just by reading books.  Books and experience are really the best ways to get into graphics programming.  I'd say the hardest part for me was the mathematics.  I hadn't used linear algebra or calculus in years, and all of the sudden, it's taken for granted that I know how to solve a system of linear equations or integrate a function across a hemisphere.  So it takes some time to get back into that mindset, but once you do, it all starts flowing back.  

 

I am now in the process of creating a vector-based map application for my job using OpenGL ES on the iPhone, and I am developing a game and a level editor in my spare time using DirectX.

 

Some of my favorite books are:

http://www.amazon.com/OpenGL-Shading-Language-Cookbook-ebook/dp/B005GV32H6/ref=sr_1_2?ie=UTF8&qid=1359742043&sr=8-2&keywords=opengl+4.0+shading+language+cookbook

http://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228/ref=sr_1_1?s=books&ie=UTF8&qid=1359742126&sr=1-1&keywords=frank+luna+directx+11

http://www.amazon.com/Real-Time-Rendering-Third-Edition-ebook/dp/B007COYODQ/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1359742054&sr=1-1&keywords=real+time+rendering

http://www.amazon.com/Mathematics-Programming-Computer-Graphics-ebook/dp/B0051GJIRO/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1359742092&sr=1-1&keywords=3d+mathematics+for+computer+game+programming

http://www.amazon.com/Real-Time-Collision-Detection-Interactive-Technology/dp/1558607323/ref=sr_1_1?s=books&ie=UTF8&qid=1359742104&sr=1-1&keywords=real+time+collision+detection

 

These should more than get you started in the "3D world".

0

Share this post


Link to post
Share on other sites

My first computer was later than most, in 1997. My parents were too blue-collar to have ever needed a computer in the mid-80s to late 90s so mainly it's been PC-based architectures for me :)

 

I have self-taught myself C++ and C# programming in general, starting in 2005, and eventually gotten more fond of doing more graphics programming. Prior to that I was making web pages in HTML and PHP. I actually got my Bachelor's in Art, and specialized in electronic visualization (my current job title is website developer). That said, I did take some CS courses, but it wasn't enough for me to get a minor in it, and I had already spent almost 6 years in college by then. It did help me fully understand object-oriented programming.

 

The programming journey has been an on-and-off-thing for me. Six years ago I picked up OpenGL and found a lot of intermediate-advanced topics overwhelming. I made a simple 3D pong and abstract space shooter, and then went back to 2D graphics. Two years later I tried out DirectX and got farther ahead this time. My newfound knowledge in object-oriented programming made things easier. I finally built a small engine (or should I say, framework) with which to load models and textures with and it used my .obj parser. 

 

After that I decided to delve into a new language. For me the language of choice was C#, as it was supported by XNA and set out on a goal to get a game on Xbox (which is still ongoing). Things picked up a lot since then. Although XNA was higher-level than native DirectX, it let me focus on learning and applying more complex features, and currently working on an engine alongside a game that uses it.

 

It's still a tough road ahead of me. I didn't take any classes on multi-variable calculus, statistics, and whatever linear algebra I had to understand, I picked it up along the way. A lot of technical papers on rendering techniques sure sound interesting, but half the time the math goes over my head. I'm not sure exactly how I will enter the game industry, if at all. I would like to get a C# programming job, but breaking into a new language professionally feels a lot like getting your first programming job. They usually already expect you to have done it at a previous job. Closest I got was for a junior C# Unity programmer job, but I lacked enough experience for it.

 

Also, despite my web profession, I don't really do anything with Flash or the newer real-time web APIs like WebGL. Perhaps down the road I will try to marry the web programming and game programming realms in some way.

0

Share this post


Link to post
Share on other sites

My degree is math with a minor in computer science. I fell in love wiith graphics programming when I was doing simulation work for a defense contractor. I started off using DirectX and learned OpenGL on my own. I am completely self taught, with a lot of help from these forums. I never had a mentor so I am always wondering if what I did was really the correct way to do it. You will have to get used to doing a lot of online searches for tutorials/examples. The graphic APIs (DirectX and OpenGL) move at a fast pace. I am in awe of people who are able to keep up with it all. I was in gaming for 12.5+ years and now I am back to simulations.

1

Share this post


Link to post
Share on other sites

I became interested in programming from a lab manual on how to build and program a Z80 (spectrum) computer/embedded system on my engineering course. Later I took a course on graphics during my CS degree, however 90% of what I learned about games and graphics was self taught. I had to do a lot of trial and error to overcome problems and simple errors in code, I actually have a good mathematical foundation - although putting it into practice while learning C++ was a problem, because it was hard to tell at first whether the bugs were caused by my own math, a bug in the code, or a crappy driver. So I froze the real math out of my head until I had improved as a programmer, then later started to apply myself to solving math problems again (and the extra calculation work helps a lot). My current job as a gardener pays peanuts and is 10x as demanding 1/10x as well paid as working as a programmer was.

 

0

Share this post


Link to post
Share on other sites

No studies for this dumbass. At least nothing game programming related. Like many here, started screwing around with QBasic when I was 14 or 15, but quickly replaced that with Delphi after I felt in love when seeing Delphi on school. My dream was to be able to make a Final Fight like beat 'm up side scrolling game. Never managed to make that one unfortunately, but along the way I picked up a lot from OpenGL examples, and later on shaders.

 

Although not working in the games industry, I became a programmer for a living, mainly doing industrial and vehicle applications. Not exactly comparable with writing game engines, although those years of experience certainly add up in approaching things professionally. You'll never be able to learn "everything" and do things perfect, but the key to success is just practicing A LOT I guess, and following your heart. Currently making a horror game together with artists in my free time.

0

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