Jaeger nailed it imo, you should strive to become a good programmer rather than a good game programmer. Getting to work at some game development company itself is already quite the task as there's tons of competition. If you're a good programmer who knows his stuff you can probably always find a good/awesome job.
Want to program video games? - Page 6
Blogs > CecilSunkure |
Glowbox
Netherlands330 Posts
Jaeger nailed it imo, you should strive to become a good programmer rather than a good game programmer. Getting to work at some game development company itself is already quite the task as there's tons of competition. If you're a good programmer who knows his stuff you can probably always find a good/awesome job. | ||
Hairy
United Kingdom1169 Posts
Zombies equipped with bazookas and jetpacks. | ||
Noobity
United States871 Posts
The absolute #1 thing that you need to understand when searching for a job in this field is that you need skill, passion, and a desire to get better before you can really even consider pushing forward. I was neither skilled nor passionate, but did have a desire to get better, and because of that I was able to pass my classes, but now have a very expensive and useless degree. I stress, STRESS highly, that you think long and hard before going into a field of study like this. Now, that being said, Cecil, you have a knack for being passionate about things. All things it seems, and I want to wish you a great deal of luck in your future endeavors. Thanks for what you've done for the community and I hope the karma hits you on the positive in the near future. | ||
Frastic
United States96 Posts
What's the main difference between C++ and C? And if C++ is like the base of most games made nowadays, why should I learn C at all? Also, what colleges do you recommend to a high school student looking to go into game programming? | ||
CecilSunkure
United States2829 Posts
On December 02 2011 18:04 Osmoses wrote: Writing games in the windows console can be fun, but I don't think it teaches you very much about how to do anything else. Knowing memory management is well and good, but modern coding is all about abstraction. I hardly think building a new game engine from scratch is common practice anywhere these days. Why reinvent the wheel when you can just build onto an existing, proven library? As has been already said, game designing is a collaborative effort outside indie studios, and you generally have very little influence yourself. And if you want to make your game, you can't spend your time writing low level memory management code, you'll never see anything close to a finished product. Swallow your pride and use someone else's code, use an API or a finished engine. Your game doesn't need to be cutting edge, minecraft looks like shit but it's still a great game. If you want to make a game and see some real results before you die, try Cocos2D. There are 3D APIs as well, but I haven't tried any. Lol you beat me to it :p First off, I'm not really a hobbyist, so I can't write a post about using unreal engines, or other pre-made engines. So sure if you just want to make something content-driven as a hobby, you don't truly need to learn C. Though as a beginner you absolutely shouldn't shut doors to possibilities on yourself. As for writing a game in C, it teaches you a lot of essentials needed to move onto C++, or any other language with a high degree of success. If you're serious about becoming a professional you're not going to be using code someone else wrote as your engine when you're listing your achievements and projects completed in your resume; if you want your job of choice you're going to want to be able to show people a game you constructed from scratch, in C++. Nothing will beat that. Anything else is taking the easy way out. Teams of a few people here at my school make entire production level games from scratch while taking a full course load in six months; you're being unrealistic in how you favor using pre-made engines over the creation of one yourself. With that in mind this is an important note everyone should understand reading the blog: coding a a good sized game in C like described in my blog series will teach you fundamental C programming skills at a wonderfully rounded and thorough manner. This is essential if you aspire to become a lethally skilled programmer due to how learning C teaches you the limitations of C. If you learn the limitations of C you then learn how to make effective use of features in C++, thus being all the better as a programmer. On December 02 2011 20:53 TBO wrote: guess you worked with Eric?^^ he is a cool dude Haha he seemed nice, but he rarely ever showed his face in the room I was working in. I think he was afraid of us balance guys as one of my co-workers was really brash and harsh the very first meeting in which we met Eric. On December 02 2011 22:04 Slaytilost wrote: You might want to adjust that 90% of yours, or perhaps adjust your definition of game industry. Perhaps 90%-ish of games that are boxed and are for purchase in your local store, but remember that the game industry is much, much more then that. The mobile game industry is booming, and web-games have been around for a while too. They usually use higher level languages such as Java/C# or Actionscript, and iOS games are frequently built in Obj-C. In fact; i've been a professional game programmer for 3 years now, and i hardly know any C++, let alone objective C. But i still have collaborated on 3 titles that are currently available in the appstore. Since we use some amazing middleware (Unity) we can code comfy in our C# environment, even for Android and iOS. In short i'd like to say that the game industry is much broader then what people think. Its not only the starcrafts, modern warfares and battlefields. Its also Doodle Jump, Dora the Explorer and Hello Kitty online. I understand, but that's a pretty specialized area. You'd have immense trouble getting a job in a lot of other areas due to not knowing C++. Also the quote was actually loosely quoted from the podcast in the OP by one of the teachers here at DigiPen. On December 03 2011 03:27 Frastic wrote: Noob Questions: What's the main difference between C++ and C? And if C++ is like the base of most games made nowadays, why should I learn C at all? Also, what colleges do you recommend to a high school student looking to go into game programming? As I just posted, it's because by learning C you learn how to effectively use C++. You can't really do this firsthand without starting in C. As for schools, listen to the podcast I posted in the OP. Both of your questions are answered there. | ||
andiCR
Costa Rica2273 Posts
First person to quote this sentence (back on TL at the Lessons thread), and the one directly after it, will win a free one hour lesson! Additionally whoever is the 100th poster in this thread (cmon, we can get that many posts!) will win a free one hour lesson as well! More than a lesson, I think i'd rather have a good old game dev to game dev chat | ||
iplayBANJO
United States129 Posts
On December 03 2011 03:27 Frastic wrote: Noob Questions: What's the main difference between C++ and C? And if C++ is like the base of most games made nowadays, why should I learn C at all? C is a procedural language, while C++ is a object oriented language. In addition to being object oriented, C++ has made re-usability of code a large focus recently with the addition of generic templates and the STL library. C++ encompasses the entirety of C (as I understand it) and procedural C can be used within a C++ program, but the addition of several keywords make certain C functions unnecessary. Most notably the C functions revolving around memory allocation are much more difficult to use than the more simple C++ versions new and delete. If you are looking to learn C and C++ on your own I would recommend the books C Primer Plus and C++ Primer Plus both written by Stephen Prata, and both far more easily understood than the books I used in school to learn the languages. I should note that while the C Primer Plus book is nearly twice as long as C++ Primer Plus, The more technical reference manuals for each language are actually opposite, with The C Programming Language, by Brian Kernaghan and Denis Ritchie, being almost a quarter of the size of The C++ Programming Language, by Bjarne Stroustrup. | ||
andiCR
Costa Rica2273 Posts
| ||
Jaeger
United States1150 Posts
On December 02 2011 22:04 Slaytilost wrote: You might want to adjust that 90% of yours, or perhaps adjust your definition of game industry. Perhaps 90%-ish of games that are boxed and are for purchase in your local store, but remember that the game industry is much, much more then that. The mobile game industry is booming, and web-games have been around for a while too. They usually use higher level languages such as Java/C# or Actionscript, and iOS games are frequently built in Obj-C. In fact; i've been a professional game programmer for 3 years now, and i hardly know any C++, let alone objective C. But i still have collaborated on 3 titles that are currently available in the appstore. Since we use some amazing middleware (Unity) we can code comfy in our C# environment, even for Android and iOS. In short i'd like to say that the game industry is much broader then what people think. Its not only the starcrafts, modern warfares and battlefields. Its also Doodle Jump, Dora the Explorer and Hello Kitty online. Guess what language Unity is written in? Guess what language C# is a derivative of? | ||
Jaeger
United States1150 Posts
On December 03 2011 04:04 iplayBANJO wrote: C is a procedural language, while C++ is a object oriented language. In addition to being object oriented, C++ has made re-usability of code a large focus recently with the addition of generic templates and the STL library. To nit a little C++ is a multi-paradigm language that supports object-oriented, generic, functional, procedural, declarative, and modular, and meta-programming. | ||
KaBoom300
United States225 Posts
It's going to be a sort of Dwarf Fortress/Minecraft/Terraria sort of game. It's not nearly finished right now but you get the idea. I love designing games and I really hope to be a indie game designer when I graduate. Great blog! I will be coming back to this for sure as it would be great to start learning C in addition to Java and ActionScript 3.0 | ||
EsX_Raptor
United States2801 Posts
| ||
Fandango
291 Posts
On December 03 2011 04:05 Jaeger wrote: Guess what language Unity is written in? Guess what language C# is a derivative of? How on earth is that relevant? He's talking about areas where you don't need to know C++ specifically, which now is the majority of game development. Knowing C++ is great and all and it's good to have on a resume and so on, but if you want to work on actual gameplay development these days, even at the largest of studios, it's going to be in an interpreted language. It's also ridiculous how much people confuse knowing C++ with knowing how computers and the current crop of OOP programming languages work, if you know C# well enough to have dealt with multithreading and managing the garbage collector, you'll be able to pick C++ very quickly anyway. The hardest things about C++ as a language are unrelated to the language itself anyway, it's stuff like linking and makefiles and dependencies and sometimes having less functionality from the STL than you might expect. If you can competently do the job you're applying to and demonstrate that through your portfolio and thus demonstrate an ability to learn new subjects, whether you can write the software that you write your software in is irrelevant. edit: I also totally disagree with the whole "you must know C to understand C++" tripe, C++ is a superset of C so if you know C++ you know C, if you really think removing features and using malloc instead of new is the important part of programming in a lower-level language than interpreted ones, you're really missing the point. By this logic you should learn X86 ASM first so you'll understand how C allocates memory and performs arithmetic, you don't need to know everything, that time is far better spent learning your chosen area of expertise anyway. | ||
CecilSunkure
United States2829 Posts
On December 03 2011 04:22 Fandango wrote: How on earth is that relevant? He's talking about areas where you don't need to know C++ specifically, which now is the majority of game development. Knowing C++ is great and all and it's good to have on a resume and so on, but if you want to work on actual gameplay development these days, even at the largest of studios, it's going to be in an interpreted language. It's also ridiculous how much people confuse knowing C++ with knowing how computers and the current crop of OOP programming languages work, if you know C# well enough to have dealt with multithreading and managing the garbage collector, you'll be able to pick C++ very quickly anyway. The hardest things about C++ as a language are unrelated to the language itself anyway, it's stuff like linking and makefiles and dependencies and sometimes having less functionality from the STL than you might expect. If you can competently do the job you're applying to and demonstrate that through your portfolio and thus demonstrate an ability to learn new subjects, whether you can write the software that you write your software in is irrelevant. edit: I also totally disagree with the whole "you must know C to understand C++" tripe, C++ is a superset of C so if you know C++ you know C, if you really think removing features and using malloc instead of new is the important part of programming in a lower-level language than interpreted ones, you're really missing the point. By this logic you should learn X86 ASM first so you'll understand how C allocates memory and performs arithmetic, you don't need to know everything, that time is far better spent learning your chosen area of expertise anyway. You actually do learn to code in Assembly here at DigiPen, in order to appreciate and understand C better. Then by extension, do the same with C to C++. It's fine if you disagree, though you're argument is kinda lacking against mine. On December 03 2011 04:05 iPAndi wrote: By the way, im wondering why don't you use something like Microsoft Visual C++ to learn C++ coding instead of DevC++? I mean, dont get me wrong, i loved devc++, but i think Microsoft has such an awesome tool its not even worth digging into devcpp. Yeah I definitely think VS is much better, but you gotta remember the target audience of that article; people who know literally nothing about programming. Those people aren't going to want to go "buy" VS when there's a free tool much simpler to start off with. Also, that article isn't teaching C++, just some very basic C. | ||
Jaeger
United States1150 Posts
On December 03 2011 04:22 Fandango wrote: How on earth is that relevant? He's talking about areas where you don't need to know C++ specifically, which now is the majority of game development. Knowing C++ is great and all and it's good to have on a resume and so on, but if you want to work on actual gameplay development these days, even at the largest of studios, it's going to be in an interpreted language. It's also ridiculous how much people confuse knowing C++ with knowing how computers and the current crop of OOP programming languages work, if you know C# well enough to have dealt with multithreading and managing the garbage collector, you'll be able to pick C++ very quickly anyway. The hardest things about C++ as a language are unrelated to the language itself anyway, it's stuff like linking and makefiles and dependencies and sometimes having less functionality from the STL than you might expect. If you can competently do the job you're applying to and demonstrate that through your portfolio and thus demonstrate an ability to learn new subjects, whether you can write the software that you write your software in is irrelevant. edit: I also totally disagree with the whole "you must know C to understand C++" tripe, C++ is a superset of C so if you know C++ you know C, if you really think removing features and using malloc instead of new is the important part of programming in a lower-level language than interpreted ones, you're really missing the point. By this logic you should learn X86 ASM first so you'll understand how C allocates memory and performs arithmetic, you don't need to know everything, that time is far better spent learning your chosen area of expertise anyway. The implication is that you don't need to learn C/C++ to be a good game programmer. At my job we work in C C++ C# PHP Javascript AS3 and more regularly. If you don't know C++ you're going to limit yourself greatly. In my experience coding gameplay in interpreted languages is done by designers that know scripting not programmers. And yes you should learn assembly and if you're working in C# you should learn IL as well. P.S. On Rage we wrote our gameplay logic in C++. On December 03 2011 05:46 CecilSunkure wrote: Yeah I definitely think VS is much better, but you gotta remember the target audience of that article; people who know literally nothing about programming. Those people aren't going to want to go "buy" VS when there's a free tool much simpler to start off with. Also, that article isn't teaching C++, just some very basic C. FWIW Visual C++ express is free. | ||
CecilSunkure
United States2829 Posts
On December 03 2011 05:57 Jaeger wrote:FWIW Visual C++ express is free. Oh I didn't realize. Only thing used here at my school is VS 2010 professional atm. Maybe I can get some time to re-write that section to include the use of it | ||
Fandango
291 Posts
On December 03 2011 05:57 Jaeger wrote: The implication is that you don't need to learn C/C++ to be a good game programmer. At my job we work in C C++ C# PHP Javascript AS3 and more regularly. If you don't know C++ you're going to limit yourself greatly. In my experience coding gameplay in interpreted languages is done by designers that know scripting not programmers. And yes you should learn assembly and if you're working in C# you should learn IL as well. P.S. On Rage we wrote our gameplay logic in C++. You're talking about big studio development, precisely the opposite of what I'm referencing and precisely where C++ is treasured. There a literally hundreds if not thousands of smaller studios now that create games in situations where you won't ever run into using C++ past some tiny exception like using flash Alchemy or Unity Pro plugins. These are game development positions just as much as working at Id is even if the prestige in your eyes is lower. Yes you're limiting yourself by not knowing C++, but it's not the C++ that's the hard part of learning C++ game development anyway, it's the specific APIs and shader languages, nearly everything else is language inspecific. The only reason you'll ever need to know IL is if you're implementing an IL based language as a scripting language for a C++ base, which is not relevant to studios that use middleware that handles it anyway. And if you really honestly think that knowing how to program in assembly is a good idea for someone who wants to learn C so they can transitively learn C++ I just don't know what to say. There's a weird cult of logic that comes from a surprisingly large amount of young games programmers where they have this idea of what's 'proper' and if your skills don't fit that mould you can't do anything in the industry and I think it's a result of the competitive nature of games jobs and especially CompSci and games programming specific university courses. You don't have to do it any specific way as long as you're capable of doing the job that you want and in the current industry (not the one of 10 years ago where a lot of the rigid approach comes from) a lot of them will never call on you to have extensive knowledge of half the things you suggest. Not to mention the biggest skill in all of game development is the ability to learn new things quickly as need arises. There's a reason why 10-15 years ago most people were hired from completely unrelated fields too but that's a whole other kettle of fish. | ||
Fandango
291 Posts
On December 03 2011 05:46 CecilSunkure wrote: You actually do learn to code in Assembly here at DigiPen, in order to appreciate and understand C better. Then by extension, do the same with C to C++. It's fine if you disagree, though you're argument is kinda lacking against mine. You haven't argued anything at all, you've literally just said that this is the way it is without any justification, I provided reasoning behind why that approach is flawed and you didn't refute any of it and again just assumed you're right. There's really no reason to continue to argue with you either because you seem to think you know everything about game development when you're still at college and apparently not that far along from your outlook. I'm not suggesting that my outlook is definitively the best or anything i'm just saying that your approach to learning is flawed because you don't really know what you're arguing. | ||
chocorush
694 Posts
That being said, the compiler will very certainly be better at assembly than you are, and you don't need to be a good programmer to make games. | ||
Fandango
291 Posts
On December 03 2011 06:35 chocorush wrote: To be a good programmer, you should understand assembly. It's very useful to know how the computer does what it does. That being said, the compiler will very certainly be better at assembly than you are, and you don't need to be a good programmer to make games. You don't need to know a specific dialect of assembly to understand how the computer does what it does, you should know how a processor works with registers, program counters, the ALU and so on, but there's very little practical value to knowing X86 or ARM assembly these days unless you're working on something that's low level or incredible performance centric in which case you obviously should know it but that's a very small minority of game developers as a whole. Yall seem to be confusing general computer/performance/optimising knowledge with very specific niche technical knowledge, in my opinion. edit: And a good programmer is the one who does whatever jobs he/she is given in as close to the best possible manner as is possible in the situation, it has absolutely nothing to do with what technical knowledge he/she has if they can do that. | ||
| ||