Presentation on theme: "GAME 1024: Advanced Game Programming Lesson 12: Will Program for Food By Kain Shin."— Presentation transcript:
GAME 1024: Advanced Game Programming Lesson 12: Will Program for Food By Kain Shin
Game Developer’s 2006 National Salary Survey o These are American averages o Austin averages will be lower because cost of living is cheaper than the American average o QA/Support: $37,861 o Designer: $61,538 o Artist: $65,107 o Audio: $69,935 o Producer: $77,131 o Programmer: $80,886 o Business and Legal: $95,596
Why are programmers so expensive? o Because game development is software engineering first and foremost. It will not happen without programmers. o Because most people can’t program, and those who can program may not necessarily be good programmers o Because the programming department is the most dangerous department in a company o Few people within the company can understand programmer-speak o A single programmer can threaten the survival and jobs of the entire studio with bad coding decisions o By the time other programmers find out about bad decisions, it may be too late o Mythical Man Month: Doubling the number of programmers does not mean half the coding time. o People can’t just jump into another person’s code without paying rampup costs o Programmer interviews are the toughest interviews because trust in competency is a premium commodity and seats are limited
What People Expect From You o Artists expect you to… o Import their stuff correctly o Inform them of any data contracts that must be heeded (use the wiki!) o Designers expect you to… o Work with them to implement feasible solutions to game features o Implement the best data contract that empowers their creativity o Work with them to iterate gameplay features as needed (expect iteration!) o Programmers expect you to… o Make sure their stuff fits with your stuff o Follow established conventions so that they could potentially jump into your code with minimal hassle o Producers expect you to… o Tell them what is blocking you o Keep your task queue full at all times o Sound alarms for any incoming development hazards that you perceive o Help them make sure you are not overloaded
When programmers go bad… o The Tech Bully o “You non-coders won’t understand this, but we can’t do this because the technobabble widget won’t discombobulate the extended gibberfoo. There is no way for me to explain this in terms that your feeble mind will understand.” o Missing Ingredient: Empathy and respect for all members of the team o The Poser o “We can’t do this because I am secretly incapable of programming anything other than Hello World” o Missing Ingredient: Willingness to Evolve o The Designer Wannabe o “We can’t do this because I don’t like your game design. I’m going to do my game design instead.” o Missing Ingredient: Diplomacy o Scotty from Star Trek o “It will take us two weeks to do this. I’m giving it all I’ve got! Just kidding. It really only takes three days, but I wanted to make sure I didn’t disappoint anyone.” o Missing Ingredient: Knowing that it’s ok to be wrong o The h4Xz0r o “We can’t do this because everything I’ve done is held together with fragile twine and touching it will make things break. And by the way, nobody else can read my code.” o Missing Ingredient: Forethought and/or experience
What employers look for in candidates o The Coder o Able to use the IDE o Able to write algorithms that work (i.e. Bubble Sort) o Working knowledge of C++ syntax and tools o Become a better coder with practice and experience writing programs that do complicated things o The Scientist o Deep knowledge of C++ syntax and tools o Able to understand the implications of code on performance and optimization (i.e. linked list vs. array, copy vs. reference) o Become a better scientist by studying C++, Data Structures, Big O notation, and how C++ code translates to assembly o The Architect o Able to write flexible systems of code that others can easily use (i.e. Event Systems, Actor Controllers, Managers) o Become a better architect through experience and study of other people’s programs. Learning about “Design Patterns” will also be helpful o The Colleague o Able to spend at least 8 hours a day with the person without thinking about murder o Become a better colleague by maintaining your people skills
Contacting the company o is preferred for programmers o Subject: Name and Position of Interest o A descriptive subject makes things easier for HR o Cover letter as the body o Point them to your demo if you have one o Your Resume as an Attachment o In PDF format (OpenOffice is free) o Your name on all pages o Two pages max
Preparing for the Interview o Study the company you are applying for as if you care about where you work o Keep up with industry news as if this was a real career o Play games as if you care. This is a passionate industry! o Have a personal project that you didn’t do in class. It says a lot about you if you’re self-motivated enough to have your own unique demo that does not look like a cookie-cutter class project. o Be a good programmer first, the game part will follow o Have at least one specialty o Everybody knows you can adapt quickly, but if there is something that you can just slide on into, that is even better o Look at job postings and envision how you can be the perfect candidate for that job in AI, Physics, Audio, UI, Gameplay, etc.
You Are Not Ready!!! Your competition will be computer science graduates from well-known schools These schools teach more C++ than ACC These schools teach more computer SCIENCE than ACC These schools may teach more game development than ACC Your competition may not have their own game demos Your competition may not be as self-motivated as you to push yourself to evolve and learn what you’re missing There is no fundamental difference between you and a graduate from MIT. You both run on the same hardware! The diploma does not make the programmer; the programmer makes the programmer! Nobody is born a master programmer! Your Homework Study job postings and become what they are looking for Gamasutra IGDA-Austin Gamedev.net Continue learning about game development from books, forums, and collaborative projects Make more nerdy programming friends Turn your class project into a demo that goes beyond what you learned at ACC!
Interview Practice Introduce yourself for 1 minute Testing the Coder in you Testing the Scientist in you Testing the Architect in you What do you want out of a company? What questions would you ask a company?