Can i get your opinion? [TL;DR post].

Whether you're a newbie or an experienced programmer, any questions, help, or just talk of any language will be welcomed here.

Moderator: Coders of Rage

User avatar
Kyosaur
Chaos Rift Cool Newbie
Chaos Rift Cool Newbie
Posts: 78
Joined: Tue Jul 13, 2010 2:00 am
Favorite Gaming Platforms: PS2,PS3,NDS
Programming Language of Choice: C++

Can i get your opinion? [TL;DR post].

Post by Kyosaur »

If any of you have read my pasts posts, its no secret that im relatively new to the c++. Im going to be going to college soon to continue my learning, but as most people do, i've been doubting my future. I love video games be it making them, playing them, or even just reading about them. My problem comes when i think about MYSELF creating them. I cant help but worry that im making a terrible choice when it comes to going into the gaming industry. The schooling is going to take a very long time (all that time i will be probably be to busy to get a job, so i will likely be living with my parents) and it seems like a very unstable industry.

Does anyone have real experience in the industry that can give me advice? I was looking to skip SDL and try to learn something that will actually be of use in my future, but these damn SDK's cost $10,000+ and i dont think you can get one unless your apart of a team/company. This means on top of my college years, i will have MORE to learn, which i dont think i have the time for (dont want to be 25 and still living with my mom, jobless lol).


I've been thinking of changing my goal to business software development (and have actually looked into the Win32 API). It seems like its a more stable industry, a lot easier, and has decent if not better pay. I don't really mind what i do for a living, as long as it has to do with coding (if it helps, i do have MySQL experience). Is it a good idea to pursue software development?


