Introduction to Game Programming Basics with OpenGL: A "Hello World" Approach
Dive into the foundations of game programming with this comprehensive guide authored by George Georgiev from Telerik Corporation. Explore essential topics including computer graphics, 2D and 3D representations, and the setup of OpenGL. Understand the critical components of game programming, such as game logic, user input handling, AI character interaction, and sound visualization. This resource serves as your first step into the world of game development, featuring a structured overview of programming languages, graphics libraries, and the specifics of crafting engaging gameplay experiences.
Introduction to Game Programming Basics with OpenGL: A "Hello World" Approach
E N D
Presentation Transcript
Computer Graphics in Game programming Basics. OpenGL. “Hello world” George Georgiev Telerik Corporation www.telerik.com
Table of Contents • Computer graphics • 2D and 3D • Computer geometry • Graphics Libraries • OpenGL • Introduction to OpenGL • Setting up OpenGL • “Hello World”
Computer graphics Pixels, Vectors, GPUs, Libraries
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) • 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
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 and APIs • Single-purpose • Graphics – Direct3D, OpenGL, OGRE • Physics – Bullet Physics Library, ODE • Multi-purpose • 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 • The Internet…
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
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
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
Introduction to Game programming ? ? Questions? ? ? ? ? ? ? ? ? ?