Right Choice of Subjects? (About to choose College/A levels)

Discussion about everything. New games, 3d math, development tips...
devsh
Competition winner
Posts: 2049
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Right Choice of Subjects? (About to choose College/A levels)

Post by devsh »

Well as some may know I am 16, and in the UK I need to choose my A levels. I chose Maths, Further Maths, Physics and ICT which are 4 really easy subjects for me. Some time ago my big dilemma was should I move to a crappy college which offers Computing and do that, while suffering the worse standard of teaching of the other 3 subjects. Now I have a big question to all of you who are actually earning money from programming games or computer graphics and are happy with their job so far, how did you guys get there? How would I get into making next-gen games as the graphics programmer of a team working on games like BRINK, Prey, Frontlines: Fuels of War, Illfonic: Nexuiz, Portal and other quickly licenced UE3/Id Tech/CryEngine/Source games. Not major titles like Gears of War, CoD etc. (to get into that I'd have to be in my mid 40s ;) with shitloads of experience )

The part of Uni I am looking forward the least is learning directX which will drive me mad because of my deep dislike of having to use windows, fuckoff big SDKs and a different way of programming.

What I would hate to do is query databases, become a network admin or write some pointless C++ applications to do with finance or economics. I would commit suicide by seppuku if I got stuck doing that my whole life, business ICT is my nightmare. This is why I am really anxious to guide my life down the right path to avoid these detestable jobs.

Because I love OpenGL and the (thank god) trend of windows loosing it's market share (which I remember being 94-5% when I first joined the forum and which is dipping below 85% now), I would love to program for Mac OS X and PS3. I think I would be quite competitive to the majority who learn directx and never touch opengl, especially now that many games like WoW, GTA IV, Medal of Honor, Assasin's Creed and I even think CoD get ported to Mac and there is going to be a growing need for OpenGL programmers.

My most loved tasks are writing shader based renderers (global illumination, different lighting renderers, alpha rendering) or precomputation (grass generation). I think I am much less skilled than most people on this forum in terms of C++ coding, my programming achieves it's goals but its still below average and rarely looks clean (the grass generator being the most commented, documented piece of software I ever written). However I make up for this with my knowledge and use of shaders, I think I grasp the concept of parallel computing/threading pretty well (as evidenced with my grass generator). Ofcourse my goal is to get a grasp on OpenCL to offload highly parallel tasks from the game engine and someday write a hybrid raster&raytrace renderer (still in irrlicht) which i know is possible because of the OpenCL OpenGL interop.

I know jobs are scarce and competitive, my career advisor at school tells me she had 100s of kids saying they wanna make video games and no one makes it (however I think these are kids of my early Ninja Star stages with the "l37ts maek da awe5um uber gaem"). She told me you need to be really good, it has me both confident and worried. Despite how arrogant I may talk on the forum and appear, I know I'm not special amongst you guyz. On the other hand, I don't know anyone of my age who has got so much maths bashed in their head, actual graphics programming experience, shader experience, rendering methods experience, can come up with whole rendering pipelines (like I'm doing now for inferred rendering + GI) and actually programmed the advanced fancy shader effects. I know kids my age or younger who can do each thing separately better than me, but not all of them at a decent level. I know many, many able 16 year old students can integrate double integrals, could master solid angles and spherical harmonics... but can they also program an entire radiosity baker?? I'm hoping that I can get exceptionally good amongst programmers by the time I graduate. Or am I in fact, quite good or almost exceptional for my age?

Finally, since I don't want to narrow myself down, but I hate non-realistic graphics and my code is often producing good graphics but slow fps... would it be possible for me to occupy a niche in the employment market where I could cross over programming shaders/pipelines/renderers for both games and offline renderers. For example being a programmer developing some aspect of Blender/Maya or Mental Ray/RenderMonkey or work as a technician at Industrial Light & Magic or work as the render guy on a game or game engine??? All with some nice universal set of qualifications, the same way someone with a computer character animation degree from university could work both in special effects in movies and as a game artist???

I know people like wing64, BlindSide and others would help me a lot with their opinions....

P.S. since we are such a close knit community, I think everyone knows me and I know everyone cause I see the same people here all the time. So do I need to list my work/portfolio to give you an idea of my works?
CuteAlien
Admin
Posts: 10037
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Post by CuteAlien »

Some people get into the game industry simply by having a good demo. Some started as interns with low pay for 3-6 months (I got my first job that way). I also know 2 guys which got in by having worked on good mod's for Quake (could certainly have been any other game as well). Beeing able to code is always the most important qualification and I guess you are on a good way there.

Specific technology doesn't matter that much, forget about stuff like DX vs GL, if you can code for one then you are able to learn the other when you have to anyway. Also don't forget that by the time you get your first job next-gen is already last-gen and you'll have that every few years (but you can always take over things you have learned in the last generation). What you learn in a good college is basics which are useful no matter in which area and for which specific technology you code. Stuff like automata and compilers, software architecture and some advanced math like statistics (and probably a horrible amount of doing proofs).
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Insomniacp
Posts: 288
Joined: Wed Apr 16, 2008 1:45 am
Contact:

Post by Insomniacp »

I would personally recommend getting a well rounded CS degree. Focusing on just graphics limits you to just graphical applications. If you want to focus on one only do OSes because that is an all encompassing subject and knowing how an OS works means you can write any application on top of the OS in a more efficient manner. You can also program in just about any environment, applications, games, web, databases, clouds and anything else you can think of rather than simply graphics based programming. And as CuteAlien stated knowing a specific language is rather pointless because languages constantly change and new ones are developed. Try to get into more theoretical things rather than concrete examples because the examples again as CuteAlien said become out of date very quickly. I remember learning html in 5th grade and php and action script soon after and now they are hundreds of new functions and things you can do with the languages. So learning it was useful but the code back then is useless just the concepts and knowledge of programming is what keeps you ahead of other people jumping in.

I do understand you want to be in graphics specifically but its better to leave many options open. Take classes in it yes but I wouldn't make it my major focus (I will be doing OSes most likely with a bunch of graphics courses mixed in). But the number of extra places and ways your programming can be used the better off you are at getting a job somewhere and if its not graphics based at first thats ok, you can continue or change jobs later when you have more experience or a position opens somewhere.
hendu
Posts: 2600
Joined: Sat Dec 18, 2010 12:53 pm

Post by hendu »

The Brink guys started by doing mods for Q3 IIRC. Nexuiz was a FOSS game done in their spare time, initially based on Id's released engine code, and later got publisher interest. Portal was done by an indie firm that was then bought by Valve.

On Mac, Wow had a GL renderer from Blizzard already, the others you listed use Wine IIRC. PS3/Wii can use GL, but most games go directly for the hardware (libpcm/libgx, IIRC).

OTOH, you have things like Pandora and iPad, which are GLES exclusively.


In short, create a portfolio. Do FOSS and/or mods. If you want specific advice, I'd recommend hacking Tech4 (to be released this fall AFAIK) with some graphical improvements, and then making a good free game on that. Get some free publicity.
devsh
Competition winner
Posts: 2049
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Post by devsh »

@ Insomniacp: I think C++, C and C# will NOT become outdated in the next 20 years. They are still the languages of game development and graphics apps because they offer the most significant performance (ofcourse ASM is better but low level). With C++, C, C#, java and python I think you are pretty save for the next couple of years.
Insomniacp
Posts: 288
Joined: Wed Apr 16, 2008 1:45 am
Contact:

Post by Insomniacp »

c++ was made in 1985... I believe a more powerful and easy to use language will most likely replace it before it reaches 50. Also technology may shift completely in the next 20 years to something completely different than the modern systems and languages... quantum computing and things like that. I don't think any language would be able to fully utilize the capabilities of a system like that in their current states and honestly given 20 years I am sure something big like that will most likely happen to the world of computing.
devsh
Competition winner
Posts: 2049
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Post by devsh »

Nothing will happen... as we see all changes are gradual because of so many people owning computers nowadays, you cannot just simply roll out a new processor architecture like you used to be able to in 1970s because people actually care about backward compatibility of programs.

C is 42 years old, C++ is 26 years old, and C++0x is going to be 1 year old. There isn't going to be a massive change in computing, we are just going to get nice backward compatible languages with an extra feature each time.
CuteAlien
Admin
Posts: 10037
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Post by CuteAlien »

devsh wrote:Nothing will happen...
Wait for AI ;-)
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
devsh
Competition winner
Posts: 2049
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Post by devsh »

AI is at least 50 years away, computers are incapable of learning. To get AI you'd have to replicate 2 billion years of evolution, and right now.... we are at the invertebrate level, or maybe just at the mouse. The computers are nowhere near as clever as lets say cats.
Insomniacp
Posts: 288
Joined: Wed Apr 16, 2008 1:45 am
Contact:

Post by Insomniacp »

They have computers that control airports, airplanes, satellites (dealing with threats to themselves and working with each other to perform tasks such as taking pictures and things like that), cars, UAVs (not remote controlled but fully autonomous ones), even ones that interpret language, analyze walking patterns and common traits for security risks in an airport or a mall. They have auto targetting turrets that determine friend from foe fairly accurately and are able assess the risk a target poses. Sure its not a complete ai but we are able to make machines learn.
I can use a library called opencv and make a computer recognize different cars and send it away on the internet learning every single make and model of every car that has a picture online and it will be able to accurately identify the most probable makes and models of any picture you give it after that.
devsh
Competition winner
Posts: 2049
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Post by devsh »

yes... you can get a system for all these separate. and they all have the sophistication of a dog, a dog can recognise faces. Controlling a satellite or a vehicle is piss easy compared to maintaining balance while running (look at ASIMO, it can merely walk). Analyzing patterns is a lot simpler than learning algebra the human way. Learning the human way is limitless, OpenCV can learn pictures and words. Humans can make a lot more correlations, links and use the data in alot more ways than your silly image recognition library can. The learning of a human is far far away beyond reach of current century's AI. you'll get my point about the AI crawling, the AI doesn't really learn... it memorizes. It doesn't learn new working patterns, think about a human being with just the most basic program in their brain at birth, learning EVERYTHING. You cut out the learning by hardcoding the thread,steering etc, when you get a machine that will learn to fly/drive/talk/recognise objects/do maths the human way/move around/recognise threats and make decisions ALL BY ITSELF, then you have AI.

But have you seen a normal computer which fits in 1m^3 that does all this?
Insomniacp
Posts: 288
Joined: Wed Apr 16, 2008 1:45 am
Contact:

Post by Insomniacp »

I said its not a complete ai I was just saying machines can learn ;)
devsh
Competition winner
Posts: 2049
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Post by devsh »