Regardless, any advice that will point me in the right direction is appreciated (ie. should i learn DirectX, as it seems that if you want a job in the gaming industry, that is needed? Or if you think software development is better, should i learn a multi-platform framework like Qt, or learn Win32/all the other API's?). Im lost when it comes to both worlds / what they prefer lol.


kthnxbye.
Image
houston
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 17
Joined: Sat Nov 27, 2010 7:44 pm
Current Project: SDL_xhtml engine
Favorite Gaming Platforms: PC, MacOS, Linux, iPhone
Programming Language of Choice: Assembly, C, C++
Location: Belfast N/Ireland
Contact:

Re: Can i get your opinion? [TL;DR post].

Post by houston »

Hi Kyosaur and everybody else I'm new here; If software development is what you 'love' doing then I can only tell you to follow your dream of being a software developer because you will excel at the things you have passion for. What I can tell you as a software developer with some 26 years under my belt it's not a easy profession to work in and keep up with, pick your tool's and stick to your guns! I started back in the 80's when gaming was really just being born and it's been a hell of a battle both good and bad. C/C++ is a great choice it's always been around and I'm guessing it will be for quite some time. From a personal opinion if your really new to programming focus on plain C before looking too much into C++ it will help you tremendously in the long run and help you understand better how the machine really functions without all the fat of object orientation. I'm not saying not to learn C++ because that is very important in todays markets, just really put the hard work into the real stuff and not the abstract and it will pay off. There is a saying in this line of work, if it works fix it, meaning things never stand still and are always evolving, it's impossible to make the correct choice but the choice you make you need to also make work for you. Hard work and determination is key and without passion there is only NULL.
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: Can i get your opinion? [TL;DR post].

Post by dandymcgee »

Kyosaur wrote: I've been thinking of changing my goal to business software development (and have actually looked into the Win32 API). It seems like its a more stable industry, a lot easier, and has decent if not better pay. I don't really mind what i do for a living, as long as it has to do with coding (if it helps, i do have MySQL experience). Is it a good idea to pursue software development?
Honestly, I believe this is the way to go. As such it is the path I am taking by pursuing a Computer Science (Software Engineering) degree (as opposed to Game Design & Development, or Gaming, Simulation, and Robotics two of the other closely related majors being offered by my college). I feel like with this degree I could go into game development should I choose, whereas I might find it harder with one of the gaming degrees to be hired for a more general development position.

As for what to learn, everything you've listed in your post seems practical as far as industry standards. There is no need for a $10,000 SDK as you put it, there are plenty of tools freely available to you which you can use the learn the concepts behind software development. The fact that you aren't one of those guys showing up the first day of class (freshman year of college) with no clue what C++, a database, or even programming is puts you ahead of the game at any run-of-the-mill university. Whatever motivates you and keeps your interest in the present will suit your current needs as far as seeking new knowledge goes.

That's my two cents.
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
X Abstract X
Chaos Rift Regular
Chaos Rift Regular
Posts: 173
Joined: Thu Feb 11, 2010 9:46 pm

Re: Can i get your opinion? [TL;DR post].

Post by X Abstract X »

Hey Kyosaur. I'm a first year CS student so I had to make similar decisions just a little while ago.

In my opinion, you should get a 4 year CS or SE degree if you enjoy any sort of software development. If you intend to get into the game industry there's going to be a lot of learning and personal projects on your own time. Some Universities offer elective game programming courses, those can help but they won't teach you everything you need to get a job in the game industry. Worst case scenario is you end up developing business software (earning more money) and coding games in your spare time. Even if you get into the game industry, you might want to leave down the road if you plan on starting a family.

Also, you'll realize that the more you learn about programming, the tools you use don't matter that much and most of them can be picked up in no time at all. With that said, I would personally learn C++ and a simplistic lib like SDL or SFML at first, then move onto OpenGL or DirectX. Don't worry about Win32 API, engines, etc. because those will come really easy once you have a solid foundation.

And you shouldn't get a job while in school, find a school with a good co-op program. I live in Canada but my school places all (no guarantee, but from past years) CS students with atleast a B average and the average salary is 19 bucks an hour. That is a fair amount of money over 18 months of co-op.

Edit: Let me add that business applications will probably not be developed in C++ with Win32 or QT. More likely they will be written in Java/C#/VB. It doesn't matter though, even if you don't learn those languages in school it will be nothing to become competent in one of them over a single weekend if you have a strong programming base.

Good luck.
User avatar
Milch
Chaos Rift Junior
Chaos Rift Junior
Posts: 241
Joined: Sat Jul 11, 2009 5:55 am
Programming Language of Choice: C++
Location: Austria, Vienna

Re: Can i get your opinion? [TL;DR post].

Post by Milch »

Kyosaur wrote: Does anyone have real experience in the industry that can give me advice? I was looking to skip SDL and try to learn something that will actually be of use in my future, but these damn SDK's cost $10,000+ and i dont think you can get one unless your apart of a team/company.
1. Dont just skip SDL!
By learning SDL/SFML, you'll get a pretty basic understanding on how stuff works (rendering wise)
As far as you start making actual games for yourself, programming-concepts are far more important than the actual API.
Or as my teacher always says: "If you know how it works, you can implement it in every language!" (thats also the reason why we only do theoretical stuff with him :roll: )
(Also, SDL was used in Wolfenstein:Enemy Territory afaik)
Kyosaur wrote: This means on top of my college years, i will have MORE to learn, which i dont think i have the time for (dont want to be 25 and still living with my mom, jobless lol).
2. Sure, you'll have more to learn.
But by learning (game)programming by yourself youre learning much more that in the actual class, and so you dont have to study for your programming-class anymore. (atleast not on such a basic level)
Follow me on twitter!
N64vSNES
Chaos Rift Devotee
Chaos Rift Devotee
Posts: 632
Joined: Thu Aug 12, 2010 11:25 am

Re: Can i get your opinion? [TL;DR post].

Post by N64vSNES »

1) C++ was probably the right choice as its industry standard.

2) I'm not sure what SDKs your looking at but most common PC games are written in OpenGL/DirectX. I think your looking into some higher level engines but these engines will be using somthing like OpenGL/DirectX/SFML/SDL/Allegro but it will handle it all for you.

