260 likes | 794 Views
Introduction to Game Programming. Using C++ and OpenGL. George Georgiev. Telerik Corporation. www.telerik.com. Table of Contents. Understanding Game Programming C++ - The industry standard language Computer graphics 2D and 3D Computer geometry Graphics Libraries OpenGL
E N D
Introduction to Game Programming Using C++ and OpenGL George Georgiev Telerik Corporation www.telerik.com
Table of Contents • Understanding Game Programming • C++ - The industry standard language • Computer graphics • 2D and 3D • Computer geometry • Graphics Libraries • OpenGL • Introduction to OpenGL • Setting up OpenGL, “Hello World”
Game Programming Elements, Specifics, Tools
What is Game Programming? • Game programming handles: • Loading game resources • User input • Game events • Scripting • Game objects interaction • AI characters • Game sounds and visualization • Results, such as winning or losing
What is Game Programming (2) • Game programming consists of: • “Game logic” programming • Graphics programming • AI programming (not necessarily) • Audio programming (not necessarily) • Physics programming (not necessarily)
What is Game Programming (3) • Game programming IS NOT Game Development • It is only a part of it • Game programming is cool! • You can play your game and pretend you’re debugging it
Specifics of Game Programming • Game programming specifics • The “Game loop” • Starting from scratch • Usage of many programming concepts • System requirements
Specifics of Game Programming (2) • The basic “Game loop” in pseudocode while( user doesn't exit ) check for user input run AI move enemies resolve collisions draw graphics play sounds end while
Specifics of Game Programming (3) • What else is special about game programming? • No strict requirements • No one expects complete accuracy • Need to balance “challenges” with “rewards” • Being fail-safe is not a priority • Small optimizations count • Greedy optimizations count
Tools • Programming languages • C / C++ • C# • Java • Scripting languages • Custom-made languages (very common) • Lua • Python
Tools (2) • Libraries • Graphics – Direct3D, OpenGL, OGRE • Physics – Bullet Physics Library, ODE • Many, many more • APIs • DirectX • XNA • Irrlicht Engine • Unreal Engine
Tools (3) • Benchmarking tools • Mainly framerate tracking software • Fraps • Alternative development approaches • Game development software • Game maker • 3D modeling software with scripting capabilities