Free Course Image Intro to C   Game Programming

Free online courseIntro to C Game Programming

Duration of the online course: 29 hours and 24 minutes

New

Build real game engine skills in this free C++ course: ECS architecture, SFML, collisions, shaders, and profiling—level up your game dev portfolio fast.

In this free course, learn about

  • Course design paradigm: building a game engine via an Entity-Component-System (ECS) architecture
  • Core C++ foundations for games: types, functions, compilation, debugging, and basic program structure
  • Memory/performance basics: stack vs heap tradeoffs, cache coherency, and memory pooling concepts
  • Using SFML to create 2D games quickly vs lower-level APIs (e.g., OpenGL) to focus on engine design
  • EntityManager responsibilities: creating, tracking, querying, and safely destroying entities/components
  • 2D game math essentials: vectors, transforms, and placing shapes (e.g., set origin to radius to center)
  • Collision programming pipeline: broad-phase candidate finding and narrow-phase precise resolution
  • Texture/asset management: an Assets class to load, store, and reuse resources efficiently
  • Input-to-action architecture: decoupling input logic from gameplay actions for flexibility and reuse
  • Ray casting & line-segment intersection for vision, line-of-sight, and hit detection in 2D worlds
  • Cameras/views in 2D engines: controlling what part of the world is rendered and how it follows entities
  • Pathfinding and steering behaviors: moving agents toward goals with smooth, reactive motion
  • Game loops and timing: fixed vs variable time steps and their impact on simulation and responsiveness
  • Tooling and rendering effects: profiling/visual debugging, shaders, and particle systems/vertex arrays

Course Description

Turn your curiosity about game development into practical engine-building skills with this free online course focused on modern C++ and hands-on 2D game programming. Instead of staying at a theoretical level, you will learn how real-time games are structured, how data flows through an engine, and how to write code that is both clear and fast enough for interactive simulations.

You will start by strengthening essential C++ foundations with a game developer mindset: memory choices, performance implications, and code organization that scales. From there, the course uses SFML so you can focus on the engine concepts that matter most, without getting buried in low-level graphics setup. As you progress, you will build systems for rendering, input handling, textures and asset management, and a robust action layer that keeps controls cleanly separated from gameplay behavior.

A major theme is the Entity-Component-System approach, a widely used architecture that helps you avoid rigid class hierarchies while keeping your code flexible and cache-friendly. You will explore entity management, 2D game math, collision detection workflows, ray casting, cameras and views, and how these pieces connect inside a game loop. The later parts of the course push toward professional concerns: pathfinding and steering behaviors for believable NPC movement, saving progress, debugging-friendly tools, and an advanced main loop that handles timing smoothly.

You will also look at performance through the lens of cache coherency, memory pooling, and profiling, developing the instinct to measure and optimize bottlenecks instead of guessing. Finally, you will be introduced to shaders and particle systems, giving you a clear pathway from basic engine construction to the kinds of visuals and effects seen in polished games. By the end, you will have a strong foundation for building your own projects and for communicating game-engine decisions in a portfolio or interview setting.