3) From what I hear you stand better chance getting into "software development" rather than "game development" but if game development is what you want to do then I say don't get put off just becasue its harder.
User avatar
Kyosaur
Chaos Rift Cool Newbie
Chaos Rift Cool Newbie
Posts: 78
Joined: Tue Jul 13, 2010 2:00 am
Favorite Gaming Platforms: PS2,PS3,NDS
Programming Language of Choice: C++

Re: Can i get your opinion? [TL;DR post].

Post by Kyosaur »

Im still interested in what other people have to say, but i thought i'd reply to everyone so far. Oh, and there's still a question that hasnt been answered that im sort of stuck on. Since the majority of you think software development is a better idea, should i learn a multiplatform framework like Qt? Im not sure if businesses accept this kind of thing, im guessing here, but i think they'd much rather prefer things like the Win32 API. It seems more professional, and doesnt have a license attached to it (which i have yet to read for Qt, not sure if its very open).


@houston- Welcome to community! I used to code in a language that had a very close syntax and feel to that of C's (It's called PAWN). To learn C after that would pretty much be relearning what i've spent close to 3 years of my life already doing. Thats why i chose to go with the c++ route (My programs are actually more like C with a few classes, strings, and maybe a vector here and there... :().

@dandymcgee (AKA signature eater :P)- Thanks that really took a bit off of my nerves.

@X Abstract X - Thats probably what im going to do (Go for the SE degree). I actually do know a small bit about SDL (it actually is where i learned about OOP. THIS is about how far i got game coding wise.) i just don't think its doing anything for my future other than getting me used to c++ and getting out of the C-ish stage. I was actually considering learning DirectX but i started questioning my future and thinking about software development (im more of a OpenGL-fag but i just dont see much games being written with it. DirectX seems more in demand, and gets more graphics card vendor support :().

Oh i just now am seeing your edit. I really hope that's not true, because i hate all three of those languages. I tried them all before moving to c++ and really just think they're ugly and simplistic. Im not sure how they are speed wise, but i would make a guess that they are also a lot slower.


@Milch - Well i didnt completely skip it, i did learn a bit i just didnt master it (you can see a link to youtube demonstrating how far i got with it in this message). My current problem is that i HAVE theory, just dont know how to implement what i know. It feels like im coding in C++ but have no functions. All i can really do is write my own functions, cant do anything else without a library that dumbs things down for me. Once i learn Qt/Win32 i can just unleash my creativeness and make tons of helpful applications (since it looks like software development is going to be my new goal). So i have to disagree, theory is important, but you can only go so far with it. I don't think it would have been a good idea to continue with SDL as my actual goal for game development was to be working on games for the ps3.

@N64vSNES - I was looking at the actual PS3 sdk. Im not quitting because its harder (well i am in a way i guess) the problem is time. Im already 18 years old and it feels like im going to be a jobless 30 year old living with his mom if i continue with game development. No matter what i will develop and keep my interest in games, but im thinking its best to do it as a hobby for now. The industry seems very rough and unstable, and to be flat out honest, i would hate to put in so much schooling and see my dream fall due to the industry. Business software development seems easier (games are the most complicated pieces of software after all), more stable, and might even pay better. That's why im thinking software development is probably the best route.
Image
User avatar
Milch
Chaos Rift Junior
Chaos Rift Junior
Posts: 241
Joined: Sat Jul 11, 2009 5:55 am
Programming Language of Choice: C++
Location: Austria, Vienna

Re: Can i get your opinion? [TL;DR post].

Post by Milch »

