Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I am in last year of college. I want to get a job in games industry as programmer but I don't want to do low-level programming. I want to do something AI and machine learning related. Am I in the wrong industry? Should I change focus to other jobs other than games industry?

By low level programming I mean, for example, connecting XNA and windows Forms or whatever. I mean I don't care about those kind of things, I want to work on higher level like doing fuzzy logic, how does the AI decide what to build in RTS and so on...

share|improve this question
3  
No matter what language, framework, and system you use, you will never be able to completely abstract away from the low-level. Especially if it's buggy or undocumented, or both. –  ashes999 Oct 7 '11 at 13:15
    
I am aware of that, I guess I want to target a job where the low-level work would be minimized. –  TheMiyamotoMusashi Oct 7 '11 at 13:47
8  
Your examples do not match the common definitions terms of "high-level" and "low-level". Building Windows Forms is a fairly high level task, especially in C#. A fuzzy logic proof system would be low-to-medium level, depending on what parts of it you worked on. "How does the AI decide what to build in an RTS" is usually the task of a designer or technical designer, not a programmer, although the programmer involved will probably have a lot of input into whatever paradigm the designer ends up using. –  user744 Oct 7 '11 at 14:06
add comment

closed as off-topic by Josh Petrie Nov 20 '13 at 15:38

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about "how to get started" or "what should I learn next" cannot reasonably be answered with anything other than opinion polling and therefore are off topic for the site. For more information on how to ask a better question, see the help center" – Josh Petrie
If this question can be reworded to fit the rules in the help center, please edit the question.

5 Answers

Although you may be able to find a job that only requires High Level programming, it's always a plus in your resume to at least know and understand how low-level works.

Besides, even if you are applying programming on AI and high level concept, you might need from time to time to handle low level (for example optimise your AI computing with GPGPU).

share|improve this answer
    
My guess is that the high-level job is likely to be game-logic design rather than purely AI design, and even the AI stuff is likely to be scripted based on some lower-level AI machinery. Is that true? –  Steve314 Oct 7 '11 at 12:02
1  
Indeed High Level programming will mostly be game-logic related, and will be based on lower level existing functions. But as I said, you still need to understand how the lower mechanics work to use them wisely (in my opinion anyway) –  XGouchet Oct 7 '11 at 12:04
    
Right, so I guess my goal then is to target a job with the least amount of low-level programming. I am aware that you still gotta do your dirt, I mean, working on complex systems is not all rainbow and sunshine. I can't get away from it, but I might be able to minimize it. –  TheMiyamotoMusashi Oct 7 '11 at 12:16
add comment

This was going to be a comment, but it's really long enough to be an answer.

The answer is (unfortunately) you can't avoid or minimize low-level work. It's just impossible.

Why? Because high-level is built on low-level. There are layers of abstractions upon abstractions; but at some point, somewhere, abstractions leak or are imperfect, and you need to dig down. How far down depends on the problem. You may find CLR bugs through some third-party's application on top of another third-party's library.

Let me give you an example. You might have a web app which uses ActiveRecord, which in turn uses NHibernate, which in turn uses C#. It's possible to find issues that depend on the way the CLR was implemented on a particular architecture (eg. x64).

Plus, most likely as a developer, if there' s a low-level bug, you will need to trouble-shoot and fix it, because it will impede your high-level work. You can't just say "here, ask X to fix this" because you're a "high-level" developer. YOu have to get the job done, whether it's your code or some other layer of the cake that has the problem.

If I were you, I would pick a fairly high-level platform to specialize in (like XNA, or even XNA specific to X platform) and focus on improving your debugging skills. That will carry you very, very far.

Sorry if this is not the answer you want to hear! This is just the (sometimes sad) reality of code. It's layers, and imperfect abstractions.

share|improve this answer
    
Actually I did some simple games in XNA and Unity3D. I am about to start RTS game now and I chose Unity3D since it is higher-level than XNA. –  TheMiyamotoMusashi Oct 7 '11 at 15:33
    