Course content

  • Video class: COMP4300 - C Game Programming - Lecture 01 - Course Introduction 1h24m
  • Exercise: What is the main design paradigm taught in the course for developing game engines?
  • Video class: COMP4300 - C Game Programming - Lecture 02 - Intro to C (1/2) 2h17m
  • Exercise: What is a potential advantage of using C++ in game development?
  • Video class: COMP4300 - C Game Programming - Lecture 03 - Intro to C (2/2) 1h58m
  • Exercise: What is one advantage of using stack memory over heap memory in C++ programming?
  • Video class: COMP4300 - Game Programming - Lecture 04 - Assignment 1 SFML 2h00m
  • Exercise: What is the primary reason for using SFML in this course, especially when compared to other lower-level graphics libraries like OpenGL?
  • Video class: COMP4300 - Game Programming - Lecture 05 - Intro to ECS 1h26m
  • Exercise: What is one of the primary benefits of using the Entity-Component-System (ECS) architecture in game development, compared to traditional Object-Oriented Programming (OOP)?
  • Video class: COMP4300 - Game Programming - Lecture 06 - EntityManager 2D Game Math 1h29m
  • Exercise: What is one of the primary purposes of using an Entity Manager in game programming?
  • Video class: COMP4300 - Game Programming - Lecture 07 - Assignment 2 1h58m
  • Exercise: In the game programming course, what is the purpose of setting a circle shape's origin to its radius?
  • Video class: COMP4300 - Game Programming - Lecture 08 - Collision Detection 56m
  • Exercise: What are the two main stages involved in collision programming in video games?
  • Video class: COMP4300 - Game Programming - Lecture 09 - Textures 1h10m
  • Exercise: In a game engine architecture discussed in the lecture, what is the role of the 'Assets' class?
  • Video class: COMP4300 - Game Programming - Lecture 10 - Actions 54m
  • Exercise: In a game engine architecture, why is it beneficial to decouple input logic from action logic?
  • Video class: COMP4300 - Game Programming - Lecture 11 - Assignment 3 1h35m
  • Exercise: In a game development assignment where students are tasked with creating a Mega Mario-style game, which of the following components is crucial for determining whether an entity in the game has an animation that should loop continuously or play only once?
  • Video class: COMP4300 - Game Programming - Lecture 12 - Ray Casting Line Segment Intersection 55m
  • Exercise: What is the primary purpose of implementing 2D raycasting in game programming as described in the lecture?
  • Video class: COMP4300 - Game Programming - Lecture 13 - Cameras and Views 1h01m
  • Exercise: What is the primary purpose of using a view in a 2D game engine like SFML?
  • Video class: COMP4300 - Game Programming - Lecture 14 - Course Project Information 1h17m
  • Exercise: What is the main focus of the course project in Computer Science 4300?
  • Video class: COMP4300 - Game Programming - Lecture 15 - Pathfinding and Steering 1h08m
  • Exercise: What is the primary function of steering behaviors in game programming?
  • Video class: COMP4300 - Game Programming - Lecture 16 - Saving Progress, Game Tools, Drag 1h18m
  • Exercise: Which of the following saving methods allows a player to save their progress at a strategic point in the game?
  • Video class: COMP4300 - Game Programming - Lecture 17 - Assignment 4 1h10m
  • Exercise: In a game where each tile can block movement, vision, or both, how is an NPC's line of sight to a player determined in terms of vision blocking?
  • Video class: COMP4300 - Game Programming - Lecture 18 - Advanced Game Main Loop 54m
  • Exercise: What is the primary advantage of using variable time steps in a game engine?
  • Video class: COMP4300 - Game Programming - Lecture 19 - Cache Coherency Memory Pooling 58m
  • Exercise: In game programming, why is cache coherency important for optimizing performance?
  • Video class: COMP4300 - Game Programming - Lecture 20 - C Visual Code Profiling 1h30m
  • Exercise: What is the purpose of using a Singleton pattern in programming?
  • Video class: COMP4300 - Game Programming - Lecture 21 - Introduction to Shaders 50m
  • Video class: COMP4300 - Game Programming - Lecture 22 - Particle Systems and Vertex Arrays 1h07m

This free course includes:

29 hours and 24 minutes of online video course

Digital certificate of course completion (Free)

Exercises to train your knowledge

100% free, from content to certificate

Ready to get started?Download the app and get started today.

Install the app now

to access the course
Icon representing technology and business courses

Over 5,000 free courses

Programming, English, Digital Marketing and much more! Learn whatever you want, for free.

Calendar icon with target representing study planning

Study plan with AI

Our app's Artificial Intelligence can create a study schedule for the course you choose.

Professional icon representing career and business

From zero to professional success

Improve your resume with our free Certificate and then use our Artificial Intelligence to find your dream job.

You can also use the QR Code or the links below.

QR Code - Download Cursa - Online Courses

More free courses at Game development

Free Ebook + Audiobooks! Learn by listening or reading!

Download the App now to have access to + 5000 free courses, exercises, certificates and lots of content without paying anything!

  • 100% free online courses from start to finish

    Thousands of online courses in video, ebooks and audiobooks.

  • More than 60 thousand free exercises

    To test your knowledge during online courses

  • Valid free Digital Certificate with QR Code

    Generated directly from your cell phone's photo gallery and sent to your email

Cursa app on the ebook screen, the video course screen and the course exercises screen, plus the course completion certificate