Kyosaur wrote: Once i learn Qt/Win32 i can just unleash my creativeness and make tons of helpful applications (since it looks like software development is going to be my new goal). So i have to disagree, theory is important, but you can only go so far with it. I don't think it would have been a good idea to continue with SDL as my actual goal for game development was to be working on games for the ps3.
Honstely, dont learn Win32!
1. You're restricting youreself to 1 and only 1 plattform.
2. Most of the time you'll write in already existing framesworks (so you don't need that "very basic" stuff - it will already be done unless you startup a new project)
3. Most "business applications" are written in Java/C# (atleast thats what I heard in my internship)
4. Most of the "higher-level" APIs are similar structured


Also, about that part of "what is your goal", don't fix on one thing, try things out,have fun.
You can always have that plan b (software developer) and in your freetime - develop games.
Follow me on twitter!
X Abstract X
Chaos Rift Regular
Chaos Rift Regular
Posts: 173
Joined: Thu Feb 11, 2010 9:46 pm

Re: Can i get your opinion? [TL;DR post].

Post by X Abstract X »

You don't have to choose a fixed career path yet, or ever really. Get a degree and develop games in your free time, if you enjoy it. Anyone with half a brain can develop business software after getting a degree. Don't waste your free time preparing for a career in business software development, it's not necessary.

You still have the wrong mentality. You're fixed on learning a tool that might be in demand in the future. That is the wrong way to do things... just learn to program and solve problems. You will have to learn new things and adapt, if you don't like that idea then you should not pursue a career in any sort of software development.
User avatar
Kyosaur
Chaos Rift Cool Newbie
Chaos Rift Cool Newbie
Posts: 78
Joined: Tue Jul 13, 2010 2:00 am
Favorite Gaming Platforms: PS2,PS3,NDS
Programming Language of Choice: C++

Re: Can i get your opinion? [TL;DR post].

Post by Kyosaur »

Milch wrote:
Kyosaur wrote: Once i learn Qt/Win32 i can just unleash my creativeness and make tons of helpful applications (since it looks like software development is going to be my new goal). So i have to disagree, theory is important, but you can only go so far with it. I don't think it would have been a good idea to continue with SDL as my actual goal for game development was to be working on games for the ps3.
Honstely, dont learn Win32!
1. You're restricting youreself to 1 and only 1 plattform.
2. Most of the time you'll write in already existing framesworks (so you don't need that "very basic" stuff - it will already be done unless you startup a new project)
3. Most "business applications" are written in Java/C# (atleast thats what I heard in my internship)
4. Most of the "higher-level" APIs are similar structured


Also, about that part of "what is your goal", don't fix on one thing, try things out,have fun.
You can always have that plan b (software developer) and in your freetime - develop games.

I know Win32 limits me to only one platform, but its not the only thing i will be learning. The reason why im even considering the gnarly Win32 API is because i personally run windows, and i know its a big percentage of the market. I figure i should knock it out before i get into college, since its pretty complicated (well seems that way, looking up all these data types is a bit of a pain). Im fine with learning multiple things as long as its not a waste of time. If there is no way in hell a company is going to want something, why bother learning it? Thats what my mind set is. I will gladly learn the Win32 API because im sure it will be needed some time. In the mean time i can make applications for myself which kills two birds with one stone; i learn, and can make applications i need.

I'd much rather have the complicated stuff down, and have to learn something very simple like Qt, then the other way around.

X Abstract X wrote:You don't have to choose a fixed career path yet, or ever really. Get a degree and develop games in your free time, if you enjoy it. Anyone with half a brain can develop business software after getting a degree. Don't waste your free time preparing for a career in business software development, it's not necessary.

You still have the wrong mentality. You're fixed on learning a tool that might be in demand in the future. That is the wrong way to do things... just learn to program and solve problems. You will have to learn new things and adapt, if you don't like that idea then you should not pursue a career in any sort of software development.
I know nothing is set in stone, but i think being prepared is always a good idea. The worst thing that can come from it would be that i already know what is being taught to me in college; which would just give me a review course and would hopefully bring a better understanding to what i already know. I have the free time, so why not work towards a career? Like i said i dont care what i do, as long as it has to do with coding (it gets me wet). I will definitely continue game development as a hobby either way.