@TheMiyamotoMusashi XNA is great, but in practice, you end up usually wrapping it in your own library (that's what I did too). Unity = 3d = more complexity (I'm a 2d guy myself), but if that works for you, Unity has a great rep (for a reason). –  ashes999 Oct 7 '11 at 15:36
add comment

I want to do something AI and machine learning related. Am I in the wrong industry? Should I change focus to other jobs other than games industry?

I think so, yeah.

A typical games company has between 0 and 1 AI programmers. And if they do have a dedicated AI programmer, or someone who spends a lot of time on AI, there's hardly any chance that they're using machine learning - it's just not a branch of AI that is commonly used in games, due to being too unreliable compared to more explicit methods.

By low level programming I mean, for example, connecting XNA and windows Forms or whatever.

That's pretty high level by many standards in the games industry: they'd think of low level as writing shaders, optimising C code, writing directly to audio buffers, etc.

I don't think you'll find much work in the games industry that doesn't have you working with graphics and input/output stuff, at least to begin with.

share|improve this answer
    
I can't escape the BoOgyMan eh :( –  TheMiyamotoMusashi Oct 7 '11 at 15:34
add comment

I am in last year of college. I want to get a job in games industry as programmer but I don't want to do low-level programming. ... By low level programming I mean, for example, connecting XNA and windows Forms or whatever. I mean I don't care about those kind of things, I want to work on higher level like doing fuzzy logic, how does the AI decide what to build in RTS and so on...

As an entry-level programmer, you're going to have very limited say in what you ultimately end up getting to do -- entry level programmers are often hired as generalists.

You will likely have to spend some time doing some level of grunt work (which is more akin to your apparent definition of "low level" than is traditional); it's the nature of the beast. You are only minimally competent, at best, after college anyhow.

You can help avoid this by paying careful attention in your job interviews to the kind of work other programmers describe doing. You want to find a place where tedious grunt work like connecting forms to the game engine for editors is handled via a resuable architecture platform, and doesn't involve much programmer intervention: where tedious grunt work has been engineered out as much as possible, because the programmers know that grunt work is not intellectually stimulating and they want their fellow programmers to be intellectually stimulated.

That is, assuming you even look for a job in games, because...

I want to do something AI and machine learning related. Am I in the wrong industry? Should I change focus to other jobs other than games industry?

...you may be barking up the wrong tree, unfortunately. The vast majority of "AI" in games is clever disguised scripting and simple, heuristics-based logic models. The games industry is most decades behind the state of the art for artificial intelligence and there is rarely any real opportunity to advance it: even the scripts are usually mostly in the hands of the designers, for maximum gameplay control.

share|improve this answer
2  
You're right that AI is an extreme niche within the games development spectrum, and "machine learning" is almost unheard of. The only "AI programmer" I ever met was a PhD. It's a splash of cold water to the face but these specialties are rare even within mainstream programming circles. @TheMiyamotoMusashi your idea of "low level" is wildly off target for the games field, do some research with want ads and various gaming development forums to get a feel for what work is really done. –  Patrick Hughes Oct 7 '11 at 16:37
add comment

As others have mentioned, your question isn't about low-level versus high-level. Let me paraphrase the question.

Can I get a job working on only the "fun" parts of developing a game?

The sobering answer is: probably not. 95% of the jobs on the market require doing the "un-fun" parts too.(Disclaimer: 95% of statistics are made up on the spot) And the 5% of the jobs that are only fun-related are often senior-level positions. They are senior-level positions often because in order to be good at them, you need a lot of industry experience in order to make good design decisions. Note that by "experience" I include "a thorough understanding of the low-level systems you develop on."

Here's the bright side though: you can find developers who have different opinions of "fun." For example, some people love writing game engines and frameworks, but not so much writing the scripts and interaction components that you'd want to work on. You can also find ways to minimize the low-level work by using pre-built frameworks such as Unity, doing mods on other games (like DOTA), or just making technological sacrafices (Solium Infernum comes to mind, the multiplayer is Play-by-Email, and the game is written in some kind of Flash compiler)

share|improve this answer
3  
This is probably why showing completed games is good on your portfolio, because it shows you can commit to finishing the "less fun" parts of a game. –  ChrisC Oct 7 '11 at 17:16
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.