true learning is still behind the ability of machines, and it will be for a long time. Proper Learning is the ability to program oneself. Rest is memorizing.

Anyway I thought this post is about my choice of subjects, what uni I should go to and what degree should I take.
Radikalizm
Posts: 1215
Joined: Tue Jan 09, 2007 7:03 pm
Location: Leuven, Belgium

Post by Radikalizm »

You should try to avoid making the comparison between modern popular architectures for computers and biological neural nets in terms of processing and cognitive capabilities, both are 'designed' for completely different purposes, and while we have certainly tried to emulate the capabilities of a biological network using a strategy where a central processor (or set of processors) is responsible for all calculations, the architecture will in the end cause the system to perform sub-optimal

I'm not an expert in the field of AI, and it's been a while since I've read any papers on the subject, but the main limitation I believe is the fact that a neural net capable of acting like a human mind would do is so absurdly vast and complex that it's not directly possible to create a hardware architecture able to contain it (yet, Moore's law anyone?)
However, current-generation AIs definitely have the ability to learn, and they are definitely able to solve problems on their own with enough training (just like any organism would need), I've been able to look at different AI studies at a couple of universities where prototypes were built which could do some amazing things just by getting enough training, if that isn't actual learning then I don't know what is

On your original topic, you should never make any assumptions that a certain technology will remain used over the course of time (be it 1 year, 5 years or 50 years), you should always remain flexible in this industry and look at the broad perspective, do not focus on one language or aspect

People have made this mistake in the past only to be surprised whenever their predictions turned out to be blatantly wrong
There is so much research going on within the field of computer science, and breakthroughs which could change the entire view of the industry are always possible, so stay as open-minded as possible
CuteAlien
Admin
Posts: 10037
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Post by CuteAlien »

I guess we'll know in 20 years if we got it :-) Personally I believe it's mostly a problem of calculation power (which is the reason why AI is my main interest - I believe we'll get hard AI soon). But I guess you don't have to consider it too much in your career plans - even if we get AI it's rather impossible to predict how that will influence the world anyway.

Specific languages don't matter so much in the long run (I started out with Basic...). Learning advanced math is far more difficult than picking up a new computer language and has the advantage that you can be very certain that it's never outdated.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Post Reply