Sorry i still dont see whats wrong with learning a tool that might be in demand. Dont misunderstand me, im completely fine with adapting for a company. Im not fine with learning something that i will never use (even though i do actually enjoy learning). Thats why i want to start with something that i know will be of use at least some where.


Sorry if there's any grammatical errors, im a bit sleepy/out of it.
Image
User avatar
adikid89
Chaos Rift Cool Newbie
Chaos Rift Cool Newbie
Posts: 94
Joined: Tue Apr 27, 2010 6:59 am
Current Project: small tiny-mini projects
Favorite Gaming Platforms: PC I guess...
Programming Language of Choice: c++

Re: Can i get your opinion? [TL;DR post].

Post by adikid89 »

Kyosaur wrote:Im not fine with learning something that i will never use (even though i do actually enjoy learning)
I am... :lol: I try to learn lots of stuff even though I know most of them will be useless in my career or life in general. If I enjoy it.. I'll learn it! (at least try). But that's just me.

On a unrelated side-note: LOOL :lol: :lol: Your signature rullz! :lol:
My first game C++/SDL Yoshi Combat! = http://www.youtube.com/watch?v=HQ9mMBEWSZg
==============================================================
Image
User avatar
aamesxdavid
ES Beta Backer
ES Beta Backer
Posts: 347
Joined: Wed Jan 07, 2009 8:49 pm
Location: Bellevue, WA
Contact:

Re: Can i get your opinion? [TL;DR post].

Post by aamesxdavid »

Okay, I'm not a programmer by trade, but I'll toss my tuppence in.
Kyosaur wrote:I cant help but worry that im making a terrible choice when it comes to going into the gaming industry.
1st, the gaming industry as a whole is not as unstable as you seem to think it is, and furthermore, not any less stable than any other industry right now.
Kyosaur wrote:Does anyone have real experience in the industry that can give me advice?
In reference to your next few statements: yes. Don't skip SDL, and don't try to learn a specific SDK. Lots of things you'll learn in SDL will carry over to whatever you end up using in your schooling/career, and anything that doesn't will be even worse in any other SDK. That is, the amount of specific things that won't help you in any other framework will be much greater, and you'll be wasting money in the process. If you want to get into something more advanced after learning at least the basics in SDL, at least use something open source, like http://www.ogre3d.org/ And that doesn't include audio functionality, so you want something that will help you for your future? http://www.fmod.org/
Kyosaur wrote:This means on top of my college years, i will have MORE to learn
Not really. There are so many engines and toolsets out there, that it's very unlikely a job would ask you to already know their specific tools. You're not going to be sat in a desk your first day and be expected to write a game from scratch - jobs have a training process.

Kyosaur wrote:I don't really mind what i do for a living, as long as it has to do with coding
Well, then there's obviously no reason to go exclusively after game development jobs, but there's also no reason to omit it from your options. And like I said, it's no less stable than any other field. Everyone going into college wants to place some safe bet on stable industry. It doesn't exist, at least not right now. But if you work hard at software development (of any kind), it shouldn't be too hard to find work.

As I think someone else said, you're looking at this the wrong way. Don't worry about what SDK you can learn, or what platforms you might need experience on. Just learn whatever you can, and find something that you think will help you best to develop things on your own. If you can complete a game with any SDK, you're way ahead of most college students.

Imagine someone looking to go into carpentry. And they ask questions like:
I know screws will come in handy, but should I use slotted or Phillips heads? What about bolts? Are ratchet screwdrivers better than fixed-shaft? I'm worried about using power screwdrivers because they might not use them at the job I get.
Sounds ridiculous, right? Don't worry about the tool. Worry about what you can do with it.
User avatar
Ginto8
ES Beta Backer
ES Beta Backer
Posts: 1064
Joined: Tue Jan 06, 2009 4:12 pm
Programming Language of Choice: C/C++, Java

Re: Can i get your opinion? [TL;DR post].

