Learn C++ the Hard Way
DO NOT BUY THIS YET The price of this course will be just enough to cover the videos, and it helps me keep the content free for people to read when the course is released. Thank you for your support. If you are an Epic Supporter then you'll get this course automatically very soon.
An introduction to C++ for anyone who wants to make games. This course will assume you know nothing about programming and build your skills to where you can make a few simple terrible games. It's then on you to make many terrible games until you start making great games. Or art. Whichever you fancy.
Course Contents
This course contains the following modules and lessons. Every course offers free samples of the first 10 lessons so you can decide if you want to take the course, and excerpts from all lessons after that.
Module The Basics
- 00: IntroductionIntroduction
- 01: Gearing UpGearing Up
- 02: A Simple First ProgramA Simple First Program
- 03: Building with MesonBuilding with Meson
- 04: The Names of Funny CharactersThe Names of Funny Characters
- 05: Printing to the ScreenPrinting to the Screen
- 06: Variables and Simple TypesVariables and Simple Types
- 07: Comments and Debug PrintingComments and Debug Printing
- 08: StringsStrings
- 09: Using the `fmt` LibraryUsing the
fmt
Library - 10: Math ExpressionsMath Expressions
- 11: Boolean TestsBoolean Tests
- 12: if-statementsif-statements
- 13: switch-statementsswitch-statements
- 14: while-loopswhile-loops
- 15: Basic FunctionsBasic Functions
- 16: Basic ContainersBasic Containers
- 17: Classic for-loopsClassic for-loops
- 18: Range for-loopsRange for-loops
- 19: Input From a UserInput From a User
- 20: Input From a FileInput From a File
- 21: Writing to a FileWriting to a File
- 22: Basic FunctionsBasic Functions
- 23: A Simple Adventure GameA Simple Adventure Game
- 24: Adding a Save Feature to the GameAdding a Save Feature to the Game
Module Beginner C++
- 25: Using gitUsing git
- 26: Auto keywordAuto keyword
- 27: References for Function ParametersReferences for Function Parameters
- 28: Pointers and `new`Pointers and
new
- 29: Using a DebuggerUsing a Debugger
- 30: Memory ManagementMemory Management
- 31: Using Valgrind or other memory sanitizerUsing Valgrind or other memory sanitizer
- 32: Advanced ContainersAdvanced Containers
- 33: IteratorsIterators
- 34: Basic structBasic struct
- 35: Using a LinterUsing a Linter
- 36: DIY Data StructuresDIY Data Structures
- 37: Defensive Programming TacticsDefensive Programming Tactics
- 38: DIY HashmapsDIY Hashmaps
- 39: DIY AlgorithmsDIY Algorithms
- 40: Why You Shouldn't DIYWhy You Shouldn't DIY
- 41: Useful UtilitiesUseful Utilities
- 42: Advanced FunctionsAdvanced Functions
- 43: LambdasLambdas
- 44: Advanced Memory ManagementAdvanced Memory Management
- 45: Exception AlternativesException Alternatives
Module Intermediate C++
- 46: Review Namespaces and StructsReview Namespaces and Structs
- 47: Implement a Basic Object SystemImplement a Basic Object System
- 48: Introducing classesIntroducing classes
- 49: Structs with FunctionsStructs with Functions
- 50: The Constructor ProblemThe Constructor Problem
- 51: Advanced ConversionsAdvanced Conversions
- 52: Simple TemplatesSimple Templates
- 53: Templates for AlgorithmsTemplates for Algorithms
- 54: Advanced TemplatesAdvanced Templates
- 55: Performance MeasurementPerformance Measurement
- 56: Runtime Type InferenceRuntime Type Inference
- 57: Introductory SFMLIntroductory SFML
- 58: SFML InputSFML Input
- 59: Adding GraphicsAdding Graphics
- 60: Implementing PhysicsImplementing Physics
- 61: Hot LavaHot Lava
- 62: Creating WallsCreating Walls
- 63: Adding SoundAdding Sound
- 64: Game MechanicsGame Mechanics
- 65: Packaging and Distributing Your GamePackaging and Distributing Your Game
- 66: Making a "Starter Kit"Making a "Starter Kit"
- 67: Automating the Starter KitAutomating the Starter Kit
Module Your First Terrible Game
- 68: The 100 Terrible Games TheoryThe 100 Terrible Games Theory
- 69: Learning to DrawLearning to Draw
- 70: More to ComeMore to Come
Learn C++ the Hard Way
Pre-order Price: $10 USD
Simple 30 day refund policy.Pre-order purchases get a reduced price and have a chance to shape the course with their feedback, but have to wait for the course to be finished.