Complete Game Development Series 04 - Making A Game With C++
Published 11/2023
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 17.88 GB | Duration: 37h 58m
Published 11/2023
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 17.88 GB | Duration: 37h 58m
Learn the Fundamentals of C++, Git, CMake, and Make a Game from Scratch
What you'll learn
Learn the Fundamentals of C++
Make a Complete Game with C++
Learn C++ Application Development Proces
Adapt to Git and GitHub SCM
Adapt the CMake Build Tool
Requirements
Time and Dedication
Passion to Game Development
Experience with programming is a plus, but not required.
Description
In this comprehensive course, students will delve deeply into the fundamental aspects of C++, explore the language's core concepts, study the principles of Object-Oriented Programming, and achieve mastery over the intricacies of memory management. The curriculum goes beyond theoretical knowledge, extending to the creation and practical utilization of C++ libraries and executables, equipping learners with tangible, applicable skills. Emphasizing tools relevant to the industry, the course seamlessly integrates Git and CMake into the workflow, ensuring that students acquire essential instruments widely employed in software development.Having established a robust foundation, the course then progresses to the dynamic creation of a complete game from scratch. This exciting phase involves leveraging C++ in conjunction with a carefully chosen array of powerful libraries. Through immersive, hands-on experiences, students not only cultivate a profound understanding of C++ but also witness firsthand its practical applications in real-world scenarios.Upon completing the course, participants will have garnered valuable insights and proficiency, empowering them to confidently pursue careers in software engineering for game development. Furthermore, the acquired knowledge acts as a sturdy launching pad for further studies, encompassing advanced topics like Unreal Engine and broader application development.This course stands as the fourth installment in a comprehensive game development series and marks the initial exploration of C++. Importantly, students aspiring to study C++ and subsequently delve into Unreal Engine are not obliged to complete the preceding three courses in the series.
Overview
Section 1: Introduction
Lecture 1 Introduction
Section 2: Fundamentals of C++
Lecture 2 Install Visual Studio and C++
Lecture 3 Our First Project, Visual Studio and the Entry Point
Lecture 4 The Hello World Program, Statements and include
Lecture 5 Variables
Lecture 6 Other Variable Types and Details about Variables
Lecture 7 Baiscs of Array
Lecture 8 The Vector Type
Lecture 9 The Map Type
Lecture 10 Operators
Lecture 11 Inputs
Lecture 12 If Statement
Lecture 13 Foor Loop
Lecture 14 Using Foor Loop with Arrays and Vectors
Lecture 15 While and Do While Loop
Lecture 16 Switch and Enum Types
Lecture 17 Simple Tasks 01 Convert Miles to Kilos
Lecture 18 Simple Tasks 02 Odd or Even Number
Lecture 19 Simple Tasks 03 Count Repeated Words 01 Clean up Input
Lecture 20 Simple Tasks 03 Count Repeated Words 02 Count the Words
Lecture 21 Simple Tasks 04 Find the Smallest Number
Lecture 22 Simple Task 05 The Bubble Sort Algorithm
Lecture 23 Fundamentals of Functions
Lecture 24 Pass by Reference and the const keyword
Lecture 25 Basics of Templates
Lecture 26 Variadic Templates and Template Specialization
Section 3: Structures of a C++ Project and Library Linking
Lecture 27 Building Stages of a Program and Multiple files
Lecture 28 Header Files and Inlines
Lecture 29 Separate Utility Code into A Library Project
Lecture 30 Link the Utility Library
Lecture 31 Link the Utility Library with DLL
Lecture 32 Package and Use Our Library in Other Solutions
Section 4: Memory and Pointers
Lecture 33 Basic Structure of Memory
Lecture 34 Pointers
Lecture 35 Debugging and Detailed Examination of Pointers
Lecture 36 The Array Type and Pointer
Lecture 37 The Stack Memory
Lecture 38 The Heap Memory
Lecture 39 Access Violation and Memory Leaks
Lecture 40 Unique Pointer
Lecture 41 Shared Pointer
Lecture 42 Weak Pointer
Section 5: Classes
Lecture 43 Basics of Classes
Lecture 44 Constructors
Lecture 45 Destructors
Lecture 46 Member Functions and Setter and Getter Pairs
Lecture 47 The Const Keyword in Classes
Lecture 48 Basics of Inheritance
Lecture 49 The Protected Keyword and Function Overriding
Lecture 50 Poly Morphism and Pure Virtual Functions
Lecture 51 Problems with Shallow Copy
Lecture 52 Deep Copy and the Move Semantic
Lecture 53 The Copy Assignment Operator
Lecture 54 Operator Overloading
Lecture 55 Move Assignment Operator and the Big Five
Lecture 56 Move Class to Header and Cpp Files
Lecture 57 Template Classes
Lecture 58 Binary Operators and the Issue with the Friend Keyword
Lecture 59 The Static Keyword in Class
Section 6: Git
Lecture 60 Git and GitHub
Lecture 61 Basic History Tracking with Git
Lecture 62 Basics of Branches
Lecture 63 Reset the History and Reflog
Lecture 64 Revert Commits
Lecture 65 Merge Conflict
Lecture 66 Push our Repo to GitHub
Lecture 67 Update Local and Remote Repositories with Push and Pull
Lecture 68 Git Ignore
Section 7: Light Years Engine
Lecture 69 Install CMake
Lecture 70 Using CMake to Make Our Project
Lecture 71 Add Light Years Game Project
Lecture 72 Refactor the CMake Source Files and Setup Git
Lecture 73 Fetch SFML to Our Project
Lecture 74 Add Post Build Command to Copy Shared Libraries to Build Target
Lecture 75 Setup the Application Class
Lecture 76 Setup the Game Loop
Lecture 77 Setup the Rendering
Lecture 78 Entry Point and Separate Engine and Game Code
Lecture 79 Create the Core and the Logging Macro
Lecture 80 Defining Common Data Types
Lecture 81 Implement the World Class
Lecture 82 Implement the Actor Class
Lecture 83 The Object Class and Handle Object Destruction
Lecture 84 Add Rendering Sprite to Actor
Lecture 85 Use a Config File to Setup Asset Path
Lecture 86 Create the Asset Manager
Lecture 87 Setup Asset Clean Cycle
Lecture 88 Implement the Actor Transformation Interface
Section 8: Spaceship and Player
Lecture 89 Create the Spaceship Class
Lecture 90 Player Spaceship and Move Input
Lecture 91 Normalize Player Input
Lecture 92 Prevent Player from Going Beyond the Window
Section 9: Bullet and Physics Detection
Lecture 93 Basic Shooting Mechanics
Lecture 94 Create the Bullet Class and Spawn the Bullets
Lecture 95 Bullet Destruction and Actor Clean Cycle
Lecture 96 Fetch the Box2D Physics Engine
Lecture 97 Add the Physics System
Lecture 98 Create the Add Listener Function
Lecture 99 Setup Actor Physics Initialization
Lecture 100 Connect Overlap Events
Lecture 101 100 Implement Physics Body Removal
Section 10: Damage and Delegates
Lecture 102 Implement the Health Component
Lecture 103 Introduction to the Lambda and the Std Function Class
Lecture 104 Enable Get Weak Pointer from This
Lecture 105 Create the Delegate Class and the Bind Action Interface
Lecture 106 Finish the Delegate Class
Lecture 107 Using Team ID and Apply Bullet Damage
Lecture 108 Hit Blink and Lerp Facilities
Lecture 109 Create the Particle Class
Lecture 110 Create the Explosion Class
Section 11: Enemy and Timers
Lecture 111 110 Enemy and Vanguard
Lecture 112 111 Create the Game Level One Class
Lecture 113 112 Create the Base Interface of the Timer Manager
Lecture 114 Implement the Timer Class and Issue the Callback
Lecture 115 Create the Clear Timer Functionality
Lecture 116 Refactor the Key of the Timers to Our Own Timer Handle Class
Lecture 117 Create the Base Game Stage Class
Lecture 118 Use the World to Manage the Stages
Lecture 119 Create the Vanguard Stage
Lecture 120 Create the Twin Blade Enemy
Lecture 121 Create the Twin Blade Stage
Lecture 122 Create the Wait Stage and Refine the Stage Cleanup Control
Lecture 123 Create the Hexagon Enemy
Lecture 124 Create the Hexagon Stage
Lecture 125 Create the UFO Class
Lecture 126 Create the UFO Stage
Section 12: Weapon and Rewards
Lecture 127 Implement the Three Way Shooter
Lecture 128 Implement the Frontal Wiper
Lecture 129 Create the Reward Class
Lecture 130 Create the Reward Factory Functions
Lecture 131 Spawn Rewards When Enemy Dies
Lecture 132 Add Weapon Levels
Lecture 133 Add the Player Class
Lecture 134 Implement the Player Manager Class
Lecture 135 Implement Player Respawning
Section 13: HUD and Widgets
Lecture 136 Create the HUD Class
Lecture 137 Handle HUD in the World Class
Lecture 138 Create the Widget Base Class
Lecture 139 Create the Text Widget Class and Load Font Through the Asset Manager
Lecture 140 Refactor the Asset Manager Class
Lecture 141 Add the Gameplay HUD and Show Frame Rate of the Game
Lecture 142 Implement the Value Guage and Health Bar
Lecture 143 Update Player Health to the Health Bar
Lecture 144 143 Refine the Player Health Bar
Lecture 145 Add the Image Widget and Player Life Icon
Lecture 146 Display the Life Count on the UI
Lecture 147 Refactor the Casting to None Casting in the Reward Class
Lecture 148 Display the Player Score
Lecture 149 Add the Life Reward and Adjust Reward Spawn Rate
Lecture 150 Layout the Basics Structure of the Button Class
Lecture 151 Implement the Button Behavior and Click Event
Lecture 152 Implement the Button Behavior and Click Event
Lecture 153 Load the Game Level with the Main Menu
Section 14: Chaos and Boss Stage
Lecture 154 Layout the Basic Facilities of the Chaos Stage
Lecture 155 Finish the Chaos Stage
Lecture 156 Add Player Invulnerable State
Lecture 157 Add the Boss and Boss Stage Class
Lecture 158 Add Boss Movement and Base Shooters
Lecture 159 Add Different Stages to the Boss
Lecture 160 Balance the Boss Difficulty
Section 15: Ending States and Cosmetics
Lecture 161 Add Game Over and Win UI
Lecture 162 Reset Player and Physics System when Retarting
Lecture 163 Test the Win State
Lecture 164 Add the Backdrop Actor
Lecture 165 Create the Background Layer Class
Lecture 166 Load Textures and Initialized the Sprites with Random Textures
Lecture 167 Random Sprite Transform and Velocity
Lecture 168 Setup Moving and Rendering of the Sprites
Lecture 169 Add the Planets and Meteors Background Layer
Section 16: Building on Mac OS
Lecture 170 Use Homebrew to Install Git and CMake on MacOS
Lecture 171 Build Our Game on MacOS
Lecture 172 Final Touches
Section 17: Final Remark
Lecture 173 Final Remarks
Beginners who what to learn C++ and Game Development,Unity developers who want to jump into Unreal Engine but have no experience with C++,Unreal Engine Developers who what to start using C++ instead of Blueprint,College students who need additional material to study coding,Software Engineer who are interested in game development