Post by Ginto8 »

aamesxdavid wrote:
I know screws will come in handy, but should I use slotted or Phillips heads? What about bolts? Are ratchet screwdrivers better than fixed-shaft? I'm worried about using power screwdrivers because they might not use them at the job I get.
Oh no, I only learned about slotted heads! I'm screwed! (pun not immediately intended)

But I completely agree. I've been learning quite a bit about game dev, and I started with SDL. Now, I'm almost done (at least the linux build) with a graphics and windowing library that is built almost completely from scratch, relying only on XLib, OpenGL, libpng and some standard unix headers. I wouldn't have been able to understand half of it without first learning SDL; never underestimate the usefulness of learning something new, even if you can't see its use immediately, because, even if you don't end up actually using it in the future, it will almost certainly help you understand other things.
Quit procrastinating and make something awesome.
Ducky wrote:Give a man some wood, he'll be warm for the night. Put him on fire and he'll be warm for the rest of his life.
User avatar
Kyosaur
Chaos Rift Cool Newbie
Chaos Rift Cool Newbie
Posts: 78
Joined: Tue Jul 13, 2010 2:00 am
Favorite Gaming Platforms: PS2,PS3,NDS
Programming Language of Choice: C++

Re: Can i get your opinion? [TL;DR post].

Post by Kyosaur »

Ginto8 wrote:
aamesxdavid wrote:
I know screws will come in handy, but should I use slotted or Phillips heads? What about bolts? Are ratchet screwdrivers better than fixed-shaft? I'm worried about using power screwdrivers because they might not use them at the job I get.
Oh no, I only learned about slotted heads! I'm screwed! (pun not immediately intended)

But I completely agree. I've been learning quite a bit about game dev, and I started with SDL. Now, I'm almost done (at least the linux build) with a graphics and windowing library that is built almost completely from scratch, relying only on XLib, OpenGL, libpng and some standard unix headers. I wouldn't have been able to understand half of it without first learning SDL; never underestimate the usefulness of learning something new, even if you can't see its use immediately, because, even if you don't end up actually using it in the future, it will almost certainly help you understand other things.
lol nice pun, though i think aamesxdavid's quote was completely out of focus. If anything im worried about what not to learn, for example, i dont need a chainsaw or a soldering iron to do carpentry :P. Though i do get what he is saying.


@aamesxdavid- Im assuming you didnt read any of my responses to people. Im not completely skipping SDL (my fault, bad choice of words) i do have some experience with it. I get that it is a very useful library, but it did nothing for my future, it was time i could be using to learn something that might apply more to what my goal was (Which WAS developing for the PS3). What i meant when i said i was looking to skip it, was that i wanted to move on to something else that would get me even a slight bit closer to my old goal.

Thanks for bringing up the point that companies do training programs btw, that skipped my mind.


Anyways this thread seems to be sort of falling into a repeating pattern, the original point was to get opinions about changing my goal to software development which i think im going to be doing, but it seems like its fallen more into a "dont worry about SDKs for game developing" and "dont skip SDL" topic :P. Like i said many times before i will continue game development, but more as a hobby (probably going to look into OpenGL since its more of a hobby now, and i dont have to worry about industry standards).

I'm grateful for all the advice so far, and am still interested in any tips or advice for software development (be it getting into the business, useful frameworks that companies tend to like, or even what to avoid).
Image
qpHalcy0n
Respected Programmer
Respected Programmer
Posts: 387
Joined: Fri Dec 19, 2008 3:33 pm
Location: Dallas
Contact:

Re: Can i get your opinion? [TL;DR post].

Post by qpHalcy0n »

Alright, so this is a loaded question and a tough one to answer because there's so many different ways this can go. I've had several years experience as a graphics programmer in the industry so hopefully I can shed a little light on the matter.

