"Ubisoft Toronto NEXT is an annual competition designed to showcase the talent of video game development students in Ontario and to help kickstart their careers in the industry." — Official Website
This year's challenge was to make a game inspired by Gravitar in C++ using the provided API.
Vanguard Mission Zero: Genesis Odyssey is my programming submission that won first place.
For all the gameplay features, check out the YouTube video description!
Fun fact, my game was lovingly named by Stephen Vijayakumar and Abhinav Dhindsa.
- 3D graphics featuring particles, lighting, and backface culling ✨
- CPU cache-friendly component design using data locality and object pooling 🧱
- Automated unit testing and code formatting 🤖
Open Game.sln in Visual Studio 2022 and hit F5.
Or, if you're on Windows, download and extract vanguard-mission-zero-0.1.0-win64.zip. Run Game.exe.
That's it!
Here's what I personally used in order to make this submission.
The very basics of C++. Definitely learn all of this.
Make your first game using C++. I did lessons 1 to 29 inclusive which is everything you need to make a game like Pong.
Take your code to the next level. The web version is free but I did buy a physical copy and it's one of my most useful reference books. I've read it front to back a few times now.
4 part video series, but I only did the first 3 parts which covered: triangles, projection, normals, culling, lighting, object files, cameras, and clipping. These all made its way into my final rendering code in one form or another.
(Paid) Essential Mathematics for Games and Interactive Applications by James M. Van Verth and Lars M. Bishop
Inevitably, you will need to debug your graphics code. This textbook is definitely the toughest resource in this list, but it goes into essential details and provides relevant examples with code snippets, as well as demo code online. Could save your life, as it did mine (pay to win?). I studied up to and including chapter 7. Using the textbook as a starting point, I built my own vector and matrix maths libraries—make sure you set aside enough time for this! I also referenced chapter 7 extensively while debugging my camera system.
Long story short, I started studying C++ seriously starting from December 2021 until the end of February 2022. My schedule was based on roughly three months of 4-8 hour days where I studied and made simple games in C++. However, I still had to prioritise and move on when I felt like I had learned what I needed to know from each resource. Even then, I only made 3 out of the 6 games I had originally planned to which were Pong, Breakout, and Space Invaders. For me, there was no realistic way to learn everything and code all the games I wanted to unless I had even more time.