Post on 25-Dec-2015
Introduction to Game Programming
Using C++ and OpenGL
George GeorgievTelerik Corporationwww.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”2
Game ProgrammingElements, 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 losing4
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)
5
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
6
Specifics of Game Programming
Game programming specifics The “Game loop”
Starting from scratch
Usage of many programming concepts
System requirements
7
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
8
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 count9
Tools Programming languages
C / C++
C#
Java Scripting languages
Custom-made languages (very common)
Lua
Python10
Tools (2) Libraries
Graphics – Direct3D, OpenGL, OGRE
Physics – Bullet Physics Library, ODE
Many, many more APIs
DirectX
XNA
Irrlicht Engine
Unreal Engine11
Tools (3) Benchmarking tools
Mainly framerate tracking software
Fraps
Alternative development approaches Game development software
Game maker
3D modeling software with scripting capabilities
12