This video course is all about offering you a fun introduction to the world of game programming, using a fun, fully-playable game. The game is an addictive frantic split-screen multiplayer puzzle-platformer.We will go through the key C++ topics, such as OOP (Object-Orientated Programming).While building the game, you will also learn exciting game programming concepts such as directional sound (spatialization).
Stretch your C++ knowledge beyond the beginner level and use concepts such as pointers, references, and the Standard Template Library to add features—for example, split-screen coop, immersive directional sound, and custom levels loaded from level-design files.
About the Author
John Horton is a coding and gaming enthusiast based in the UK. He has a passion for writing apps, games, books, and blog articles about programming, especially for beginners. He is the founder of Game Code School, which is dedicated to helping complete beginners get started coding using the language and platform that is best for them. John sincerely believes that anyone can learn to code and that everybody has a game or an app inside of them, and that they just need to do enough work to bring it out.
To keep our game simple without losing the challenge, we will have the task of creating the need for two players to Play cooperatively. We also need to make sure the game is not too easy. This video shows us the basic features and the assets we need to create our game.
One of the problems that has been quite pronounced so far is how long and unwieldy the code gets. OOP allows us to break our projects up into logical and manageable chunks called classes. Let's see how we can make a big improvement to the manageability of the code.
As discussed earlier, we will code a class called Engine that will control and bind together the different parts of the Thomas Was Late game. This video guides you in building the Engine class, which will hold all other functions.
We have seen how we can create objects from the classes of the SFML library. But, what if there is a class that has useful functionality, but is not quite what we want? This video will teach you how you can inherit from the other class.
Polymorphism allows us to write code that is less dependent on the types we are trying to manipulate. In this video, we'll take a look at what polymorphism means in its simplest form.
An abstract class is a class that cannot be instantiated and therefore cannot be made into an object. So, is it code that will never be used, then? Let's find out.
Now that we know the basics about inheritance, polymorphism, and pure virtual functions, we will put them to use. In this video, we'll build a PlayableCharacter class that has the vast majority of the functionality.
Now it's time for us to use inheritance for real. We will build a class for Thomas as well as Bob. They will both inherit from the PlayableCharacter class we have coded. Let's see how we do that.
In order to be able to run the game and see our new characters, we have to declare instances of them, call their spawn functions, update them in each frame, and draw them in each frame. Let's do that now.
There are different levels in a game. In this video, you will learn about the different levels in our game.
We need to add levels to the levelmanager class that we will create. This video will guide you through that.
For using the level manager class that we created earlier, we need to code for loading the level in the engine class.
After adding classes in engine, we will update the engine in order to make final changes in the view of our game in this video.
To detect if our players come in contact with other things in the game or each other, we need a collision detector.
Spatialization is making something relative to the space it is a part of. It gives the game a real-world feeling. In order to do that, we must first understand spatialization and how it works.
To manage all the sounds that will be used in our game, we will create a class and manage all our sound effects through that.
When a player nears a particular tile, a sound is emitted from the tile which makes it easy for the player to identify the type of tile they are going toward. This helps in creating a real-life effect in the game.
Now that we have all the functions for sound effects in the appropriate places, we will code for playing these sounds according to the time and place.
In order to interact with the player, we require text in our game. The HUD class helps in that.
To let the player know about his score, health, and even position, we need to know how to use the HUD class.
The Drawable class has just one function. It has no variables either. Furthermore, its one and only function is pure virtual. This means that if we inherit from Drawable, we must implement its one and only function. This video will guide you how we can solve this problem.
We will use the particle effect in our game. When a character Dies, he will explode in a starburst/firework-like particle effect. Let's see how we can achieve that.
Open Graphics Library is a programming library that handles 2D and 3D graphics. This video explores how OpenGL works.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.