both fields or logical, and require tons of problem solving so yes.
hell i have leaned towards art all my life but in hte last 2 years have learned several programming languages, and am starting to prefer it to modeling and texture work.
If you like both, why not make your own games? For the Appstore, xbox, or whatever?
Lots of money there these days, if you know what you're doing.
And if you teamed up with another artist/programmer, you could make something really cool.
A great as it sounds, there are three main problems I can see with this. First, my skills are steadily growing, but I'm still a long ways off from being able to make a full game solo in a feasible amount of time. Second, I don't know where I would get the start up money to support myself when developing the game, and third, if the game doesn't sell, I'm really screwed. Maybe someday though...
There's no socialized Education in the USA. They have to pay upwards $250,000 for their education, so experimenting with various fields isn't really an option.
That isn't quite true. While you certainly -CAN- pay that much for education, it is by no means necessary. That's why I advised the poster to avoid overpriced schools like DigiPen.
Each US state has its own semi-socialized universities, where tuition is partially subsidized by the government. For example, in my town the University of Texas has a good CS department, and the average degree cost for a Texas resident is something like $25,000. That covers four years, which is typically enough time to study one "major" subject, and an optional secondary "minor" subject.
We also have partially-subsidized community colleges, where the tuition is much lower. My local community college charges $62 per credit-hour, which works out to around $2000 per year for a full-time student. Certainly cheap enough to experiment.
Americans don't acquire huge educational debts because we lack better options. We do it because we're stupid!
Each US state has its own semi-socialized universities, where tuition cost is partially subsidized by the government. For example, in my town the University of Texas has a good CS department, and the average degree cost for residents is something like $25,000. That cost covers four years, which is typically enough time to study one "major" subject, and an optional secondary "minor" subject.
Do you recommend UT? I haven't really looked at it before (though I should be looking at everything I can...). It would certainly be much cheaper in-state and closer to home. As much as I want to leave this flat, windy place of Corpus Christi, it would be nice to take a relatively short 4 hour drive home every once in a while.
Edit: I stopped being lazy (for the time being) and looked in to UT. Turns out they even have a game development program to complement their CS course! I'm very interested now
I've been facing the same situation (course you seem to have some liking to programming). People will generally push you to comp sci degrees and staying away from game art and do it in the off time. - due to knowledge you gain with your money and importance of degree and lastly job security
I feel that from my research if you go into 3d art you're pigeonholed into comp sci or trad art particularly for their indirect purposes in making you a better modeler and technically execute it in a correct manner from a behind the scenes view.
Aside from those two paths I feel it's almost like you're betting against yourself ...Like if I wanted to get into cinematic fx and post production to combine with 3d, there is no true indirect influence on improving your 3d modeling, therefor it's not 'considered' to be a logical degree to obtain.
Anyways that's my rant on college degree paths relative to non-organic 3d modeling for games/cinema/communications etc.
Yes, definitely. I didn't attend the school, but I've worked with a number of graduates.
If you're a Texas resident interested in Computer Science, UT is probably the best value you'll find, and they offer a BA program, which would leave plenty of room in your schedule for an art minor (or a double-major if you're insane).
Also, Austin is a great town to live in, with a very active indie game-development scene. I highly recommend it.
The most surfire way to both thrive and end up making games in any form would be to:
Take a standard engineering/computer science education, learn good and solid programming, be able to pay for your living in a job-area that is so much bigger than the games industry, keep doing games on your free-time in competitions and as a hobby.
Eventually you'll have enough to show off that when an opening eventually opens up you can get into the games industry without having to starve beforehand, or life takes you down another path and you'll end up making a game on your own.
Keep doing art as another hobby on the side, if you do find it fun then it can fuel any ambitions to make indie-games, as you'll be able to supply your own games with art.
There's really no good alternative to knowing coding when it comes to _making_ the actual games though.
Anyway, my question is, at what point and in which way do you start to actually see 'how' the concepts are used in making stuff actually happen?
For me, this point came when I actively tried to alter an existing game framework. I was working with Flixel to create a game for a game contest. As I sought to add more and more features to the title, I had to start digging deeper into the mechanics and structures behind the scenes of the Flixel framework. During this process I began to understand how the whole thing meshed together to create a functional game.
Before this point I had just been toying around with various tutorials, without understanding how to use programming to put a game together. After this I understood how various programming techniques could be used to logically structure a basic game engine. I saw how basic functionality like scene management and rendering order could be managed. It was a very useful experience.
^ That's more or less how I started. I picked up the Quake 3 source and started changing stuff. The more I wanted to change, the more involved things became, and the more I had to learn. I didn't get far in those days, but the process repeated itself with UT2004, and that's when I started properly programming.
TeeJay, I'd suggest just using any engine you can and just make a version of pong or breakout or something similar, and just try and problem solve it the entire way through. The logic in these sort of games is simple enough that it will give you the building blocks to do a game an order of a magnitude harder. .
I was struggling till i actually built something, otherwise i find it is just concepts without context.
I disagree with this. There are many ways to make programming not just looking at lines of code. Shaders, art demos are fun ways to program. Also data visualization is a fun place to do some programming that can flex your art/creative skills.
EDIT: Not sure why this got double posted
I did not quiet mean it in this way. Everything you program originates from lines of code. Of course stuff like shaders and art demos are excitingbut its usually other peopls art that is used for that when you are in a programmer position. Sorry for the unclear statment
Usually when people do graphical demos, they used established content like Stanford's 3D scans, as this allows you to directly compare your results with other people
Edit: Programmers are needed throughout the entire development process, and when not developing a main project, can be used to develop tech, tools or prototypes. Artists tend to be drafted in as-and-when there is a requirement for art. Some will stay on full time, but many will be contractors and as such are likely to be laid off when a project reaches completion.
There's also the fact that programming skills translate really well to other industries. If you can hack it as a programmer in the game industry, you can easily handle a programming job in other industries.
In addition to that, programming is a technical skill, and programmers tend to be less numerous than artists. This places programmers in higher demand. Programming is usually viewed as being difficult and time-consuming by most young students, and they tend to avoid it because it doesn't look like as much "fun." Art is seen as a much less demanding area of study.
A great as it sounds, there are three main problems I can see with this. First, my skills are steadily growing, but I'm still a long ways off from being able to make a full game solo in a feasible amount of time. Second, I don't know where I would get the start up money to support myself when developing the game, and third, if the game doesn't sell, I'm really screwed. Maybe someday though...
Good planning and determination will get you far. There are so many great tools for making games now that there just isn't anything stopping you. No one's saying you should do it full time. You need an income, of course. But in your spare time, you work on your game.
It's very feasible to make a game alone, just one person, look at all the countless examples of this recently. Don't think AAA. Think small games, limited asset production, limited amount of code, those are the kinds of games you can feasibly do.
Also just a general question. Why is it that programmers have a higher job security?
One reason is that programmers are needed by other industries. So when game jobs are scarce, non-game industries act as a relief valve, removing excess programmers from the job market. This means there's never a huge pool of programmers on the market, which in turn makes finding game-jobs easier.
I was struggling till i actually built something, otherwise I find it is just concepts without context.
This is really great Advice. Programming is an amazing skill, There's nothing like it when your whole departments life is made easier by a tool you wrote
Though it is sad to not hear 1 person say go be a artist before a programmer.
Times we live and the experiences we learn I guess :S
(But seriously if I was in your boat dude, I would learn programming if I where to be told years ago you can "make a game yourself" vs "having to depend on others all the time" )
I've seen a ton of artists learn programming after becoming pro, can't say i've seen many programmers turn into amazing artists though. Not saying it isnt possible just that most people who know programming just dont seem to put the time in to learn to draw.
I found programming easier to pickup than drawing tbh. Its rigid and well defined, and most problems can solved via research, rather than lengthy practice.
How much is actually expected of an entry level programmer (in any software development role)? I've always imagined even the most fresh faced guys and girls have years of programming practice and some dictionary-like mind full of code.
It's ability that really counts; experience writing code is practice the same as practicing art.
Generally speaking there's a basic knowledge that programmers are expected to have, and it's pretty much the same across the board in most programming disciplines (barring discipline specific knowledge, of course). You'll find most beginner's text books cover everything up to stacks, sorting, object orientation and polymporphism because this is where that expected basic working knowledge is. The idea is that with that knowledge, you should be able to derive and work out anything else from there.
I think it's important to acquire cross-class skills, regardless of what your job title is.
The communication logjam between departments is a huge problem at most studios. If you can be the person on the programming team who understands artists, or vice versa, you're going to be valuable to just about any project.
A secondary skill doesn't need to reach "professional" level to be useful. Even a little experience in another departments' shoes will help you understand what your teammates are doing and find ways to work together with them.
Yeah absolutely, but my point was not that. I was replying to sentiments that if your game programming work dries out you can just jump in other industries and be okay.
If programmers are capable of wearing multiple hats and jump from writing game AI to writing database security for banks just like that why can't artists jump from game art to cinematic work, advertising, archviz, product design, sculpture, illustration, graphic design or whatever other discipline of art?
Yeah there is learning curve but who said programmers don't have to do their research and hard work before transitioning to other fields?
If programmers are capable of wearing multiple hats and jump from writing game AI to writing database security for banks just like that why can't artists jump from game art to cinematic work, advertising, archviz, product design, sculpture, illustration, graphic design or whatever other discipline of art?
It's not really that easy. Programming is just as specialized as art. You won't be able to change from one specialized role to another unrelated specialized role. But you can move to a less specialized role and the pay cut might not be as bad as when you're an artist.
It might also depend on your degree how willing a HR person of a non-gaming company is to hire you. If you have a game-programming degree I doubt your chances will be as high as with a regular CS degree.
With games I think you're more stereotyped when changing disciplines. Plus the degree matters less and your folio more. Unless you worked your ass off to produce an arch-vis folio, while working in games, you're probably ill prepared when getting laid off to compete with all the arch-vis students and professionals who all have great arch-vis folios ready.
Though it is sad to not hear 1 person say go be a artist before a programmer.
Times we live and the experiences we learn I guess :S
(But seriously if I was in your boat dude, I would learn programming if I where to be told years ago you can "make a game yourself" vs "having to depend on others all the time" )
I didn't SAY "artist before programmer." But I did LIVE "artist before programmer." I got a traditional 4-year BA in Graphic Design. In college I didn't take any programming classes, and only knew some of the most rudimentary programming basics that I had picked up from working with Actionscript 2.
When I graduated, I found it immensely difficult to find work as either an artist or graphic designer. Hardly anyone seemed to want those services, and those who did didn't want to pay for them. Making a living as an artist or graphic designer can be very difficult in this economy.
Partially due to my experience in Flash, I was able to get a job in a slightly more technical role. Over the course of the next few years, I slowly transformed into a web designer, then a web developer, and eventually into a more full-fledged programmer. In this capacity I have been able to make a decent living for myself. I've also reached the point where I can construct games on my own.
I recommend programming first because it makes for a much more stable career path. Programmers and technical professionals always seem to be in demand, they will never want for profitable employment. Even if I had still gone for a BA in Graphic Design, I think I would have done very well to have minored in programming, or computer science.
I've seen degrees mentioned a lot more often than usual in this thread. Are degrees more of a necessity in CS roles?
Is that because it's difficult to self-teach adequately (surely not?) or is that because it's more common as a job requirement?
anyone can be a programmer.
with CS note the "science" in the name - a good CS program really teaches you the fundamentals behind the programming/computing as well as the logic part and the algorithms. There's a lot of abstract knowledge and math in a good CS program. Just think of it as "the science of computing" rather than "programming degree". Although there are colleges where CS is more the latter.
On the other hand you have software engineering, which really focuses on the engineering part, i.e. how to build software. in real engineering you also need to have structure and a plan if you want to achieve building something big. it's one thing to take some tools and hack something together, but it's something else to engineer things that are safe enough that people trust them with their life and property. Think of e.g. software controlling airplanes, or banking, or traffic. You really want people in charge of software like this who can plan and execute, much like a real engineer would when e.g. building a bridge or an airplane.
While all the degree programs deal with programming, actual programming itself is just one aspect of the degree. You could say being able to program is like knowing how to use oil paints. But using oil paints alone doesn't necessarily make you a great painter or gives you knowledge about all the techniques, styles and the history behind it.
Having all this background knowledge is hard to prove or demonstrate, unless you have a lot of experience, so a degree helps.
I've seen degrees mentioned a lot more often than usual in this thread. Are degrees more of a necessity in CS roles?
It's because the original poster was asking about what subjects to study in college.
It's true that a degree doesn't really matter in games. The guy with the better demo is going to get the job, whether he has a degree or not.
However, academic CS instruction can be very helpful. Not required, but helpful.
Your earlier post mentioned coders having "a dictionary-like mind full of code." I think that's the wrong impression. Memorization isn't really important for a programmer. We just tend to consult documentation frequently. For example, I've been using OpenGL for at least 10 years, but I still find myself googling the functions every day because I have a terrible memory.
The path to become a good programmer doesn't involve memorization. It involves seeing a wide variety of problems and building systems to handle them. By doing this, you develop the ability to look at a problem and visualize a system that will solve it. That ability, to imagine a new system and see it working in your head, is what makes a good programmer.
An academic CS program is useful because it presents the student with a number of "classic" problems to solve, and teaches the student to build a number of "classic" algorithms and data structures which are like building blocks for more complicated systems.
Of course you can get the same benefit from a book. There are plenty of excellent self-taught programmers. But it isn't enough to read (or even memorize) the book. You really have to build systems and solve problems yourself to understand them.
If you want to be a "programmer" than get a degree in the field at an accredited college. For games, depending on the size of the company, you may end up scripting, maintenance programming, engine programming, physics programming, AI programming, technical artist-related stuff (animation rigs, lighting, shaders, UI, . . .).
Physics, AI, and related programming definitely require proper foundations in computer science (data structures, numerical methods, etc.). Also, math and physics backgrounds are necessary. If you want to work your way up the programming ladder you will need a proper educational background. Self-learning higher-level concepts in computer science and math is not likely (unless you have access to an experience mentor).
AI is still quite bad to mediocre (in the games industry). Good AI takes a lot of time and knowledge and experience beyond mere programming. In a nutshell, "you cannot program the solution to a problem if you do not understand the problem." For example, to program a good, challenging computer opponent in a military style game requires knowledge of military tactics and strategy. If anyone tells you different--you will know that they have no experience actually programming AI. Most AI relies on "cheating" or simple algorithms (example, the level boss is given immunities, powerful weapons, extra damage soaking, etc.).
Math and physics are not easy (and neither are some higher computer science concepts). You have to practice (write actual code that solves problems, figure out ways to represent physical reality, . . .). You have to be "creative" when trying to represent realworld physics in a game because a real physics solve would cause the game to crawl (so an object crashing through a glass window has to "look believable" even though you might creatively "cheat" the physics).
No one gets good at programming, math, physics, or art without working their ass off (practice, get feedback, figure out how to do it better, etc.). If you take the self-learning path for programming you will probably hit a wall at some point. Often programming applicants at companies are given "tests." If you do not have a solid comp sci background and experience you will quickly "be found out." Ask any programmer about how a candidate from certain "educational" institutions fumbled when asked about recursion, alpha-beta pruning, etc. One of the most-needed traits for being a good programmer is tenacity. When you face a problem you have to sink your teeth into it like a hungry shark and not give up until you solve it. You don't learn that in school. I've spent many all-nighters trying to solve a problem (and I'm not talking about fixing bugs) such as getting the physics working better or implementing a new feature. Either you are going to conquer the problem or it will conquer you. If you do not have that trait you are probably not well-suited for programming.
Programmers are paid well, but there is a reason for that. I will share a story from GDC 2010 (and "artists"--I am not repeating this quote to start an argument). I was in a roundtable with leads, project managers, etc. A discussion came up about the most important position in getting a game completed. A top project manager said "I can go piss out the window in any direction and hit an artist. Give me a good programmer any day." [note: in San Francisco during GDC there are many students carrying their art portfolios around and generally more artists in attendance]. Of course you cannot make a game without a team of skilled people including artists, but good, experienced programmers will get paid more than artists (more demand and fewer applicants as well as programmers have other options for employment).
Hey all. I'll be going to college in a year and a half (no, this isn't another college thread), and I'm stuck. I love making video games, and I have no doubt that's what my career is going to be. The problem is, I love both game art and game programming. I would be happy doing both, but it seems that you have to pick between one or the other, especially when choosing a college to go to. I know this is primarily an artist's forum, but it would be lying to say there aren't any programmers registered on this forum. What do you guys think about the two? I'm not asking for anyone to chose one for me, but any information about pay, how easy it is to get a job through one or the other, job security (big one), and anything else you guys want to say is very much appreciated!
A little about me:
I'm currently a junior in high school. I'm number one in my class, which doesn't matter so much in the industry, but I can get into almost any college I want to. I've been doing game art for the past 2.5 years. I started with Blender, and, realizing the industry standard was Max/Maya/etc, I'm learning Max. I'm still more proficient in Blender, and I work slower in Max, but it's pretty easy to transfer skills from Blender to 3ds Max. Just gotta practice more.
I started learning Java about the same time as when I started learning Blender. I've moved over to UnrealScript and the UDK, and I know enough to make stuff really happen. There's always more to learn, and I have a long ways to go, but I love it.
I am doing the same thing here. I have graduated as a Software Engineer, but my main goal is to work on video games. That requires you to have both skills, coding and arts.
I started fiddling around with Ogre 3d opensource along with Softimage XSI, Zbrush and photoshop CS5 ext. You should look in to this.
So yes there are people here who are in to programming as well as art, and you do not need to pick sides but you should master one side if you would like a job industry and have knowledge of the rest of the sides so you would know how everything syncs in.
You should also look in to XNA GameStudio.net an open source designed for Visual Studio.net. For that you need to know C#.
This website is best suited for arts, but many of us do both, art and programming, so you assumed correctly. Also like I said before, you can always do both but you'll have to pick one profession of it and master it if you are looking for a job in the IT / Gaming industry.
Barbarian: you're going a bit overboard on the quotation marks, that is typically is read as sarcasm.
That makes me want to bring up a point: if you're a programmer don't talk down to the designers and artists on your team, these aren't your clueless aunts and uncles you're dealing with. There seems to be a few people like that at every studio who eventually garner enough of a bad reputation nobody wants to deal with them.
I used the quote marks to specifically note that the quote was not mine (no sarcasm as I also do art-related stuff as well as programming).
TeeJay:
You could take a course or two once you get your foot in the door. There are higher-level data structure, numerical method, AI courses available at universities. You could get enough of an education to get a solid position, but to move into the higher planes of programming (physics, AI, etc.) you will have to learn concepts that are extremely difficult to learn on your own. I know two people that finished their four-year degree (had a two-year degree in comp sci) while working, but it took them an extra two or three years. Programmers on site can teach you some stuff, but the basics of essential data structures, AI algorithms, etc. cannot be learned in tidbits (and often are building-blocks to other high level concepts--something similar to understanding the principles of calculus before you can dive into differential equations). Nothing is impossible, but a few solid courses could be taken without getting a degree (but the degree would pay off in other ways as well as open other doors).
Some of the courses (beyond beginning and advanced C++ and other general comp sci courses) that would help you are Data Structures, Object-Oriented Data Structures and Algorithms, Discrete Mathematics, Numerical Methods, Artificial Intelligence, Advanced AI. If you take a lot of C++ you can pick up Java Script or C# easily (easier than learning Java and migrating to C++). Also, learn Python if you want to go the Technical Artist route. There are some good workshops available for Python scripting.
I've gone to school for both. AAS in computer animation and a BCS with a focus on game programming. Michigan has very few game related jobs. It has some eLearning type stuff, but the game dev jobs are hard to come by.
Because of this, I'd say it really depends on where you're going to live and if you're willing to relocate. There are zero 3D jobs currently available around the greater Detroit area. If there are, it's mostly CAD engineering type work (which I don't know) or car commercial jobs, which are typically filled by older 3D veterans who have been around forever.
This has forced me to switch the primary hat I wear from 3D to Graphic Design, to finally, Programming. I've had interviews this week for a Unity Developer and a Flash developer. Programming is in hot demand and you can take it to virtually any other industry pretty quickly.
Barbarian is totally right. Advanced concepts like Physics and AI require a lot of extra knowledge. I got a diploma in programming, not only was it in the good Windows 3.1 days where we learned not just C but also Cobol and x86 assembler, but in the end it was also geared towards business programming. We didn't touch anything like advanced math, physics or AI. That's the reason I got into 3D as artist because I found the idea of writing business software for small/mid sized companies rather boring at that time. I worked as 3D artist for a while, first characters, then environments before slipping into the TA role.
Right now I work more on pipelines together with my team and another software engineer where I don't really need much math, but instead I deal with databases, revision control systems, user workflows, web based services, etc. It's definitely complex work but in a totally different area than game programming. I wear many more hats, deal with many more concepts and languages, but not as specialized as a game programmer. Especially not in maths or low level programming.
I'll start studying Software Engineering this year. The pipelines we work on are used by 100s of people in 4 different studios so I really want to get some formal education to improve my skills in planning complex software, rolling it our and maintaining it.
Search trees, alpha-beta pruning, shortest path algorithms, statistical methods, intelligent agents, and other data structure, physics, and AI-related concepts are usually found in "higher level" computer science courses.
The point I was making was that you could get a basic comp sci degree (such as a two-year associate's degree) and learn some scripting to get your foot in the door of a company. You could then take part-time courses in more advanced concepts at a local university.
If you want to work your way into AI for games, you can couple experience with education.
Replies
hell i have leaned towards art all my life but in hte last 2 years have learned several programming languages, and am starting to prefer it to modeling and texture work.
I mean, it sounds about right, but it'd be cool to have a source that I can throw at people. :P
A great as it sounds, there are three main problems I can see with this. First, my skills are steadily growing, but I'm still a long ways off from being able to make a full game solo in a feasible amount of time. Second, I don't know where I would get the start up money to support myself when developing the game, and third, if the game doesn't sell, I'm really screwed. Maybe someday though...
That isn't quite true. While you certainly -CAN- pay that much for education, it is by no means necessary. That's why I advised the poster to avoid overpriced schools like DigiPen.
Each US state has its own semi-socialized universities, where tuition is partially subsidized by the government. For example, in my town the University of Texas has a good CS department, and the average degree cost for a Texas resident is something like $25,000. That covers four years, which is typically enough time to study one "major" subject, and an optional secondary "minor" subject.
We also have partially-subsidized community colleges, where the tuition is much lower. My local community college charges $62 per credit-hour, which works out to around $2000 per year for a full-time student. Certainly cheap enough to experiment.
Americans don't acquire huge educational debts because we lack better options. We do it because we're stupid!
Do you recommend UT? I haven't really looked at it before (though I should be looking at everything I can...). It would certainly be much cheaper in-state and closer to home. As much as I want to leave this flat, windy place of Corpus Christi, it would be nice to take a relatively short 4 hour drive home every once in a while.
Edit: I stopped being lazy (for the time being) and looked in to UT. Turns out they even have a game development program to complement their CS course! I'm very interested now
I feel that from my research if you go into 3d art you're pigeonholed into comp sci or trad art particularly for their indirect purposes in making you a better modeler and technically execute it in a correct manner from a behind the scenes view.
Aside from those two paths I feel it's almost like you're betting against yourself ...Like if I wanted to get into cinematic fx and post production to combine with 3d, there is no true indirect influence on improving your 3d modeling, therefor it's not 'considered' to be a logical degree to obtain.
Anyways that's my rant on college degree paths relative to non-organic 3d modeling for games/cinema/communications etc.
Yes, definitely. I didn't attend the school, but I've worked with a number of graduates.
If you're a Texas resident interested in Computer Science, UT is probably the best value you'll find, and they offer a BA program, which would leave plenty of room in your schedule for an art minor (or a double-major if you're insane).
Also, Austin is a great town to live in, with a very active indie game-development scene. I highly recommend it.
Take a standard engineering/computer science education, learn good and solid programming, be able to pay for your living in a job-area that is so much bigger than the games industry, keep doing games on your free-time in competitions and as a hobby.
Eventually you'll have enough to show off that when an opening eventually opens up you can get into the games industry without having to starve beforehand, or life takes you down another path and you'll end up making a game on your own.
Keep doing art as another hobby on the side, if you do find it fun then it can fuel any ambitions to make indie-games, as you'll be able to supply your own games with art.
There's really no good alternative to knowing coding when it comes to _making_ the actual games though.
For me, this point came when I actively tried to alter an existing game framework. I was working with Flixel to create a game for a game contest. As I sought to add more and more features to the title, I had to start digging deeper into the mechanics and structures behind the scenes of the Flixel framework. During this process I began to understand how the whole thing meshed together to create a functional game.
Before this point I had just been toying around with various tutorials, without understanding how to use programming to put a game together. After this I understood how various programming techniques could be used to logically structure a basic game engine. I saw how basic functionality like scene management and rendering order could be managed. It was a very useful experience.
I was struggling till i actually built something, otherwise i find it is just concepts without context.
I did not quiet mean it in this way. Everything you program originates from lines of code. Of course stuff like shaders and art demos are excitingbut its usually other peopls art that is used for that when you are in a programmer position. Sorry for the unclear statment
Edit: Programmers are needed throughout the entire development process, and when not developing a main project, can be used to develop tech, tools or prototypes. Artists tend to be drafted in as-and-when there is a requirement for art. Some will stay on full time, but many will be contractors and as such are likely to be laid off when a project reaches completion.
In addition to that, programming is a technical skill, and programmers tend to be less numerous than artists. This places programmers in higher demand. Programming is usually viewed as being difficult and time-consuming by most young students, and they tend to avoid it because it doesn't look like as much "fun." Art is seen as a much less demanding area of study.
Good planning and determination will get you far. There are so many great tools for making games now that there just isn't anything stopping you. No one's saying you should do it full time. You need an income, of course. But in your spare time, you work on your game.
It's very feasible to make a game alone, just one person, look at all the countless examples of this recently. Don't think AAA. Think small games, limited asset production, limited amount of code, those are the kinds of games you can feasibly do.
One reason is that programmers are needed by other industries. So when game jobs are scarce, non-game industries act as a relief valve, removing excess programmers from the job market. This means there's never a huge pool of programmers on the market, which in turn makes finding game-jobs easier.
This is really great Advice. Programming is an amazing skill, There's nothing like it when your whole departments life is made easier by a tool you wrote
Though it is sad to not hear 1 person say go be a artist before a programmer.
Times we live and the experiences we learn I guess :S
(But seriously if I was in your boat dude, I would learn programming if I where to be told years ago you can "make a game yourself" vs "having to depend on others all the time" )
I've seen a ton of artists learn programming after becoming pro, can't say i've seen many programmers turn into amazing artists though. Not saying it isnt possible just that most people who know programming just dont seem to put the time in to learn to draw.
Not sure why though.
It's ability that really counts; experience writing code is practice the same as practicing art.
Generally speaking there's a basic knowledge that programmers are expected to have, and it's pretty much the same across the board in most programming disciplines (barring discipline specific knowledge, of course). You'll find most beginner's text books cover everything up to stacks, sorting, object orientation and polymporphism because this is where that expected basic working knowledge is. The idea is that with that knowledge, you should be able to derive and work out anything else from there.
I think it's important to acquire cross-class skills, regardless of what your job title is.
The communication logjam between departments is a huge problem at most studios. If you can be the person on the programming team who understands artists, or vice versa, you're going to be valuable to just about any project.
A secondary skill doesn't need to reach "professional" level to be useful. Even a little experience in another departments' shoes will help you understand what your teammates are doing and find ways to work together with them.
Yeah absolutely, but my point was not that. I was replying to sentiments that if your game programming work dries out you can just jump in other industries and be okay.
If programmers are capable of wearing multiple hats and jump from writing game AI to writing database security for banks just like that why can't artists jump from game art to cinematic work, advertising, archviz, product design, sculpture, illustration, graphic design or whatever other discipline of art?
Yeah there is learning curve but who said programmers don't have to do their research and hard work before transitioning to other fields?
It's not really that easy. Programming is just as specialized as art. You won't be able to change from one specialized role to another unrelated specialized role. But you can move to a less specialized role and the pay cut might not be as bad as when you're an artist.
It might also depend on your degree how willing a HR person of a non-gaming company is to hire you. If you have a game-programming degree I doubt your chances will be as high as with a regular CS degree.
With games I think you're more stereotyped when changing disciplines. Plus the degree matters less and your folio more. Unless you worked your ass off to produce an arch-vis folio, while working in games, you're probably ill prepared when getting laid off to compete with all the arch-vis students and professionals who all have great arch-vis folios ready.
I didn't SAY "artist before programmer." But I did LIVE "artist before programmer." I got a traditional 4-year BA in Graphic Design. In college I didn't take any programming classes, and only knew some of the most rudimentary programming basics that I had picked up from working with Actionscript 2.
When I graduated, I found it immensely difficult to find work as either an artist or graphic designer. Hardly anyone seemed to want those services, and those who did didn't want to pay for them. Making a living as an artist or graphic designer can be very difficult in this economy.
Partially due to my experience in Flash, I was able to get a job in a slightly more technical role. Over the course of the next few years, I slowly transformed into a web designer, then a web developer, and eventually into a more full-fledged programmer. In this capacity I have been able to make a decent living for myself. I've also reached the point where I can construct games on my own.
I recommend programming first because it makes for a much more stable career path. Programmers and technical professionals always seem to be in demand, they will never want for profitable employment. Even if I had still gone for a BA in Graphic Design, I think I would have done very well to have minored in programming, or computer science.
If you want to do art, check out this thread.
The hell seriously, is kingisle that stable?
I was contemplating about going back to school for a computer science degree to have programming under the belt and more job security.
anyone can be a programmer.
with CS note the "science" in the name - a good CS program really teaches you the fundamentals behind the programming/computing as well as the logic part and the algorithms. There's a lot of abstract knowledge and math in a good CS program. Just think of it as "the science of computing" rather than "programming degree". Although there are colleges where CS is more the latter.
On the other hand you have software engineering, which really focuses on the engineering part, i.e. how to build software. in real engineering you also need to have structure and a plan if you want to achieve building something big. it's one thing to take some tools and hack something together, but it's something else to engineer things that are safe enough that people trust them with their life and property. Think of e.g. software controlling airplanes, or banking, or traffic. You really want people in charge of software like this who can plan and execute, much like a real engineer would when e.g. building a bridge or an airplane.
While all the degree programs deal with programming, actual programming itself is just one aspect of the degree. You could say being able to program is like knowing how to use oil paints. But using oil paints alone doesn't necessarily make you a great painter or gives you knowledge about all the techniques, styles and the history behind it.
Having all this background knowledge is hard to prove or demonstrate, unless you have a lot of experience, so a degree helps.
It's because the original poster was asking about what subjects to study in college.
It's true that a degree doesn't really matter in games. The guy with the better demo is going to get the job, whether he has a degree or not.
However, academic CS instruction can be very helpful. Not required, but helpful.
Your earlier post mentioned coders having "a dictionary-like mind full of code." I think that's the wrong impression. Memorization isn't really important for a programmer. We just tend to consult documentation frequently. For example, I've been using OpenGL for at least 10 years, but I still find myself googling the functions every day because I have a terrible memory.
The path to become a good programmer doesn't involve memorization. It involves seeing a wide variety of problems and building systems to handle them. By doing this, you develop the ability to look at a problem and visualize a system that will solve it. That ability, to imagine a new system and see it working in your head, is what makes a good programmer.
An academic CS program is useful because it presents the student with a number of "classic" problems to solve, and teaches the student to build a number of "classic" algorithms and data structures which are like building blocks for more complicated systems.
Of course you can get the same benefit from a book. There are plenty of excellent self-taught programmers. But it isn't enough to read (or even memorize) the book. You really have to build systems and solve problems yourself to understand them.
I don't mind at all, I'm learning from your questions just as much as you are
Physics, AI, and related programming definitely require proper foundations in computer science (data structures, numerical methods, etc.). Also, math and physics backgrounds are necessary. If you want to work your way up the programming ladder you will need a proper educational background. Self-learning higher-level concepts in computer science and math is not likely (unless you have access to an experience mentor).
AI is still quite bad to mediocre (in the games industry). Good AI takes a lot of time and knowledge and experience beyond mere programming. In a nutshell, "you cannot program the solution to a problem if you do not understand the problem." For example, to program a good, challenging computer opponent in a military style game requires knowledge of military tactics and strategy. If anyone tells you different--you will know that they have no experience actually programming AI. Most AI relies on "cheating" or simple algorithms (example, the level boss is given immunities, powerful weapons, extra damage soaking, etc.).
Math and physics are not easy (and neither are some higher computer science concepts). You have to practice (write actual code that solves problems, figure out ways to represent physical reality, . . .). You have to be "creative" when trying to represent realworld physics in a game because a real physics solve would cause the game to crawl (so an object crashing through a glass window has to "look believable" even though you might creatively "cheat" the physics).
No one gets good at programming, math, physics, or art without working their ass off (practice, get feedback, figure out how to do it better, etc.). If you take the self-learning path for programming you will probably hit a wall at some point. Often programming applicants at companies are given "tests." If you do not have a solid comp sci background and experience you will quickly "be found out." Ask any programmer about how a candidate from certain "educational" institutions fumbled when asked about recursion, alpha-beta pruning, etc. One of the most-needed traits for being a good programmer is tenacity. When you face a problem you have to sink your teeth into it like a hungry shark and not give up until you solve it. You don't learn that in school. I've spent many all-nighters trying to solve a problem (and I'm not talking about fixing bugs) such as getting the physics working better or implementing a new feature. Either you are going to conquer the problem or it will conquer you. If you do not have that trait you are probably not well-suited for programming.
Programmers are paid well, but there is a reason for that. I will share a story from GDC 2010 (and "artists"--I am not repeating this quote to start an argument). I was in a roundtable with leads, project managers, etc. A discussion came up about the most important position in getting a game completed. A top project manager said "I can go piss out the window in any direction and hit an artist. Give me a good programmer any day." [note: in San Francisco during GDC there are many students carrying their art portfolios around and generally more artists in attendance]. Of course you cannot make a game without a team of skilled people including artists, but good, experienced programmers will get paid more than artists (more demand and fewer applicants as well as programmers have other options for employment).
Whatever you choose to do--don't slack.
I am doing the same thing here. I have graduated as a Software Engineer, but my main goal is to work on video games. That requires you to have both skills, coding and arts.
I started fiddling around with Ogre 3d opensource along with Softimage XSI, Zbrush and photoshop CS5 ext. You should look in to this.
So yes there are people here who are in to programming as well as art, and you do not need to pick sides but you should master one side if you would like a job industry and have knowledge of the rest of the sides so you would know how everything syncs in.
You should also look in to XNA GameStudio.net an open source designed for Visual Studio.net. For that you need to know C#.
For the programming part I joined DreamInCode and GameDev
This website is best suited for arts, but many of us do both, art and programming, so you assumed correctly. Also like I said before, you can always do both but you'll have to pick one profession of it and master it if you are looking for a job in the IT / Gaming industry.
That makes me want to bring up a point: if you're a programmer don't talk down to the designers and artists on your team, these aren't your clueless aunts and uncles you're dealing with. There seems to be a few people like that at every studio who eventually garner enough of a bad reputation nobody wants to deal with them.
I used the quote marks to specifically note that the quote was not mine (no sarcasm as I also do art-related stuff as well as programming).
TeeJay:
You could take a course or two once you get your foot in the door. There are higher-level data structure, numerical method, AI courses available at universities. You could get enough of an education to get a solid position, but to move into the higher planes of programming (physics, AI, etc.) you will have to learn concepts that are extremely difficult to learn on your own. I know two people that finished their four-year degree (had a two-year degree in comp sci) while working, but it took them an extra two or three years. Programmers on site can teach you some stuff, but the basics of essential data structures, AI algorithms, etc. cannot be learned in tidbits (and often are building-blocks to other high level concepts--something similar to understanding the principles of calculus before you can dive into differential equations). Nothing is impossible, but a few solid courses could be taken without getting a degree (but the degree would pay off in other ways as well as open other doors).
Some of the courses (beyond beginning and advanced C++ and other general comp sci courses) that would help you are Data Structures, Object-Oriented Data Structures and Algorithms, Discrete Mathematics, Numerical Methods, Artificial Intelligence, Advanced AI. If you take a lot of C++ you can pick up Java Script or C# easily (easier than learning Java and migrating to C++). Also, learn Python if you want to go the Technical Artist route. There are some good workshops available for Python scripting.
Because of this, I'd say it really depends on where you're going to live and if you're willing to relocate. There are zero 3D jobs currently available around the greater Detroit area. If there are, it's mostly CAD engineering type work (which I don't know) or car commercial jobs, which are typically filled by older 3D veterans who have been around forever.
This has forced me to switch the primary hat I wear from 3D to Graphic Design, to finally, Programming. I've had interviews this week for a Unity Developer and a Flash developer. Programming is in hot demand and you can take it to virtually any other industry pretty quickly.
Right now I work more on pipelines together with my team and another software engineer where I don't really need much math, but instead I deal with databases, revision control systems, user workflows, web based services, etc. It's definitely complex work but in a totally different area than game programming. I wear many more hats, deal with many more concepts and languages, but not as specialized as a game programmer. Especially not in maths or low level programming.
I'll start studying Software Engineering this year. The pipelines we work on are used by 100s of people in 4 different studios so I really want to get some formal education to improve my skills in planning complex software, rolling it our and maintaining it.
Search trees, alpha-beta pruning, shortest path algorithms, statistical methods, intelligent agents, and other data structure, physics, and AI-related concepts are usually found in "higher level" computer science courses.
The point I was making was that you could get a basic comp sci degree (such as a two-year associate's degree) and learn some scripting to get your foot in the door of a company. You could then take part-time courses in more advanced concepts at a local university.
If you want to work your way into AI for games, you can couple experience with education.