18
Introduction to Game Programming Things you need to know George Georgiev http://academy.telerik.com Technical Trainer academy.telerik.com /.../3d-game-developm ent-openg l George Atanasov Front-End Developer

Things you need to know George Georgiev Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

Introduction to Game Programming

Things you need to know

George Georgiev

http://academy.telerik.com

Technical Trainer

academy.telerik.com

/.../3d-game-developm

ent-opengl

George AtanasovFront-End Developer

Page 2: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

Table of Contents Understanding Game programming

What is it?

Specifics

Tools and languages

C++ - The industry standard language C++ & Game programming

Why not C# ?

2

Page 3: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

Game ProgrammingElements, Specifics, Tools

Page 4: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

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

Page 5: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

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

Page 6: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

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

Page 7: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

Specifics of Game Programming

Game programming specifics The “Game loop”

Starting from scratch

Usage of many programming concepts

System requirements

7

Page 8: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

Specifics of Game Programming (2)

A 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

Page 9: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

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

Page 10: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

Tools Programming languages

C / C++

C#

Java

Scripting languages Custom-made languages (very

common)

Lua

Python10

Page 11: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

Tools (2) Libraries and APIs

Single-purpose Graphics – Direct3D, OpenGL, OGRE

Physics – Bullet Physics Library, ODE

Multi-purpose DirectX

XNA

Irrlicht Engine

Unreal Engine11

Page 12: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

Tools (3) Benchmarking tools

Mainly framerate tracking software Fraps

Alternative development approaches Game development software

Game maker

3D modeling software with scripting capabilities

The Internet… 12

Page 13: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

C++The industry standard language

Page 14: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

What is C++? The most widely used and popular programming language Object-oriented

Mid-level

Compiles to binary

Fast

Low memory usage

14

Page 15: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

C++ & Game programming

The industry standard language Most popular games are written in

C++

A lot of APIs are written in and for C / C++

Runs almost on everything

The C++ community is huge

Not a dying language

15

Page 16: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

Why aren't we using C# ?

Too young as a language Can’t compare to C++’s community

Not designed to be as fast as C++ 10% faster counts in game

programming

Too high-level and style-demanding Game programming requires freedom

C# without .NET is like C++ without the “++”

The lower you go, the more you know We (you) are here to learn

16

Page 17: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезания

ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NETкурсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGap

free C# book, безплатна книга C#, книга Java, книга C#Дончо Минков - сайт за програмиранеНиколай Костов - блог за програмиранеC# курс, програмиране, безплатно

?

? ? ??

?? ?

?

?

?

??

?

?

? ?

Questions?

?

Introduction to Game programming

http://academy.telerik.com/

Page 18: Things you need to know George Georgiev  Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer

Free Trainings @ Telerik Academy

3D Graphics and Game Development academy.telerik.com/.../

3d-game-development-opengl

Telerik Software Academy academy.telerik.com

Telerik Academy @ Facebook facebook.com/TelerikAcademy

Telerik Software Academy Forums forums.academy.telerik.com