Using C++ and OpenGL George Georgiev Telerik Corporation .

Post on 25-Dec-2015

214 views 0 download

Transcript of Using C++ and OpenGL George Georgiev Telerik Corporation .

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