10 Essential Skills For Budding Games Programmers Matt Curtis AIE Melbourne Lea Bartlett AIE Canberra Learn About the Middleware That Industry Use Graphics Physics Artificial intelligence Networking Scripting languages Middleware The cost of high level languages • Examine the cost of high level language features – From assembler to C to C++ to... • Know how the language works “under the hood” • Things like: virtual functions, the STL, inheritance, exceptions. – Are they all suitable for games? What are the alternatives? Learn About the Tools That Industry Use Game Editor IDE CVS Stop hacking! • Develop professional coding skills • Being a game programmer is more than just “cutting code” • Coding style • Team and individual work practises • Language feature restraint • Working within a timeline • Learn to spot feature creep • Read – start with Robert L. Read’s “How to be a programmer” e-book (search Google) Learn How Particle Effects and Shaders Are Used The benefit of shaders in games is not just a fantastic looking effect Particle effects and shaders used together create a more immersive game Particle Effects and Shaders Learn real time programming techniques • • • • • You can’t put an hourglass on the screen! 60 FPS means 16 ms per frame State machines and OO programming Enemies of real time programming Be prepared to throw away the rulebook! Adaptability You could be moved from one game to another mid project if the resource needs change Be prepared to learn a new scripting languages and tools on the fly Learn to absorb documentation overnight Refine your debugging skills • Practise getting rid of all the bugs • All the bugs! • Take notes: what could you have done to avoid each bug? Fit in to the Game Developers Environment Like coke or coffee, not much else exists Develop the skill to eat the team's staple diet while playing the latest fad game Play as many different types of games as physically possible – then play some more Know your tools • • • • • • • • • Design patterns Off the shelf scripting languages like Lua Data formals like XML and ASN.1 The Standard Library including the STL Tools and libraries Game Programming Gems A good programmer could do without them all A great programmer needs them all Read websites and journals Tip #11... • Read Gamasutra and Gamedev.net • Practise! Practise! Practise! • Learn what the industry wants – What languages – What skills and abilities • Never stop learning Questions • Was anybody listening?