One of the primary complaints coming from companies employing programmers is that most prospects have a lack of general programming sense. It used to be the case that game development was such a niche field of programming that prospects generally had little to no college experience and a wealth of personal time invested in learning how to write for some variety of systems. The issue now is that games are so insanely complex that they no longer resemble the small one man to a dozen men maintained code bases that they used to. Games are massive reusable collections of components that are distributed across projects and a variety of wildly different hardware. The techniques you might use to develop Direct3D technology for PC simply do not apply for a platform like the PS3 to any degree at all, which is closer to a virtual distributed system instead of this tightly coupled system.

In such a climate, one of the things that can set yourself apart from others is a strong focus on generalized problem solving, strong knowledge of system architectures, and strong knowledge of language. By strong, I mean "set apart from the rest". You should also present with a compelling game or research portfolio. Now companies have enough junior applicants to fill "game developer" slots all day long, 20 ways till Sunday. Junior game programmers are a dime a dozen, but ten of them are no replacement for a talented systems analyst or engineer. This is not to say that landing a jr. programming spot is easy, because it is also highly competitive but being the one who "develops the games, not the engines" is not the only option. However, it is to say that the industry has a STRONG desire for talented systems engineers as the systems become exceedingly complex and consistently evolving, eg: those who DO develop the engines.

This is where I become more opposed to some of those who would say "develop games, not engines". My opinion on the matter is that there is no replacement for an exceptionally strong working knowledge of the API and hardware of the system. It is true that most of the technology that is in use across the gamut of profitable games is licensed, it's also true that these packages are CONSTANTLY evolving. It's essential that you have a strong working knowledge of the underlying API in order to be able to effectively USE these tools. So it would be akin to saying that an intimate working knowledge of something like OpenGL or DirectX would make me a more effective programmer working under the constraints of something like Source engine, Unreal, Ogre, or what have you. I can not overstate the importance of this kind of focus. This also extends to the OS API, be it Win32, X11, or what have you.

So to that extent, my advice is and has always been to abstain from those frameworks like SDL and SFML, which in my opinion are absolutely atrocious and encourage poor and inefficient graphics programming concepts and instead focus on dealing with the device a little closer. It will bring you closer to the problems that plague folks involved in graphics programming and game development on a more intimate and problem oriented level. At this level you are privy to implementing solutions to problems as opposed to waiting for the solution so that you can deploy it. As you venture on, you'll find that these frameworks are also far too limited and in many cases extremely inefficient in terms of how they interface the device to the OS and how they interact with the OS. There is no replacement to having a good working knowledge of some OS API, be it X11, Win32, or whatever. You will find that when you know one, you really know them all. They're extremely similar, they may not PRESENT themselves as being similar, however.

A fantastic D3D or OpenGL programmer should have no problems migrating to a higher level framework like Ogre, Unreal, or whatever. While the reverse has not proven to be true in my experience. It's been my experience that most programmers versed ONLY with those frameworks commonly have an extended learning curve and more difficulty transitioning to something closer to a DX or D3D level interface. The Source SDK, however is a fantastic API and if you wish to develop a strong game programming sense is an excellent investment of time. I've assisted and watched numerous programmers working under Source SDK blossom into professional game developers. Part of this assistance, however, has been based in a DX or OpenGL level solution where the emphasis is placed on the DEVICE and the constraints of that system rather than the constraints of the Framework API. It's a finer grained approach and I believe it yields a more effective programmer.

There's differing views there, obviously. So my experience stems from what has worked for me and what has worked for those who have worked under me. Focus on systems, problems, and algorithms in a more generalized sense because a good analyst/engineer's research sense will find themselves able to deploy solutions to whatever problem they encounter. A good game developer may find themselves working very myopically in terms of the overall problem set facing game programmers.

Being able to deploy solutions to any variety of problems also makes you a valuable asset to ANY field of programming or even engineering (broader scope). This bodes well for your future in general as game development is a difficult and highly competitive field to break into. Either way, you need to challenge yourself to go above and beyond. Try it, you might just surprise yourself.
Post Reply