Post on 24-Dec-2015
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
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
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)
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
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 and APIs
Single-purpose Graphics – Direct3D, OpenGL, OGRE
Physics – Bullet Physics Library, ODE
Multi-purpose 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
The Internet… 12
C++The industry standard language
What is C++? The most widely used and popular programming language Object-oriented
Mid-level
Compiles to binary
Fast
Low memory usage
14
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
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
форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно
програмиране за деца – безплатни курсове и уроцибезплатен 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/
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